From nobody Sat Apr 4 04:54:47 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1BFA02E7631 for ; Sat, 21 Mar 2026 00:10:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774051840; cv=none; b=OeV/bLrplCJjVuzEkIv8lBw/d5rhMeQEgJHGtjQwTkn389oWwVkzWWqXz+/GtIMJ3DNk6XZ5ZZTHbAYMaz9auqBGzVV6dOl3LtfWdMYDcVOpn30BHm9Tqx0Nw6O4gGCECwC3CAlsjeZ/YxE1xQTsRxXiMEoyETxHS6/UQu357oY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774051840; c=relaxed/simple; bh=RwPqlGeNkb18wMTEDlE8OJyCiSTO793BGluw/5D5YaI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=P9iGoOIDHpsH8VPTfg8aOzUFoPQPzwAjz51xE7R7xWAy6XVG07OEEKGMdY1VLz4KxRIVGjYw/TiaGJA6/feA6uqHt+S5OjLRC5mARMKnx29f6Uh6l2JhEg5KMTHPrnMTcRqWbE0btGdaDjTd5F3PauwPoroZcRccjSXtfWNkmFA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=RfMkx8DW; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=qHJ7wcAp; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="RfMkx8DW"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="qHJ7wcAp" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1774051838; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+lwADGhzFduFsZYKsBEke3PE8WrGRHNnzI5qm22SisE=; b=RfMkx8DWE9jv7OOZ7M9UXFpq6JoMFyUW0iqt4DqaxdKR1CwDvRkUP6dThYLuJOm0puUlyj pcv16IxZkRaNob95advVj/MJQIqXmaYudsVAsfh+DWsGyCV5ttjYFPUzRZCqoNCfhR013l mWBejT6JTdEEb4FLcpkX+YriDazPQrE= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-452-ej8H0_5XN0ikNUiZvQPRyA-1; Fri, 20 Mar 2026 20:10:36 -0400 X-MC-Unique: ej8H0_5XN0ikNUiZvQPRyA-1 X-Mimecast-MFC-AGG-ID: ej8H0_5XN0ikNUiZvQPRyA_1774051834 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-48531e6012bso38454045e9.1 for ; Fri, 20 Mar 2026 17:10:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1774051834; x=1774656634; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+lwADGhzFduFsZYKsBEke3PE8WrGRHNnzI5qm22SisE=; b=qHJ7wcApFET/cqpNbOAXs4ZWtaFPdnbOx07KYgMmUyrOhdwcN+Rr3KRfNCZtYCMOL6 w0NVeYJ6wHl3S+dv4mLwcud82lar+nBda+Y6j2Nq1Fxn7wk7tuNf2UoUaEITW8pyLEq7 YMKyb/725eGijUImIgAXgT/cDe4PIncqPM3HNrz+230MnQQLBA7rwF1+Iz6kQa7ccSYa zFAghGvO9kmrf0QM0Io16w2n7NkAoYP+9l4ZnsGpENoGFyrlVHzwnE9qADA6B8DDHTdF 4e7kBl4ibpiXTx2Ak6fSl63vH2hC4zQFEbQva2eqlzwe+jA7p8zOxUTVuEQxzcJ9rEJX 1Cpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774051834; x=1774656634; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+lwADGhzFduFsZYKsBEke3PE8WrGRHNnzI5qm22SisE=; b=VIkawYFdfevo56gDR3qUdjGw5Mr55F300rOc5DE7qxP2mgdRtqZxfjdoYOKpDou5zl /9Bm2ZB28Mk6MftFNyuJfGjJfHDoLcwMupHO201NedvEyPV6qm7IeY9IPd1XKELdJaW6 Ug/8hc5M2oORoWDWSM5DeXTSCRDXiWi4ZQh8Hi8EXm7hYw+QACqdF13M/yRyL3exCuxC GoBn3R6jK5wVDRBvrRVK83ir37JU36wlZ8IGDxx7KkcJiTq+Mj7JavZtnF6ffXeswyhL A2x9Xvd9k6QVpoIVnkGQTXgsTebGdMaq/0OE3sQwhgdgsgDngS3o1kOj5Gwpo6x0kgNY UtuA== X-Gm-Message-State: AOJu0Yy/qFP2s/hDlh4Zki3di6CvMsibZpOwWqjwK7YMrxRYkvC7JjLr gqETZAyKVV27vt3fqvOqWaTE1/yWKjjzfUboAc6kWBoL7eg69tejgqUc9mUSNSASffdVU9rRz0n su6n2bx1oG2OaivWYJfjkT64YmA0YcMebmAhj++M4/QwPRzUHVq8Zu1/SmLA7+aN+QKC7av/mJV 1mph97/+Eak89/mtOWexJf83npNK9E/hgF796xWA+llRNsJG7k6w== X-Gm-Gg: ATEYQzyikVyBs3Q49D1/+U5WnU2QDcfJPk/SgvsjSQyoM6g38HEoviLvuSn1hGhmgI+ tHvwj5lFsaE8vXaST5cvJhfqezQEBjkN6x3u6UUCTu12VThKaCpXBSNFng08NE+t6y8I4VmbtpE LoOjx7MB60X66jkUEgv5aeqlxXYGsJSXS330sbPlycW/l8j7+eYDuUHJD4JJ/8pAbh84A3akcnI mZU5A4EStFCAVvbAMJSoFRRRDGJjOK1Y6hPJY0a0ahTi1Tn6l+9uryxBSYy4NMOQQRr9qIKxXs0 qAoK3KOxnTXaaGlsnqEHNQiLZHK3aYFs1ZkbA0JDAcojnaY7UnoyUNzwAuGQx1iWpB1R6MtGWJr 9VxqyAfB7jA/xakL1uIAEsV6M+m2gmHbKJLd+zkp22/c6TN87a1BGEM6RM/T5g7l+6k26PfcVzx H3fycRiXeg1CFoR/IUTV+L848Y X-Received: by 2002:a05:600c:8b45:b0:486:fbe1:2499 with SMTP id 5b1f17b1804b1-486fee0d6ebmr66590035e9.22.1774051833915; Fri, 20 Mar 2026 17:10:33 -0700 (PDT) X-Received: by 2002:a05:600c:8b45:b0:486:fbe1:2499 with SMTP id 5b1f17b1804b1-486fee0d6ebmr66589665e9.22.1774051833456; Fri, 20 Mar 2026 17:10:33 -0700 (PDT) Received: from [192.168.10.48] ([151.49.85.67]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-486fe82ae69sm91545145e9.9.2026.03.20.17.10.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 17:10:32 -0700 (PDT) From: Paolo Bonzini To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: Jon Kohler , Marcelo Tosatti , Nikunj A Dadhania , Amit Shah , Sean Christopherson Subject: [PATCH 21/22] KVM: SVM: work around errata 1218 Date: Sat, 21 Mar 2026 01:09:30 +0100 Message-ID: <20260321000931.1947084-22-pbonzini@redhat.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260321000931.1947084-1-pbonzini@redhat.com> References: <20260321000931.1947084-1-pbonzini@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" According to AMD, the hypervisor may not be able to determine whether a fault was a GMET fault or an NX fault based on EXITINFO1, and software "must read the relevant VMCB to determine whether a fault was a GMET fault or an NX fault". The APM further details that they meant the CPL field. KVM uses the page fault error code to distinguish the causes of a nested page fault, so recalculate the PFERR_USER_MASK bit of the vmexit information. Only do it for fetches and only if GMET is in use, because KVM does not differentiate based on PFERR_USER_MASK for other nested NPT page faults. Signed-off-by: Paolo Bonzini --- arch/x86/kvm/svm/svm.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index 4a4f663b2bd2..d3b69eb3242b 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -1955,6 +1955,17 @@ static int npf_interception(struct kvm_vcpu *vcpu) if (WARN_ON_ONCE(error_code & PFERR_SYNTHETIC_MASK)) error_code &=3D ~PFERR_SYNTHETIC_MASK; =20 + if ((svm->vmcb->control.nested_ctl & SVM_NESTED_CTL_GMET_ENABLE) && + (error_code & PFERR_FETCH_MASK)) { + /* + * Work around errata 1218: EXITINFO1[2] May Be Incorrectly Set + * When GMET (Guest Mode Execute Trap extension) is Enabled + */ + error_code |=3D PFERR_USER_MASK; + if (svm_get_cpl(vcpu) =3D=3D 0) + error_code &=3D ~PFERR_USER_MASK; + } + if (sev_snp_guest(vcpu->kvm) && (error_code & PFERR_GUEST_ENC_MASK)) error_code |=3D PFERR_PRIVATE_ACCESS; =20 --=20 2.52.0