From mboxrd@z Thu Jan 1 00:00:00 1970 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 40E583B101D for ; Sat, 30 May 2026 16:55:55 +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=1780160156; cv=none; b=GcJjn8kbgBwAxhY9Qgm6t3O1SysUFZe0D5hoeQFC7L4QxRwVKzmxWGWuCmNEVyru1tbelfbWFIu+9T9HViMdqBPt/XfbiqJ9Mx9wF65fZVeBENt457JEJ6/rJmmt8TzY8QGqSjpa/CYaHXtmw3d6F9avV287bWyVJfdf5jxkW2I= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780160156; c=relaxed/simple; bh=0t/PwehJOhkZ25cyQ8uMWFa2qQhoO6sby96IaT7I5cs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=VHL1Tjg/51apDRf6HvPBxxFlf7Z4bK5vQKlvkRPMUWmFxUVSSpqPA4DSEsuRNeN+rj3Z9oRKfLUOoUb4Hcrhr6aMiLp+Vcdgn58/AJ8OO26iNwFpe/5WPjwfpT4wYENQFiq6XDRqctqrsAaYXc+4YbwQj7zgC+jLVJ++eLKVPcI= 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=hERZ66L0; 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="hERZ66L0" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780160154; 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=8eLGDCCntmNXCbQ4uxKMEWyY9/qJPquq+xtWLIx9isI=; b=hERZ66L0Q+Gw5THpmmfrYfY53gHXpTGYPtknnXlgSWF5s6ele/Pyh6PKuoVMGNt7+J9DSt fGzW13tEj4HI6uQVy330rPy78UAfwZN1eS+MypuYKSB9gZdwM2pwmWLaZNRNkElpGgVLU8 Kl+lXnupSQPWSE7Pk2OH+ZtyCixX4Cs= Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-398-ZyVnwrMsOlu7O8ekfM-lLQ-1; Sat, 30 May 2026 12:55:50 -0400 X-MC-Unique: ZyVnwrMsOlu7O8ekfM-lLQ-1 X-Mimecast-MFC-AGG-ID: ZyVnwrMsOlu7O8ekfM-lLQ_1780160149 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id A15AE1800344; Sat, 30 May 2026 16:55:49 +0000 (UTC) Received: from virtlab1023.lab.eng.rdu2.redhat.lab.eng.rdu2.redhat.com (virtlab1023.lab.eng.rdu2.redhat.com [10.8.1.187]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 254281800465; Sat, 30 May 2026 16:55:49 +0000 (UTC) From: Paolo Bonzini To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: seanjc@google.com Subject: [PATCH v2 4/5] KVM: x86: check that kvm_handle_invpcid is only invoked with shadow paging Date: Sat, 30 May 2026 12:55:44 -0400 Message-ID: <20260530165545.25599-5-pbonzini@redhat.com> In-Reply-To: <20260530165545.25599-1-pbonzini@redhat.com> References: <20260530165545.25599-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-Type: text/plain Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 This is true for both Intel and AMD. On Intel, "enable INVPCID" is set unconditionally if supported, but the vmexit is triggered by the "INVLPG exiting" control which is disabled by enable_ept. On AMD, KVM can intercept INVPCID if NPT is enabled but only in order to inject #UD in the guest. Signed-off-by: Paolo Bonzini --- arch/x86/kvm/x86.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index fc0924389398..1913efef6c39 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -14350,6 +14350,9 @@ int kvm_handle_invpcid(struct kvm_vcpu *vcpu, unsigned long type, gva_t gva) return 1; } + if (WARN_ON_ONCE(tdp_enabled)) + return 0; + pcid_enabled = kvm_is_cr4_bit_set(vcpu, X86_CR4_PCIDE); switch (type) { -- 2.52.0