From nobody Fri Oct 2 01:10:34 2026 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.17]) (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 F26CE442109; Thu, 6 Aug 2026 11:24:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.17 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786015468; cv=none; b=A5Ffvfk+Sk3ju9iCYQp+pmgh1ovj4xi7HyGSqdhO/nRquG4cs8CjxCIyhZ8Jqy/O7KnKwTW9WoMHcwABNXSqkHplaJ2OSV1Hh/umJZ9k8prAHaM37INaRNhev7poA08x8qgdYNNZaj4xGad71VI0HZr08ld81WaoIv0XCzH2bpU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786015468; c=relaxed/simple; bh=3KkpcMoXk1SfzZ1pej697qfkjitEwD71lPhdPRbkJz8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=S7xqUn/OW6ZtekDFG9cSjAOseIRbEbgSuHshNAODzJu+it2REUVEvAg02EulyvPLJ7gRy509R7dTu+gDD297//BOfOvIKUnLDOuFjtM7zwFPHp5XtCyBe68Pd/DXyu26nhARtBgYJ0y2qqe/h+6J66exrM04Vku7TXx1vTGM9hI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=Do3s0b+l; arc=none smtp.client-ip=198.175.65.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="Do3s0b+l" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1786015467; x=1817551467; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=3KkpcMoXk1SfzZ1pej697qfkjitEwD71lPhdPRbkJz8=; b=Do3s0b+l6vYD5l4Yz3rw20Kit1h/wPkxPIb4gsofUvP5pCht5a/988oz K8men1ByRXDWk9Un9Q0DVFC3BMCktg6AcGPS60cK94wk8F9stUxt1fENT vD2JVrFTgF8SePjpo7bwdY3D4e2bZP0BF5nggpCRm9VR8vmncuBfSwkWL +2pdw9bva8CFykuW8v4H3tmh7Xmabedc5AdlSAfzidyXSQ642fTh+1uIf Yt0h2PvRK2o5aNlAXkLirC45Oi1RjawoJk6A2LkhJj4ZhOMWGjs7Z0ZeR JSwk4VlXWC1CadNKaZmCEfZCdkmMyqk9ACBelWewn0y0lF2/4KcoIzn+R g==; X-CSE-ConnectionGUID: TwmIll1ITJqIr5hw92nX5Q== X-CSE-MsgGUID: Qy/g7mTpRSuAh58ma/MddQ== X-IronPort-AV: E=McAfee;i="6800,10657,11866"; a="86617193" X-IronPort-AV: E=Sophos;i="6.25,208,1779174000"; d="scan'208";a="86617193" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by orvoesa109.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Aug 2026 04:24:26 -0700 X-CSE-ConnectionGUID: ULBzP72VQLatutIf5T4tBQ== X-CSE-MsgGUID: EZR5F/OdSJOZuuEdPOKYeA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.25,208,1779174000"; d="scan'208";a="267225057" Received: from lxy-clx-4s.sh.intel.com ([10.239.48.33]) by fmviesa005.fm.intel.com with ESMTP; 06 Aug 2026 04:24:25 -0700 From: Xiaoyao Li To: Sean Christopherson , Paolo Bonzini Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, xiaoyao.li@intel.com Subject: [PATCH 1/3] KVM: VMX: Preserve negative return value in vmx_handle_exit() with bus lock detected Date: Thu, 6 Aug 2026 19:19:21 +0800 Message-ID: <20260806111923.1990562-2-xiaoyao.li@intel.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260806111923.1990562-1-xiaoyao.li@intel.com> References: <20260806111923.1990562-1-xiaoyao.li@intel.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" Preserve the negative return value from __vmx_handle_exit() when a bus lock is detected, instead of always overwriting it with 0. The purpose of bus_lock_detected handling is to force a userspace exit to inform userspace that a bus lock happened. The negative return value can achieve this purpose, and changing the negative value to 0 fails to return an error to userspace. So, preserve the negative return value. Fixes: fe6b6bc802b4 ("KVM: VMX: Enable bus lock VM exit") Reported-by: sashiko-bot@kernel.org Closes: https://lore.kernel.org/all/20260805034602.5B2BB1F000E9@smtp.kernel= .org/ Signed-off-by: Xiaoyao Li --- I'm not sure on the Closes: link, since Sashiko didn't find the VMX issue directly. --- arch/x86/kvm/vmx/vmx.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c index e3bfe6aca1a0..1cd120b5d4a5 100644 --- a/arch/x86/kvm/vmx/vmx.c +++ b/arch/x86/kvm/vmx/vmx.c @@ -6871,11 +6871,12 @@ int vmx_handle_exit(struct kvm_vcpu *vcpu, fastpath= _t exit_fastpath) * a bus lock in guest. */ if (vmx_get_exit_reason(vcpu).bus_lock_detected) { - if (ret > 0) + if (ret > 0) { vcpu->run->exit_reason =3D KVM_EXIT_X86_BUS_LOCK; + ret =3D 0; + } =20 vcpu->run->flags |=3D KVM_RUN_X86_BUS_LOCK; - return 0; } return ret; } --=20 2.43.0 From nobody Fri Oct 2 01:10:34 2026 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.17]) (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 D9C2642AFA7; Thu, 6 Aug 2026 11:24:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.17 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786015470; cv=none; b=A3V56TTrGBF9BtLUYR/Zan0gEDIU2sTTQ/bwXisANISIbk6+gFwp9C2w/hqVTPdU8HCqhdo5e4SEdR/0Ok2k06YQ0ZglLUYnuqSNSogJL3LyWR1hbQ09mmuJaoYHYjer/gzcgcvBLN61wxQ4zgKbpfv7TXm3NikB/HdKTYFQS14= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786015470; c=relaxed/simple; bh=OyIh6aMTzBARNySVPQ7G1lgNnAHsMqs1DMU0W7y+f5U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=r9MLy9X12tj1oSCBwQv32ovxCrTwl7hO98uLIW09nnOPCA2XR3w4OvgkxpvpSRvJrGqs7Pm/Z0JdSbMRxAV7hdz3mzfISzGguVmcknqVEWlPcYXTrvhLzTpud63Cs3PlS7XUUxqrxHmWaPY/9K/X55GHsIuKuuPQDzjG5j9jE5A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=bbdeI7nL; arc=none smtp.client-ip=198.175.65.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="bbdeI7nL" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1786015469; x=1817551469; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=OyIh6aMTzBARNySVPQ7G1lgNnAHsMqs1DMU0W7y+f5U=; b=bbdeI7nLRCqn/rBcFHsntcm1/Bxqe/UpV9AK7XgPsT/+vWKV1Z+U99M5 /OvtpzZYNPSvcTVom8WykRY5E1ryKWExH7mj+7Zr9cCAbIghjl1JDWFjL 2H+up/XV7QdO3sCVRBr1RFC/x2E5dOl4DvQbjBVI+MNGg3KU34RX4ODZz ZEsCnggOaQ9OiMZYi4C8BT5LFcOBAfkjBCklgOCFpid4sTWF9/GkZfGLj 3jWKnPEOMPBcnzAYF1537z9lfgwuUcVlzNuiKML9/hg5Cc3yXyZOhY9nj QfbJzAPse6I3n31v+OXu3lt95EHI3veSMPbh2ZtByjC88oo+PSmbKVD7t g==; X-CSE-ConnectionGUID: TE03s/bfQx2wCv0MMKi8Og== X-CSE-MsgGUID: CeVWgc7hQdGMJU5tRTXa5w== X-IronPort-AV: E=McAfee;i="6800,10657,11866"; a="86617200" X-IronPort-AV: E=Sophos;i="6.25,208,1779174000"; d="scan'208";a="86617200" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by orvoesa109.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Aug 2026 04:24:28 -0700 X-CSE-ConnectionGUID: lWp+ZP4PTx+/lClfzlMaxQ== X-CSE-MsgGUID: L+5hv8UxTG2pvq2w+BTXbQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.25,208,1779174000"; d="scan'208";a="267225064" Received: from lxy-clx-4s.sh.intel.com ([10.239.48.33]) by fmviesa005.fm.intel.com with ESMTP; 06 Aug 2026 04:24:27 -0700 From: Xiaoyao Li To: Sean Christopherson , Paolo Bonzini Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, xiaoyao.li@intel.com Subject: [PATCH 2/3] KVM: x86: Reject enabling KVM_CAP_X86_BUS_LOCK_EXIT when !kvm_caps.has_bus_lock_exit Date: Thu, 6 Aug 2026 19:19:22 +0800 Message-ID: <20260806111923.1990562-3-xiaoyao.li@intel.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260806111923.1990562-1-xiaoyao.li@intel.com> References: <20260806111923.1990562-1-xiaoyao.li@intel.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" Return -EINVAL to reject the enabling of KVM_CAP_X86_BUS_LOCK_EXIT from userspace when kvm_caps.has_bus_lock_exit is false. For KVM_BUS_LOCK_DETECTION_EXIT, if KVM doesn't support BUS LOCK EXIT, return error to userspace instead of success. For KVM_BUS_LOCK_DETECTION_OFF, it seems OK to allow it when KVM doesn't support bus_lock_exit. But from an API perspective, it implies inconsistency that KVM_CAP_X86_BUS_LOCK_EXIT reports 0 but setting KVM_BUS_LOCK_DETECTION_OFF is allowed. To keep it consistent, also return error for KVM_BUS_LOCK_DETECTION_OFF when KVM doesn't support BUS LOCK EXIT. Fixes: fe6b6bc802b4 ("KVM: VMX: Enable bus lock VM exit") Signed-off-by: Xiaoyao Li --- --- arch/x86/kvm/x86.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index d94b59140c45..3d8422d1cd04 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -4058,8 +4058,10 @@ int kvm_vm_ioctl_enable_cap(struct kvm *kvm, (cap->args[0] & KVM_BUS_LOCK_DETECTION_EXIT)) break; =20 - if (kvm_caps.has_bus_lock_exit && - cap->args[0] & KVM_BUS_LOCK_DETECTION_EXIT) + if (!kvm_caps.has_bus_lock_exit) + break; + + if (cap->args[0] & KVM_BUS_LOCK_DETECTION_EXIT) kvm->arch.bus_lock_detection_enabled =3D true; r =3D 0; break; --=20 2.43.0 From nobody Fri Oct 2 01:10:34 2026 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.17]) (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 0563B4570CB; Thu, 6 Aug 2026 11:24:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.17 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786015471; cv=none; b=FO8Xb7UqMw1t/d/P1xD0xg+Kq1O6+C6u5Rh9/OJ6oCHMHvOHE/J//++qZwXTPP+Bd9Sqk+DSkf2hMRaRosgmJOKQbIEufar8fn6VwpyPtvs5DBSTkRtluionb+WaRE5K/lwxHXWFls1vFrj5NyOntXeT19r0IFMlZd4Gg4AoTPQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786015471; c=relaxed/simple; bh=isHhFSqON99RM9lN9KMHhx8YxIhQFYw/nL3WJQcjprc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Nz6QZCh+rA7Wrq55kCEng8Nk0KfGPx9h9T/2wwui3VUf89A9wD+YUWByB+F/vW1dVl6GsfukMAF3jR+IyUW5aCoxGc/ak/S2xINDGK3AVaeOWnZUdItvZVD9IVBh0b29FFWtoRfEs0O6d0Rqa6xTDASUjPzLEjMAJzcDrf7QoKo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=ERwC+k8z; arc=none smtp.client-ip=198.175.65.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="ERwC+k8z" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1786015470; x=1817551470; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=isHhFSqON99RM9lN9KMHhx8YxIhQFYw/nL3WJQcjprc=; b=ERwC+k8zU9gu52NPZM9qDgpplJFs/JGKzMxn6/DB68OVy8zDktswWI1C CnJDfQxJGLayUrm2UdEaGfefVM6mOE6zM+HzFpv3QhNKanzONX22ej6Oa hKRgGzFJ6CfGaNzpIYzZzktN9CVMV+6Ph+eNErSBk1ThpgO5n4si0zESt Pi0/AdRMd0+e/IJ60WlzmenJZUl5ubIewpbWNXTnKzm0if4CsJWIHlEi0 h84VVXjobyjXweRZ/8dLc7DQ3r2i5A9vrQX2Xgk30ScBAdLlcEb29ekDf ScLyTYoexZviuIh0S9BoHs66LcYomzs1A6xs77TIroxGbeCQCZUgJcrGs g==; X-CSE-ConnectionGUID: +c4tNAK3SFybD6tx4kbPHg== X-CSE-MsgGUID: iYOeId8ZTgWuLbM8aTVxVQ== X-IronPort-AV: E=McAfee;i="6800,10657,11866"; a="86617209" X-IronPort-AV: E=Sophos;i="6.25,208,1779174000"; d="scan'208";a="86617209" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by orvoesa109.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Aug 2026 04:24:29 -0700 X-CSE-ConnectionGUID: RGTYbLApRR2xtOUuj81jJw== X-CSE-MsgGUID: oFUKArw7S/GUBRIBfLF2vQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.25,208,1779174000"; d="scan'208";a="267225071" Received: from lxy-clx-4s.sh.intel.com ([10.239.48.33]) by fmviesa005.fm.intel.com with ESMTP; 06 Aug 2026 04:24:28 -0700 From: Xiaoyao Li To: Sean Christopherson , Paolo Bonzini Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, xiaoyao.li@intel.com Subject: [PATCH 3/3] KVM: x86: Only allow enabling KVM_BUS_LOCK_DETECTION_EXIT before creating any vCPU Date: Thu, 6 Aug 2026 19:19:23 +0800 Message-ID: <20260806111923.1990562-4-xiaoyao.li@intel.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260806111923.1990562-1-xiaoyao.li@intel.com> References: <20260806111923.1990562-1-xiaoyao.li@intel.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" When userspace enables KVM_BUS_LOCK_DETECTION_EXIT after some vCPUs have been created, KVM may fail to enable the feature for created vCPUs. It is possible for KVM to later enable the feature for created vCPUs in some cases, but it's not guaranteed. Instead of introducing complexity to support this use case, just disallow enabling KVM_BUS_LOCK_DETECTION_EXIT when vCPUs have been created for simplicity. Signed-off-by: Xiaoyao Li --- arch/x86/kvm/x86.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 3d8422d1cd04..df8ee03cd9ad 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -4061,9 +4061,15 @@ int kvm_vm_ioctl_enable_cap(struct kvm *kvm, if (!kvm_caps.has_bus_lock_exit) break; =20 - if (cap->args[0] & KVM_BUS_LOCK_DETECTION_EXIT) - kvm->arch.bus_lock_detection_enabled =3D true; r =3D 0; + if (cap->args[0] & KVM_BUS_LOCK_DETECTION_EXIT) { + mutex_lock(&kvm->lock); + if (!kvm->created_vcpus) + kvm->arch.bus_lock_detection_enabled =3D true; + else + r =3D -EINVAL; + mutex_unlock(&kvm->lock); + } break; #ifdef CONFIG_X86_SGX_KVM case KVM_CAP_SGX_ATTRIBUTE: { --=20 2.43.0