Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp1777564ybl; Thu, 15 Aug 2019 00:46:14 -0700 (PDT) X-Google-Smtp-Source: APXvYqwfd2n/y+wJDI1I0kGPGV737L6Su51qvleXeLZ+V9dSgFxWDjd6wl6AISs2e9Bhyjs/FniJ X-Received: by 2002:a17:902:29e9:: with SMTP id h96mr3181974plb.110.1565855174400; Thu, 15 Aug 2019 00:46:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565855174; cv=none; d=google.com; s=arc-20160816; b=rxc4UleiVdtnEK2CtooD3hgeiTu4eal6AHKXQarKuC/4JfgjYdo/X/LIlQX9EVX2Tv WP12XKpMfciU6OWLQw9FcxHELEF73S+j+s8AXxZDmT7vTFK8xJjzCeDV421bG+SaR7DU gksBJtHDyhrc1MUAj2woVBhRhs3nxybCrlO5BcWjP8gfGH59AMYbmKB1c+CfY6TXZ2t/ OD/9kB7ZR/vCN/hk4sUWMsSvr5ZqVttQcNAkBmY6Z5e/gTKKxn23en8NXm/FbB/SNiEI ye/R/DCJ2GHgEr9LjgKKX8MhAD8eMtjHDCemiDwLOiwd5nuuA5OK3M+I8M3vIVLwxtR2 qrBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:to:from:dkim-signature; bh=pGynoWXlblqaqhz24Pk3XP4YutRookXWoKTRmTgMTU0=; b=gGjCmP0ZnIKgCkjLI2WlGoxT30fShlv1gFBALncRi8RHsq6AfRY2bjKy5dZRDGy7lF v73o9/HhnzmGxw6FAN7ol8LdB7iLDabPU/a19MvB4v6zpVWDO6MH51l8Xf+Q+28rbcPB v0YNmYNI+wzLXCj1CDX07VF4RtIbSN7Wn7bLj4ErntDfGc6AerTaRmU0H8hfQ6T5rl8d mApi6bLtAoonHBOgKIvbC4pG/g9GA6guj4XpCJC1ijFnIDhsaDlwPi0YPbMOkRftPWf+ 1Bv59haso33bdM6BITn4i3v0vwAtQXGztfIipmq5b13LrApFYrkW7RiyaAM7qN1rexu2 uPPg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=lYl7aOHv; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b188si1503239pfb.279.2019.08.15.00.45.58; Thu, 15 Aug 2019 00:46:14 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=lYl7aOHv; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730473AbfHOHlb (ORCPT + 99 others); Thu, 15 Aug 2019 03:41:31 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:41231 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730032AbfHOHl3 (ORCPT ); Thu, 15 Aug 2019 03:41:29 -0400 Received: by mail-wr1-f67.google.com with SMTP id j16so1400879wrr.8; Thu, 15 Aug 2019 00:41:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=pGynoWXlblqaqhz24Pk3XP4YutRookXWoKTRmTgMTU0=; b=lYl7aOHvbW24HvUYbBd68dHX64HOVceBreTgXWfVHKAWyAVT6M5IfzBPmBIqD5P1/i n15vS8cyX8YNjpCJB6qKE2miZSDNWMFHrlIrO2ePtppfrf/2jf+BYug5Cu4IEGpbmvLp 8vSHuMjOOQbGXRmW7zIslvsjtrMoqrwiCE+LWWQX5WHoGTaHJqzl1Ts7Rn9bj2BoxTYN BJ2//Um+P8ivm3tnKFRAn8akOgOxrj0wG/fEJIUEem3lkfreGvmRWjfR9jQg1vDvVN01 WSWjQACnZPmdTDfq8WfD1R+znnVnjXtClwXGaQddJ7fXCNMv9aXxc/Ye5HRq+fJUBhmo Y9NQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=pGynoWXlblqaqhz24Pk3XP4YutRookXWoKTRmTgMTU0=; b=JfGKAHgR81BQso+tmHNlKH9ECZ/cGZOAummZZXJQqqsv3IhbFtC46nhmIVAJwIFwlz LyBfvAHAZnpa1Ho/3iKVPRbs28154igG9u18bukZQv2zl2DZ/j72tdEu1jh1U6wu/C5j f/+9RKWkd5ip7HY6tJYcgtwrZIn5F86B1aIqmSuPHsJ+GJfu4HKqC6nFJFVlovSFQGnx DhdYfufvAUKebShxih8RLdVX9DxtG77rlRc6apDaUOcNog9Db1tAzfM+Z4AEvz9a2g1d 10Gwlh6fCBmLcSBiJ/hPQz8tEO4lYfIosRPWH2+8Haz1g63Nk0H3CHXrosOIgEWjNXDt UHPg== X-Gm-Message-State: APjAAAVvzfmPN6PcG12Th0Rf9EBo/vVX4ivuCDZFxHtUvukmG1SPDPO4 rrY4Y56TKEeJKER7xrtUuMG89zfB X-Received: by 2002:a5d:634c:: with SMTP id b12mr3765541wrw.127.1565854887266; Thu, 15 Aug 2019 00:41:27 -0700 (PDT) Received: from 640k.localdomain.com ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id m23sm809796wml.41.2019.08.15.00.41.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 15 Aug 2019 00:41:26 -0700 (PDT) From: Paolo Bonzini To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org Subject: [PATCH 1/2] KVM: x86: fix reporting of AMD speculation bug CPUID leaf Date: Thu, 15 Aug 2019 09:41:22 +0200 Message-Id: <1565854883-27019-2-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1565854883-27019-1-git-send-email-pbonzini@redhat.com> References: <1565854883-27019-1-git-send-email-pbonzini@redhat.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The AMD_* bits have to be set from the vendor-independent feature and bug flags, because KVM_GET_SUPPORTED_CPUID does not care about the vendor and they should be set on Intel processors as well. On top of this, SSBD, STIBP and AMD_SSB_NO bit were not set, and VIRT_SSBD does not have to be added manually because it is a cpufeature that comes directly from the host's CPUID bit. Signed-off-by: Paolo Bonzini --- arch/x86/kvm/cpuid.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c index 22c2720cd948..145ec050d45d 100644 --- a/arch/x86/kvm/cpuid.c +++ b/arch/x86/kvm/cpuid.c @@ -730,15 +730,20 @@ static inline int __do_cpuid_func(struct kvm_cpuid_entry2 *entry, u32 function, entry->eax = g_phys_as | (virt_as << 8); entry->edx = 0; /* - * IBRS, IBPB and VIRT_SSBD aren't necessarily present in - * hardware cpuid + * AMD has separate bits for each SPEC_CTRL bit. + * arch/x86/kernel/cpu/bugs.c is kind enough to + * record that in cpufeatures so use them. */ - if (boot_cpu_has(X86_FEATURE_AMD_IBPB)) + if (boot_cpu_has(X86_FEATURE_IBPB)) entry->ebx |= F(AMD_IBPB); - if (boot_cpu_has(X86_FEATURE_AMD_IBRS)) + if (boot_cpu_has(X86_FEATURE_IBRS)) entry->ebx |= F(AMD_IBRS); - if (boot_cpu_has(X86_FEATURE_VIRT_SSBD)) - entry->ebx |= F(VIRT_SSBD); + if (boot_cpu_has(X86_FEATURE_STIBP)) + entry->ebx |= F(AMD_STIBP); + if (boot_cpu_has(X86_FEATURE_SSBD)) + entry->ebx |= F(AMD_SSBD); + if (!boot_cpu_has_bug(X86_BUG_SPEC_STORE_BYPASS)) + entry->ebx |= F(AMD_SSB_NO); entry->ebx &= kvm_cpuid_8000_0008_ebx_x86_features; cpuid_mask(&entry->ebx, CPUID_8000_0008_EBX); /* -- 1.8.3.1