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 F0CF343901A for ; Wed, 3 Jun 2026 10:58:20 +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=1780484303; cv=none; b=Dx1mEuriD1824r0/a3SVKZZlvL5TJV/RaVm5tFdKH9tUFdp1IJQY41K1GPHWxSvH7fuQ8t8YNbi1TXSiNQmSqnWX8wXPf2ina8j59Keb0sDs2Vz/SpcMb/mvQNrGpL7CQfTkIgSwfrFmPjkjI0Y4pSSNzykrR6DS4ZWM0MAOkdk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780484303; c=relaxed/simple; bh=b0LcpMR544N/isNg3tfPHpqnBsdyM2QGsdAxWjYuI10=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=F+379hOiO9mMBKxXXBORvOYHrIbfhFlVVVMIwJed8+JAdIxKqjWs+lMOLw+Jhyg+r8wNbSElEWNH8ymXr7lO+CoqcvlxEbf/MmA1iDzgro2myVZprjDHpsWh1TOh/lDDEviavVWubqPQiZbZN06qsf5qBXeZ0Tl++NOVV2kv3jY= 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=KaCECVeE; 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="KaCECVeE" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780484300; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kYe3fKfRxXiwypEiyAL53b1qVAEXN1RgGxgN7hKhSQg=; b=KaCECVeE6tzYIsK7vaBWH4luM9JfivJT5xmp8WxrhlsksxZG/EL64Eh8fomd+Mmw4Z29oS Mrq8A1ajzGcV/elETgfFQZv8iXhufcygU0qyLt/y1gaQTiM0smNV8+Yn5x9hdXOUJeMOGd qsPeQC1d+1o3KFnpurpJnQ8p+mcSOxA= Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-90-FRVRSdfVOPuZV1ftrMXADA-1; Wed, 03 Jun 2026 06:58:18 -0400 X-MC-Unique: FRVRSdfVOPuZV1ftrMXADA-1 X-Mimecast-MFC-AGG-ID: FRVRSdfVOPuZV1ftrMXADA_1780484297 Received: from mx-prod-int-10.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-10.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.95]) (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-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id CFB95195609D; Wed, 3 Jun 2026 10:58:17 +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-10.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 6AB66404; Wed, 3 Jun 2026 10:58:17 +0000 (UTC) From: Paolo Bonzini To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org Subject: [PATCH 04/24] KVM: x86: check that kvm_handle_invpcid is only invoked with shadow paging Date: Wed, 3 Jun 2026 06:57:54 -0400 Message-ID: <20260603105814.10236-5-pbonzini@redhat.com> In-Reply-To: <20260603105814.10236-1-pbonzini@redhat.com> References: <20260603105814.10236-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.6 on 10.30.177.95 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 48f259015ce4..6897b9f4ce7f 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -14282,6 +14282,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