Received: by 2002:a05:7412:3784:b0:e2:908c:2ebd with SMTP id jk4csp1836256rdb; Tue, 3 Oct 2023 02:28:51 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEek7zXOUoGIGU7s6/Y9jOuNbn7x1PePERcRqdxdQy2KtspvtCCUTLC5bGP+YgwO4+YVErp X-Received: by 2002:a17:90a:8584:b0:274:99e7:217e with SMTP id m4-20020a17090a858400b0027499e7217emr11521692pjn.16.1696325331261; Tue, 03 Oct 2023 02:28:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696325331; cv=none; d=google.com; s=arc-20160816; b=GhxEi4hd6Zu2gy9oPMF1Y8Ixtn5dTNdIG4kJn3ukcU6dTVMjlI5Ilhcdfnd3puZeG/ 4dE1Iret8mgujid/8tj5KmJdX8v0reJYz4gmDznDaA/b9Hgh4HGXlHmZUrjwlNHKA6dM bn0ZS/JTtCtiFx328q1W6SWPbHLkGdhDptSqQnTFdH6yKn7GlPY2iTp9v1gfJzF1r1Lq eVPqBW2/aPQazKY/g4QTAbzoj/cyTT1o5PxV52iNQOCZtGD/s96BWy3J46OegiKRA25b LZpGrjcxdDCeJr1fxcEuyEPDCjezPbGi9elGTKcq3YArk0MEMoDicHXR1A1N1AOhWctz P2Bg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature:dkim-filter; bh=gZ9ywJ91S296Vc3gZYVJDfc5JwL0EbNgI9h5fuzeoMs=; fh=uEEh5+L9AA1GH+1Gl2e8099A6RmQNEWMWiCnPB8Syn8=; b=b+8Rh0jwrds/id1v8CASthCZ08hpVxVcobaBx40a0ErFeZgzgxUBlhhwwJSpMffEHK RIWA8dBcCInzTzQ6J6jubg+ipFVLoZoQXEu6aBSPTBMz53SUE01KJCGi0cCva22LcKYx i7h9tMB/+uddul9MfTvrU17wJlJHAmIyPN0Z4qRAPaQnL5EHBYSSHa8dZs403ZEyUjSl u5ivZcNcZODZRlSPRpWK9eFh6W4nHPmZ5A+q2dXQs+wlyWpfbYoJgo0XyS89wHjNKFD2 b0xGh1jwZGHSXLuaqlmy+9oA1QPz8kl76Y37HgaGKVuQngzBrcga/Mf0+rbkPgdaTNwT q9Cg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux.microsoft.com header.s=default header.b=XZIQSHKJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.microsoft.com Return-Path: Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id o4-20020a17090a744400b0025eeb3cc4b2si1039290pjk.9.2023.10.03.02.28.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Oct 2023 02:28:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.microsoft.com header.s=default header.b=XZIQSHKJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.microsoft.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 50885815D7D4; Tue, 3 Oct 2023 02:28:50 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231439AbjJCJ2r (ORCPT + 99 others); Tue, 3 Oct 2023 05:28:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55080 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231199AbjJCJ2n (ORCPT ); Tue, 3 Oct 2023 05:28:43 -0400 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id DD710AB; Tue, 3 Oct 2023 02:28:40 -0700 (PDT) Received: from jinank-dev.tail216e5.ts.net (unknown [40.90.178.231]) by linux.microsoft.com (Postfix) with ESMTPSA id A8F1E20B74C0; Tue, 3 Oct 2023 02:28:37 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com A8F1E20B74C0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1696325320; bh=gZ9ywJ91S296Vc3gZYVJDfc5JwL0EbNgI9h5fuzeoMs=; h=From:To:Cc:Subject:Date:From; b=XZIQSHKJ2GJcqrskFeoitJoIRQDbTmhtbG9GUNbxq44Yg1LPDmOtDXK9ydOXjYJYy uHK6MTVlQyvK7DsnrN8keJnCFnNJF9tF5bPBZyq2lREo7WGQBhw40/w2LSRY6zJMgX Ycuxp7hz8fS9ZlGJr3wcfca7pvPhsm8rvdYXvi8o= From: Jinank Jain To: seanjc@google.com, pbonzini@redhat.com, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, jinankjain@microsoft.com, thomas.lendacky@amd.com, kvm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: wei.liu@kernel.org, tiala@microsoft.com Subject: [PATCH] arch/x86: Set XSS while handling #VC intercept for CPUID Date: Tue, 3 Oct 2023 09:28:35 +0000 Message-Id: <20231003092835.18974-1-jinankjain@linux.microsoft.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-17.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_PASS,SPF_PASS,USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Tue, 03 Oct 2023 02:28:50 -0700 (PDT) According to [1], while handling the #VC intercept for CPUID leaf 0x0000_000D, we need to supply the value of XSS in the GHCB page. If this value is not provided then a spec compliant hypervisor can fail the GHCB request and kill the guest. [1] https://www.amd.com/system/files/TechDocs/56421-guest-hypervisor-communication-block-standardization.pdf Signed-off-by: Jinank Jain --- arch/x86/include/asm/svm.h | 1 + arch/x86/kernel/sev-shared.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h index 19bf955b67e0..c2f670f7cb47 100644 --- a/arch/x86/include/asm/svm.h +++ b/arch/x86/include/asm/svm.h @@ -678,5 +678,6 @@ DEFINE_GHCB_ACCESSORS(sw_exit_info_1) DEFINE_GHCB_ACCESSORS(sw_exit_info_2) DEFINE_GHCB_ACCESSORS(sw_scratch) DEFINE_GHCB_ACCESSORS(xcr0) +DEFINE_GHCB_ACCESSORS(xss) #endif diff --git a/arch/x86/kernel/sev-shared.c b/arch/x86/kernel/sev-shared.c index 2eabccde94fb..92350a24848c 100644 --- a/arch/x86/kernel/sev-shared.c +++ b/arch/x86/kernel/sev-shared.c @@ -880,6 +880,9 @@ static enum es_result vc_handle_cpuid(struct ghcb *ghcb, if (snp_cpuid_ret != -EOPNOTSUPP) return ES_VMM_ERROR; + if (regs->ax == 0xD && regs->cx == 0x1) + ghcb_set_xss(ghcb, 0); + ghcb_set_rax(ghcb, regs->ax); ghcb_set_rcx(ghcb, regs->cx); -- 2.34.1