From nobody Mon Feb 9 12:03:52 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=163.com ARC-Seal: i=1; a=rsa-sha256; t=1564067890; cv=none; d=zoho.com; s=zohoarc; b=TCLjHtNzK/z7qLBvJd87iVMmROXKxvfEWEX1Isjwp8nq3kBiT+eFb8DyV/aYkMuXQyNKNzvwGgdxD3A4p8cqR0CSQHTAGcavam7F2FYByH6ztda9om0AAaSVQGfEI2FGKvWzXsewKvLwPiHiC2V60U6RtPO1ss72FBnEav4fi/E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1564067890; h=Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:Sender:Subject:To:ARC-Authentication-Results; bh=XYGvuCX+KWz2p3Yp4IgK88E8PGcyLildAag07w7TWyg=; b=nLktElNNsbK4mScOBQ/CiCHWBBA57lQmPujUGAd5JfXY2ZI9TaXksUxBiDDfklscm3L903WOcobB30j9T+xzZDyyv5MXIo76r+SyJd3WK18+ZZOucsf3gjorR6IhUGhw1/ioGoB+yAc8y9InVt3Vsukiv+QRTU2RZq3EPfKIWAg= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1564067890495400.4554056589327; Thu, 25 Jul 2019 08:18:10 -0700 (PDT) Received: from localhost ([::1]:60980 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hqfVR-0006IG-CN for importer@patchew.org; Thu, 25 Jul 2019 11:18:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45607) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hqfV9-0005h2-5X for qemu-devel@nongnu.org; Thu, 25 Jul 2019 11:17:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hqfV8-0001Oj-07 for qemu-devel@nongnu.org; Thu, 25 Jul 2019 11:17:51 -0400 Received: from m12-11.163.com ([220.181.12.11]:34380) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hqfV6-0001GA-DI for qemu-devel@nongnu.org; Thu, 25 Jul 2019 11:17:49 -0400 Received: from localhost.localdomain (unknown [115.204.176.247]) by smtp7 (Coremail) with SMTP id C8CowAD30jARyDldD21rFg--.55737S2; Thu, 25 Jul 2019 23:17:38 +0800 (CST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-Id; bh=XYGvuCX+KWz2p3Yp4I gK88E8PGcyLildAag07w7TWyg=; b=U7hXDZsObFiRKU90KkKSDKLm8hqNkkiXvk qeXCvy5hH7fG3nwk4RWjexC7TGrKXPynd+R9Nec7hNaXIA0vYZJHW2zhinu12ZjG g6L+uUROTe5XGe/sDCe2w46YpQjS8dun84LaXEmwh5MGBn2QfWy8hjtqwzIO9l/h RoTA4YOC0= From: Li Qiang To: pbonzini@redhat.com, mtosatti@redhat.com Date: Thu, 25 Jul 2019 08:16:39 -0700 Message-Id: <20190725151639.21693-1-liq3ea@163.com> X-Mailer: git-send-email 2.17.1 X-CM-TRANSID: C8CowAD30jARyDldD21rFg--.55737S2 X-Coremail-Antispam: 1Uf129KBjvJXoW3JryrAw1rCF47CrWfCF1Dtrb_yoW7Xw1rpa y3AFWUJrWDJayFgw4IqF97AryrJrW8ua9rWF4agwnxAFyUXrn5Xr10y347uFykWFWakF18 uFy7XrsrGFsrAwUanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x0zRW5lnUUUUU= X-Originating-IP: [115.204.176.247] X-CM-SenderInfo: 5oltjvrd6rljoofrz/1tbiKRL8bVXlsYS7dgAAsi X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 220.181.12.11 Subject: [Qemu-devel] [PATCH] target-i386: kvm: 'kvm_get_supported_msrs' cleanup X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Li Qiang , liq3ea@gmail.com, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Function 'kvm_get_supported_msrs' is only called once now, get rid of the static variable 'kvm_supported_msrs'. Signed-off-by: Li Qiang --- target/i386/kvm.c | 185 +++++++++++++++++++++++----------------------- 1 file changed, 91 insertions(+), 94 deletions(-) diff --git a/target/i386/kvm.c b/target/i386/kvm.c index dbbb13772a..07c9250f45 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -1837,108 +1837,105 @@ static int kvm_get_supported_feature_msrs(KVMStat= e *s) =20 static int kvm_get_supported_msrs(KVMState *s) { - static int kvm_supported_msrs; int ret =3D 0; + struct kvm_msr_list msr_list, *kvm_msr_list; =20 - /* first time */ - if (kvm_supported_msrs =3D=3D 0) { - struct kvm_msr_list msr_list, *kvm_msr_list; + /* + * Obtain MSR list from KVM. These are the MSRs that we must + * save/restore. + */ + msr_list.nmsrs =3D 0; + ret =3D kvm_ioctl(s, KVM_GET_MSR_INDEX_LIST, &msr_list); + if (ret < 0 && ret !=3D -E2BIG) { + return ret; + } + /* + * Old kernel modules had a bug and could write beyond the provided + * memory. Allocate at least a safe amount of 1K. + */ + kvm_msr_list =3D g_malloc0(MAX(1024, sizeof(msr_list) + + msr_list.nmsrs * + sizeof(msr_list.indices[0]))); =20 - kvm_supported_msrs =3D -1; + kvm_msr_list->nmsrs =3D msr_list.nmsrs; + ret =3D kvm_ioctl(s, KVM_GET_MSR_INDEX_LIST, kvm_msr_list); + if (ret >=3D 0) { + int i; =20 - /* Obtain MSR list from KVM. These are the MSRs that we must - * save/restore */ - msr_list.nmsrs =3D 0; - ret =3D kvm_ioctl(s, KVM_GET_MSR_INDEX_LIST, &msr_list); - if (ret < 0 && ret !=3D -E2BIG) { - return ret; - } - /* Old kernel modules had a bug and could write beyond the provided - memory. Allocate at least a safe amount of 1K. */ - kvm_msr_list =3D g_malloc0(MAX(1024, sizeof(msr_list) + - msr_list.nmsrs * - sizeof(msr_list.indices[0]))= ); - - kvm_msr_list->nmsrs =3D msr_list.nmsrs; - ret =3D kvm_ioctl(s, KVM_GET_MSR_INDEX_LIST, kvm_msr_list); - if (ret >=3D 0) { - int i; - - for (i =3D 0; i < kvm_msr_list->nmsrs; i++) { - switch (kvm_msr_list->indices[i]) { - case MSR_STAR: - has_msr_star =3D true; - break; - case MSR_VM_HSAVE_PA: - has_msr_hsave_pa =3D true; - break; - case MSR_TSC_AUX: - has_msr_tsc_aux =3D true; - break; - case MSR_TSC_ADJUST: - has_msr_tsc_adjust =3D true; - break; - case MSR_IA32_TSCDEADLINE: - has_msr_tsc_deadline =3D true; - break; - case MSR_IA32_SMBASE: - has_msr_smbase =3D true; - break; - case MSR_SMI_COUNT: - has_msr_smi_count =3D true; - break; - case MSR_IA32_MISC_ENABLE: - has_msr_misc_enable =3D true; - break; - case MSR_IA32_BNDCFGS: - has_msr_bndcfgs =3D true; - break; - case MSR_IA32_XSS: - has_msr_xss =3D true; - break; - case HV_X64_MSR_CRASH_CTL: - has_msr_hv_crash =3D true; - break; - case HV_X64_MSR_RESET: - has_msr_hv_reset =3D true; - break; - case HV_X64_MSR_VP_INDEX: - has_msr_hv_vpindex =3D true; - break; - case HV_X64_MSR_VP_RUNTIME: - has_msr_hv_runtime =3D true; - break; - case HV_X64_MSR_SCONTROL: - has_msr_hv_synic =3D true; - break; - case HV_X64_MSR_STIMER0_CONFIG: - has_msr_hv_stimer =3D true; - break; - case HV_X64_MSR_TSC_FREQUENCY: - has_msr_hv_frequencies =3D true; - break; - case HV_X64_MSR_REENLIGHTENMENT_CONTROL: - has_msr_hv_reenlightenment =3D true; - break; - case MSR_IA32_SPEC_CTRL: - has_msr_spec_ctrl =3D true; - break; - case MSR_VIRT_SSBD: - has_msr_virt_ssbd =3D true; - break; - case MSR_IA32_ARCH_CAPABILITIES: - has_msr_arch_capabs =3D true; - break; - case MSR_IA32_CORE_CAPABILITY: - has_msr_core_capabs =3D true; - break; - } + for (i =3D 0; i < kvm_msr_list->nmsrs; i++) { + switch (kvm_msr_list->indices[i]) { + case MSR_STAR: + has_msr_star =3D true; + break; + case MSR_VM_HSAVE_PA: + has_msr_hsave_pa =3D true; + break; + case MSR_TSC_AUX: + has_msr_tsc_aux =3D true; + break; + case MSR_TSC_ADJUST: + has_msr_tsc_adjust =3D true; + break; + case MSR_IA32_TSCDEADLINE: + has_msr_tsc_deadline =3D true; + break; + case MSR_IA32_SMBASE: + has_msr_smbase =3D true; + break; + case MSR_SMI_COUNT: + has_msr_smi_count =3D true; + break; + case MSR_IA32_MISC_ENABLE: + has_msr_misc_enable =3D true; + break; + case MSR_IA32_BNDCFGS: + has_msr_bndcfgs =3D true; + break; + case MSR_IA32_XSS: + has_msr_xss =3D true; + break; + case HV_X64_MSR_CRASH_CTL: + has_msr_hv_crash =3D true; + break; + case HV_X64_MSR_RESET: + has_msr_hv_reset =3D true; + break; + case HV_X64_MSR_VP_INDEX: + has_msr_hv_vpindex =3D true; + break; + case HV_X64_MSR_VP_RUNTIME: + has_msr_hv_runtime =3D true; + break; + case HV_X64_MSR_SCONTROL: + has_msr_hv_synic =3D true; + break; + case HV_X64_MSR_STIMER0_CONFIG: + has_msr_hv_stimer =3D true; + break; + case HV_X64_MSR_TSC_FREQUENCY: + has_msr_hv_frequencies =3D true; + break; + case HV_X64_MSR_REENLIGHTENMENT_CONTROL: + has_msr_hv_reenlightenment =3D true; + break; + case MSR_IA32_SPEC_CTRL: + has_msr_spec_ctrl =3D true; + break; + case MSR_VIRT_SSBD: + has_msr_virt_ssbd =3D true; + break; + case MSR_IA32_ARCH_CAPABILITIES: + has_msr_arch_capabs =3D true; + break; + case MSR_IA32_CORE_CAPABILITY: + has_msr_core_capabs =3D true; + break; } } - - g_free(kvm_msr_list); } =20 + g_free(kvm_msr_list); + return ret; } =20 --=20 2.17.1