From patchwork Thu Dec 21 20:46:22 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jim Mattson X-Patchwork-Id: 10128383 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 5D517603B5 for ; Thu, 21 Dec 2017 20:47:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 511B829E09 for ; Thu, 21 Dec 2017 20:47:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4633729E10; Thu, 21 Dec 2017 20:47:17 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D517429E09 for ; Thu, 21 Dec 2017 20:47:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755510AbdLUUrO (ORCPT ); Thu, 21 Dec 2017 15:47:14 -0500 Received: from mail-io0-f195.google.com ([209.85.223.195]:42864 "EHLO mail-io0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753178AbdLUUrN (ORCPT ); Thu, 21 Dec 2017 15:47:13 -0500 Received: by mail-io0-f195.google.com with SMTP id x67so16265710ioi.9 for ; Thu, 21 Dec 2017 12:47:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=4BbkyQBmsDfAAqlX+E3fM0J2nKbKXbLDLKK8YVETAKY=; b=eujRn2/30p2akq2U74qy5gLuHinQkxGXGen9Mm3jw0v0zjpAnBinQKWo7RTKmJASYJ w2hqqBRYqpM6QyEl+9CPkBZgA4LewtLLiFC6q6QJsVpRRo/iFiA5+X3gjNBHeJwxkiY0 sVomJtmWI4hKeIUUwuzS+mKqlH6MPYzW/cgvX0NCL/KSWVPFI5tU2OY50uJTlLQV6QgT 8u6ipEqSh/yQkWYUVBFWWc6mtDlYjsTi9Zp/WeaOiXwLSyWflrDFPu4ZAcr70UYors04 OfoAKetIlHSdp99xMbL68HjJlrbkZ09JFvQF4uPGJ9+3omKd7NQymdZ0wXGG/oT6Dw9L Jknw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=4BbkyQBmsDfAAqlX+E3fM0J2nKbKXbLDLKK8YVETAKY=; b=KIHAHEGs4Dwi/0Uwh5EyZA/tYcSXDBXxEt26H3uH2rLFYZaLB13xlhL/vbKWsJ+6NP Ed4LuwMw4jZlkv/tGjp7j4BL+Ej84BKOeyJAEU/DQwqgnTtVQq8DMV5eAy1VRaTV/hH5 EOgiZ8nj0y5kmR/f3gND7NNhQsdtGIh0A3+eY/0yy6vw9FEWQeUGf7NqbHDBsJH9WML9 GhVKS2lGXia4MNZXKSk55EvEMZwDdlgtinGjcIvUxXzGxiGu+Tx9bKGcvAevyCRk1ysS Njs3HSM+/YMmmXNHOIVL3TXbTu0sb4JLLFYGRFA/ZPX35lDcIMSlRedh60mp+uJ0cFeI OCgw== X-Gm-Message-State: AKGB3mImLXUCxeRtPKByaU0miwTc6veMObCPOFJi2zWQQ+oFPAUgQf/Z 0wE/Nh1OvCbbqZbIHDwmrbdc0TJITXE= X-Google-Smtp-Source: ACJfBotppiQ7ZW0ohkYlmczeUP6LitmBtHSS1IFEgf+N58XhC4NqhwRIvdhTPczSJOtgpPaHdZGxnw== X-Received: by 10.107.79.18 with SMTP id d18mr15656346iob.33.1513889232523; Thu, 21 Dec 2017 12:47:12 -0800 (PST) Received: from turtle.sea.corp.google.com ([100.100.207.61]) by smtp.gmail.com with ESMTPSA id s4sm4622920ita.12.2017.12.21.12.47.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 21 Dec 2017 12:47:11 -0800 (PST) From: Jim Mattson To: kvm@vger.kernel.org Cc: Jim Mattson Subject: [PATCH 2/3] kvm: vmx: Change vmcs_field_type to vmcs_field_width Date: Thu, 21 Dec 2017 12:46:22 -0800 Message-Id: <20171221204623.164581-3-jmattson@google.com> X-Mailer: git-send-email 2.15.1.620.gb9897f4670-goog In-Reply-To: <20171221204623.164581-1-jmattson@google.com> References: <20171221204623.164581-1-jmattson@google.com> Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Per the SDM, "[VMCS] Fields are grouped by width (16-bit, 32-bit, etc.) and type (guest-state, host-state, etc.)." Previously, the width was indicated by vmcs_field_type. To avoid confusion when we start dealing with both field width and field type, change vmcs_field_type to vmcs_field_width. Signed-off-by: Jim Mattson --- arch/x86/kvm/vmx.c | 58 +++++++++++++++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index dfce28498636..1847000fbb0c 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -4050,17 +4050,17 @@ static void free_kvm_area(void) } } -enum vmcs_field_type { - VMCS_FIELD_TYPE_U16 = 0, - VMCS_FIELD_TYPE_U64 = 1, - VMCS_FIELD_TYPE_U32 = 2, - VMCS_FIELD_TYPE_NATURAL_WIDTH = 3 +enum vmcs_field_width { + VMCS_FIELD_WIDTH_U16 = 0, + VMCS_FIELD_WIDTH_U64 = 1, + VMCS_FIELD_WIDTH_U32 = 2, + VMCS_FIELD_WIDTH_NATURAL_WIDTH = 3 }; -static inline int vmcs_field_type(unsigned long field) +static inline int vmcs_field_width(unsigned long field) { if (0x1 & field) /* the *_HIGH fields are all 32 bit */ - return VMCS_FIELD_TYPE_U32; + return VMCS_FIELD_WIDTH_U32; return (field >> 13) & 0x3 ; } @@ -4098,7 +4098,7 @@ static void init_vmcs_shadow_fields(void) clear_bit(field, vmx_vmwrite_bitmap); clear_bit(field, vmx_vmread_bitmap); - if (vmcs_field_type(field) == VMCS_FIELD_TYPE_U64) { + if (vmcs_field_width(field) == VMCS_FIELD_WIDTH_U64) { clear_bit(field + 1, vmx_vmwrite_bitmap); clear_bit(field + 1, vmx_vmread_bitmap); } @@ -4107,7 +4107,7 @@ static void init_vmcs_shadow_fields(void) unsigned long field = shadow_read_only_fields[i]; clear_bit(field, vmx_vmread_bitmap); - if (vmcs_field_type(field) == VMCS_FIELD_TYPE_U64) + if (vmcs_field_width(field) == VMCS_FIELD_WIDTH_U64) clear_bit(field + 1, vmx_vmread_bitmap); } } @@ -7751,17 +7751,17 @@ static inline int vmcs12_read_any(struct kvm_vcpu *vcpu, p = ((char *)(get_vmcs12(vcpu))) + offset; - switch (vmcs_field_type(field)) { - case VMCS_FIELD_TYPE_NATURAL_WIDTH: + switch (vmcs_field_width(field)) { + case VMCS_FIELD_WIDTH_NATURAL_WIDTH: *ret = *((natural_width *)p); return 0; - case VMCS_FIELD_TYPE_U16: + case VMCS_FIELD_WIDTH_U16: *ret = *((u16 *)p); return 0; - case VMCS_FIELD_TYPE_U32: + case VMCS_FIELD_WIDTH_U32: *ret = *((u32 *)p); return 0; - case VMCS_FIELD_TYPE_U64: + case VMCS_FIELD_WIDTH_U64: *ret = *((u64 *)p); return 0; default: @@ -7778,17 +7778,17 @@ static inline int vmcs12_write_any(struct kvm_vcpu *vcpu, if (offset < 0) return offset; - switch (vmcs_field_type(field)) { - case VMCS_FIELD_TYPE_U16: + switch (vmcs_field_width(field)) { + case VMCS_FIELD_WIDTH_U16: *(u16 *)p = field_value; return 0; - case VMCS_FIELD_TYPE_U32: + case VMCS_FIELD_WIDTH_U32: *(u32 *)p = field_value; return 0; - case VMCS_FIELD_TYPE_U64: + case VMCS_FIELD_WIDTH_U64: *(u64 *)p = field_value; return 0; - case VMCS_FIELD_TYPE_NATURAL_WIDTH: + case VMCS_FIELD_WIDTH_NATURAL_WIDTH: *(natural_width *)p = field_value; return 0; default: @@ -7813,17 +7813,17 @@ static void copy_shadow_to_vmcs12(struct vcpu_vmx *vmx) for (i = 0; i < num_fields; i++) { field = fields[i]; - switch (vmcs_field_type(field)) { - case VMCS_FIELD_TYPE_U16: + switch (vmcs_field_width(field)) { + case VMCS_FIELD_WIDTH_U16: field_value = vmcs_read16(field); break; - case VMCS_FIELD_TYPE_U32: + case VMCS_FIELD_WIDTH_U32: field_value = vmcs_read32(field); break; - case VMCS_FIELD_TYPE_U64: + case VMCS_FIELD_WIDTH_U64: field_value = vmcs_read64(field); break; - case VMCS_FIELD_TYPE_NATURAL_WIDTH: + case VMCS_FIELD_WIDTH_NATURAL_WIDTH: field_value = vmcs_readl(field); break; default: @@ -7861,17 +7861,17 @@ static void copy_vmcs12_to_shadow(struct vcpu_vmx *vmx) field = fields[q][i]; vmcs12_read_any(&vmx->vcpu, field, &field_value); - switch (vmcs_field_type(field)) { - case VMCS_FIELD_TYPE_U16: + switch (vmcs_field_width(field)) { + case VMCS_FIELD_WIDTH_U16: vmcs_write16(field, (u16)field_value); break; - case VMCS_FIELD_TYPE_U32: + case VMCS_FIELD_WIDTH_U32: vmcs_write32(field, (u32)field_value); break; - case VMCS_FIELD_TYPE_U64: + case VMCS_FIELD_WIDTH_U64: vmcs_write64(field, (u64)field_value); break; - case VMCS_FIELD_TYPE_NATURAL_WIDTH: + case VMCS_FIELD_WIDTH_NATURAL_WIDTH: vmcs_writel(field, (long)field_value); break; default: