From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev,
Yong-Xuan Wang <yongxuan.wang@sifive.com>,
Anup Patel <anup@brainfault.org>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.6 057/142] RISCV: KVM: Introduce mp_state_lock to avoid lock inversion
Date: Wed, 5 Mar 2025 18:47:56 +0100 [thread overview]
Message-ID: <20250305174502.629278166@linuxfoundation.org> (raw)
In-Reply-To: <20250305174500.327985489@linuxfoundation.org>
6.6-stable review patch. If anyone has any objections, please let me know.
------------------
From: Yong-Xuan Wang <yongxuan.wang@sifive.com>
[ Upstream commit 2121cadec45aaf61fa45b3aa3d99723ed4e6683a ]
Documentation/virt/kvm/locking.rst advises that kvm->lock should be
acquired outside vcpu->mutex and kvm->srcu. However, when KVM/RISC-V
handling SBI_EXT_HSM_HART_START, the lock ordering is vcpu->mutex,
kvm->srcu then kvm->lock.
Although the lockdep checking no longer complains about this after commit
f0f44752f5f6 ("rcu: Annotate SRCU's update-side lockdep dependencies"),
it's necessary to replace kvm->lock with a new dedicated lock to ensure
only one hart can execute the SBI_EXT_HSM_HART_START call for the target
hart simultaneously.
Additionally, this patch also rename "power_off" to "mp_state" with two
possible values. The vcpu->mp_state_lock also protects the access of
vcpu->mp_state.
Signed-off-by: Yong-Xuan Wang <yongxuan.wang@sifive.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Link: https://lore.kernel.org/r/20240417074528.16506-2-yongxuan.wang@sifive.com
Signed-off-by: Anup Patel <anup@brainfault.org>
Stable-dep-of: c7db342e3b47 ("riscv: KVM: Fix hart suspend status check")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
arch/riscv/include/asm/kvm_host.h | 8 ++++--
arch/riscv/kvm/vcpu.c | 48 ++++++++++++++++++++++---------
arch/riscv/kvm/vcpu_sbi.c | 7 +++--
arch/riscv/kvm/vcpu_sbi_hsm.c | 39 +++++++++++++++++--------
4 files changed, 73 insertions(+), 29 deletions(-)
diff --git a/arch/riscv/include/asm/kvm_host.h b/arch/riscv/include/asm/kvm_host.h
index 1ebf20dfbaa69..459e61ad7d2b6 100644
--- a/arch/riscv/include/asm/kvm_host.h
+++ b/arch/riscv/include/asm/kvm_host.h
@@ -236,8 +236,9 @@ struct kvm_vcpu_arch {
/* Cache pages needed to program page tables with spinlock held */
struct kvm_mmu_memory_cache mmu_page_cache;
- /* VCPU power-off state */
- bool power_off;
+ /* VCPU power state */
+ struct kvm_mp_state mp_state;
+ spinlock_t mp_state_lock;
/* Don't run the VCPU (blocked) */
bool pause;
@@ -351,7 +352,10 @@ int kvm_riscv_vcpu_unset_interrupt(struct kvm_vcpu *vcpu, unsigned int irq);
void kvm_riscv_vcpu_flush_interrupts(struct kvm_vcpu *vcpu);
void kvm_riscv_vcpu_sync_interrupts(struct kvm_vcpu *vcpu);
bool kvm_riscv_vcpu_has_interrupts(struct kvm_vcpu *vcpu, u64 mask);
+void __kvm_riscv_vcpu_power_off(struct kvm_vcpu *vcpu);
void kvm_riscv_vcpu_power_off(struct kvm_vcpu *vcpu);
+void __kvm_riscv_vcpu_power_on(struct kvm_vcpu *vcpu);
void kvm_riscv_vcpu_power_on(struct kvm_vcpu *vcpu);
+bool kvm_riscv_vcpu_stopped(struct kvm_vcpu *vcpu);
#endif /* __RISCV_KVM_HOST_H__ */
diff --git a/arch/riscv/kvm/vcpu.c b/arch/riscv/kvm/vcpu.c
index 82229db1ce73f..9584d62c96ee7 100644
--- a/arch/riscv/kvm/vcpu.c
+++ b/arch/riscv/kvm/vcpu.c
@@ -100,6 +100,8 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu)
struct kvm_cpu_context *cntx;
struct kvm_vcpu_csr *reset_csr = &vcpu->arch.guest_reset_csr;
+ spin_lock_init(&vcpu->arch.mp_state_lock);
+
/* Mark this VCPU never ran */
vcpu->arch.ran_atleast_once = false;
vcpu->arch.mmu_page_cache.gfp_zero = __GFP_ZERO;
@@ -193,7 +195,7 @@ void kvm_arch_vcpu_unblocking(struct kvm_vcpu *vcpu)
int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu)
{
return (kvm_riscv_vcpu_has_interrupts(vcpu, -1UL) &&
- !vcpu->arch.power_off && !vcpu->arch.pause);
+ !kvm_riscv_vcpu_stopped(vcpu) && !vcpu->arch.pause);
}
int kvm_arch_vcpu_should_kick(struct kvm_vcpu *vcpu)
@@ -421,26 +423,42 @@ bool kvm_riscv_vcpu_has_interrupts(struct kvm_vcpu *vcpu, u64 mask)
return kvm_riscv_vcpu_aia_has_interrupts(vcpu, mask);
}
-void kvm_riscv_vcpu_power_off(struct kvm_vcpu *vcpu)
+void __kvm_riscv_vcpu_power_off(struct kvm_vcpu *vcpu)
{
- vcpu->arch.power_off = true;
+ WRITE_ONCE(vcpu->arch.mp_state.mp_state, KVM_MP_STATE_STOPPED);
kvm_make_request(KVM_REQ_SLEEP, vcpu);
kvm_vcpu_kick(vcpu);
}
-void kvm_riscv_vcpu_power_on(struct kvm_vcpu *vcpu)
+void kvm_riscv_vcpu_power_off(struct kvm_vcpu *vcpu)
{
- vcpu->arch.power_off = false;
+ spin_lock(&vcpu->arch.mp_state_lock);
+ __kvm_riscv_vcpu_power_off(vcpu);
+ spin_unlock(&vcpu->arch.mp_state_lock);
+}
+
+void __kvm_riscv_vcpu_power_on(struct kvm_vcpu *vcpu)
+{
+ WRITE_ONCE(vcpu->arch.mp_state.mp_state, KVM_MP_STATE_RUNNABLE);
kvm_vcpu_wake_up(vcpu);
}
+void kvm_riscv_vcpu_power_on(struct kvm_vcpu *vcpu)
+{
+ spin_lock(&vcpu->arch.mp_state_lock);
+ __kvm_riscv_vcpu_power_on(vcpu);
+ spin_unlock(&vcpu->arch.mp_state_lock);
+}
+
+bool kvm_riscv_vcpu_stopped(struct kvm_vcpu *vcpu)
+{
+ return READ_ONCE(vcpu->arch.mp_state.mp_state) == KVM_MP_STATE_STOPPED;
+}
+
int kvm_arch_vcpu_ioctl_get_mpstate(struct kvm_vcpu *vcpu,
struct kvm_mp_state *mp_state)
{
- if (vcpu->arch.power_off)
- mp_state->mp_state = KVM_MP_STATE_STOPPED;
- else
- mp_state->mp_state = KVM_MP_STATE_RUNNABLE;
+ *mp_state = READ_ONCE(vcpu->arch.mp_state);
return 0;
}
@@ -450,17 +468,21 @@ int kvm_arch_vcpu_ioctl_set_mpstate(struct kvm_vcpu *vcpu,
{
int ret = 0;
+ spin_lock(&vcpu->arch.mp_state_lock);
+
switch (mp_state->mp_state) {
case KVM_MP_STATE_RUNNABLE:
- vcpu->arch.power_off = false;
+ WRITE_ONCE(vcpu->arch.mp_state, *mp_state);
break;
case KVM_MP_STATE_STOPPED:
- kvm_riscv_vcpu_power_off(vcpu);
+ __kvm_riscv_vcpu_power_off(vcpu);
break;
default:
ret = -EINVAL;
}
+ spin_unlock(&vcpu->arch.mp_state_lock);
+
return ret;
}
@@ -561,11 +583,11 @@ static void kvm_riscv_check_vcpu_requests(struct kvm_vcpu *vcpu)
if (kvm_check_request(KVM_REQ_SLEEP, vcpu)) {
kvm_vcpu_srcu_read_unlock(vcpu);
rcuwait_wait_event(wait,
- (!vcpu->arch.power_off) && (!vcpu->arch.pause),
+ (!kvm_riscv_vcpu_stopped(vcpu)) && (!vcpu->arch.pause),
TASK_INTERRUPTIBLE);
kvm_vcpu_srcu_read_lock(vcpu);
- if (vcpu->arch.power_off || vcpu->arch.pause) {
+ if (kvm_riscv_vcpu_stopped(vcpu) || vcpu->arch.pause) {
/*
* Awaken to handle a signal, request to
* sleep again later.
diff --git a/arch/riscv/kvm/vcpu_sbi.c b/arch/riscv/kvm/vcpu_sbi.c
index 7a7fe40d0930b..be43278109f4e 100644
--- a/arch/riscv/kvm/vcpu_sbi.c
+++ b/arch/riscv/kvm/vcpu_sbi.c
@@ -102,8 +102,11 @@ void kvm_riscv_vcpu_sbi_system_reset(struct kvm_vcpu *vcpu,
unsigned long i;
struct kvm_vcpu *tmp;
- kvm_for_each_vcpu(i, tmp, vcpu->kvm)
- tmp->arch.power_off = true;
+ kvm_for_each_vcpu(i, tmp, vcpu->kvm) {
+ spin_lock(&vcpu->arch.mp_state_lock);
+ WRITE_ONCE(tmp->arch.mp_state.mp_state, KVM_MP_STATE_STOPPED);
+ spin_unlock(&vcpu->arch.mp_state_lock);
+ }
kvm_make_all_cpus_request(vcpu->kvm, KVM_REQ_SLEEP);
memset(&run->system_event, 0, sizeof(run->system_event));
diff --git a/arch/riscv/kvm/vcpu_sbi_hsm.c b/arch/riscv/kvm/vcpu_sbi_hsm.c
index 7dca0e9381d9a..827d946ab8714 100644
--- a/arch/riscv/kvm/vcpu_sbi_hsm.c
+++ b/arch/riscv/kvm/vcpu_sbi_hsm.c
@@ -18,12 +18,18 @@ static int kvm_sbi_hsm_vcpu_start(struct kvm_vcpu *vcpu)
struct kvm_cpu_context *cp = &vcpu->arch.guest_context;
struct kvm_vcpu *target_vcpu;
unsigned long target_vcpuid = cp->a0;
+ int ret = 0;
target_vcpu = kvm_get_vcpu_by_id(vcpu->kvm, target_vcpuid);
if (!target_vcpu)
return SBI_ERR_INVALID_PARAM;
- if (!target_vcpu->arch.power_off)
- return SBI_ERR_ALREADY_AVAILABLE;
+
+ spin_lock(&target_vcpu->arch.mp_state_lock);
+
+ if (!kvm_riscv_vcpu_stopped(target_vcpu)) {
+ ret = SBI_ERR_ALREADY_AVAILABLE;
+ goto out;
+ }
reset_cntx = &target_vcpu->arch.guest_reset_context;
/* start address */
@@ -34,19 +40,31 @@ static int kvm_sbi_hsm_vcpu_start(struct kvm_vcpu *vcpu)
reset_cntx->a1 = cp->a2;
kvm_make_request(KVM_REQ_VCPU_RESET, target_vcpu);
- kvm_riscv_vcpu_power_on(target_vcpu);
+ __kvm_riscv_vcpu_power_on(target_vcpu);
- return 0;
+out:
+ spin_unlock(&target_vcpu->arch.mp_state_lock);
+
+ return ret;
}
static int kvm_sbi_hsm_vcpu_stop(struct kvm_vcpu *vcpu)
{
- if (vcpu->arch.power_off)
- return SBI_ERR_FAILURE;
+ int ret = 0;
- kvm_riscv_vcpu_power_off(vcpu);
+ spin_lock(&vcpu->arch.mp_state_lock);
- return 0;
+ if (kvm_riscv_vcpu_stopped(vcpu)) {
+ ret = SBI_ERR_FAILURE;
+ goto out;
+ }
+
+ __kvm_riscv_vcpu_power_off(vcpu);
+
+out:
+ spin_unlock(&vcpu->arch.mp_state_lock);
+
+ return ret;
}
static int kvm_sbi_hsm_vcpu_get_status(struct kvm_vcpu *vcpu)
@@ -58,7 +76,7 @@ static int kvm_sbi_hsm_vcpu_get_status(struct kvm_vcpu *vcpu)
target_vcpu = kvm_get_vcpu_by_id(vcpu->kvm, target_vcpuid);
if (!target_vcpu)
return SBI_ERR_INVALID_PARAM;
- if (!target_vcpu->arch.power_off)
+ if (!kvm_riscv_vcpu_stopped(target_vcpu))
return SBI_HSM_STATE_STARTED;
else if (vcpu->stat.generic.blocking)
return SBI_HSM_STATE_SUSPENDED;
@@ -71,14 +89,11 @@ static int kvm_sbi_ext_hsm_handler(struct kvm_vcpu *vcpu, struct kvm_run *run,
{
int ret = 0;
struct kvm_cpu_context *cp = &vcpu->arch.guest_context;
- struct kvm *kvm = vcpu->kvm;
unsigned long funcid = cp->a6;
switch (funcid) {
case SBI_EXT_HSM_HART_START:
- mutex_lock(&kvm->lock);
ret = kvm_sbi_hsm_vcpu_start(vcpu);
- mutex_unlock(&kvm->lock);
break;
case SBI_EXT_HSM_HART_STOP:
ret = kvm_sbi_hsm_vcpu_stop(vcpu);
--
2.39.5
next prev parent reply other threads:[~2025-03-05 18:01 UTC|newest]
Thread overview: 151+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-05 17:46 [PATCH 6.6 000/142] 6.6.81-rc1 review Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 001/142] IB/mlx5: Set and get correct qp_num for a DCT QP Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 002/142] RDMA/mana_ib: Allocate PAGE aligned doorbell index Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 003/142] scsi: ufs: core: Add ufshcd_is_ufs_dev_busy() Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 004/142] scsi: ufs: core: Add UFS RTC support Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 005/142] scsi: ufs: core: Introduce ufshcd_has_pending_tasks() Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 006/142] scsi: ufs: core: Prepare to introduce a new clock_gating lock Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 007/142] scsi: ufs: core: Fix ufshcd_is_ufs_dev_busy() and ufshcd_eh_timed_out() Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 008/142] ovl: fix UAF in ovl_dentry_update_reval by moving dput() in ovl_link_up Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 009/142] SUNRPC: convert RPC_TASK_* constants to enum Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 010/142] SUNRPC: Prevent looping due to rpc_signal_task() races Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 011/142] SUNRPC: Handle -ETIMEDOUT return from tlshd Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 012/142] IB/core: Add support for XDR link speed Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 013/142] RDMA/mlx5: Fix AH static rate parsing Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 014/142] scsi: core: Clear driver private data when retrying request Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 015/142] RDMA/mlx5: Fix bind QP error cleanup flow Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 016/142] sunrpc: suppress warnings for unused procfs functions Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 017/142] ALSA: usb-audio: Avoid dropping MIDI events at closing multiple ports Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 018/142] Bluetooth: L2CAP: Fix L2CAP_ECRED_CONN_RSP response Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 019/142] rxrpc: rxperf: Fix missing decoding of terminal magic cookie Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 020/142] afs: Make it possible to find the volumes that are using a server Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 021/142] afs: Fix the server_list to unuse a displaced server rather than putting it Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 022/142] net: loopback: Avoid sending IP packets without an Ethernet header Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 023/142] net: set the minimum for net_hotdata.netdev_budget_usecs Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 024/142] net/ipv4: add tracepoint for icmp_send Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 025/142] ipv4: icmp: Pass full DS field to ip_route_input() Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 026/142] ipv4: icmp: Unmask upper DSCP bits in icmp_route_lookup() Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 027/142] ipvlan: Unmask upper DSCP bits in ipvlan_process_v4_outbound() Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 028/142] ipv4: Convert icmp_route_lookup() to dscp_t Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 029/142] ipv4: Convert ip_route_input() " Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 030/142] ipvlan: Prepare ipvlan_process_v4_outbound() to future .flowi4_tos conversion Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 031/142] ipvlan: ensure network headers are in skb linear part Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 032/142] net: cadence: macb: Synchronize stats calculations Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 033/142] ASoC: es8328: fix route from DAC to output Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 034/142] ipvs: Always clear ipvs_property flag in skb_scrub_packet() Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 035/142] firmware: cs_dsp: Remove async regmap writes Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 036/142] ALSA: hda/realtek: Add quirks for ASUS ROG 2023 models Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 037/142] ALSA: hda/realtek: Fix wrong mic setup for ASUS VivoBook 15 Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 038/142] ice: Add E830 device IDs, MAC type and registers Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 039/142] ice: add E830 HW VF mailbox message limit support Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 040/142] ice: Fix deinitializing VF in error path Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 041/142] tcp: Defer ts_recent changes until req is owned Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 042/142] net: Clear old fragment checksum value in napi_reuse_skb Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 043/142] net: mvpp2: cls: Fixed Non IP flow, with vlan tag flow defination Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 044/142] net/mlx5: IRQ, Fix null string in debug print Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 045/142] include: net: add static inline dst_dev_overhead() to dst.h Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 046/142] net: ipv6: seg6_iptunnel: mitigate 2-realloc issue Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 047/142] net: ipv6: fix dst ref loop on input in seg6 lwt Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 048/142] net: ipv6: rpl_iptunnel: mitigate 2-realloc issue Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 049/142] net: ipv6: fix dst ref loop on input in rpl lwt Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 050/142] net: ti: icss-iep: Remove spinlock-based synchronization Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 051/142] net: ti: icss-iep: Reject perout generation request Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 052/142] perf/core: Order the PMU list to fix warning about unordered pmu_ctx_list Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 053/142] uprobes: Reject the shared zeropage in uprobe_write_opcode() Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 054/142] io_uring/net: save msg_control for compat Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 055/142] x86/CPU: Fix warm boot hang regression on AMD SC1100 SoC systems Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 056/142] phy: rockchip: naneng-combphy: compatible reset with old DT Greg Kroah-Hartman
2025-03-05 17:47 ` Greg Kroah-Hartman [this message]
2025-03-05 17:47 ` [PATCH 6.6 058/142] riscv: KVM: Fix hart suspend status check Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 059/142] riscv: KVM: Fix SBI IPI error generation Greg Kroah-Hartman
2025-03-05 17:47 ` [PATCH 6.6 060/142] riscv: KVM: Fix SBI TIME " Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 061/142] tracing: Fix bad hist from corrupting named_triggers list Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 062/142] ftrace: Avoid potential division by zero in function_stat_show() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 063/142] ALSA: usb-audio: Re-add sample rate quirk for Pioneer DJM-900NXS2 Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 064/142] ALSA: hda/realtek: Fix microphone regression on ASUS N705UD Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 065/142] perf/core: Add RCU read lock protection to perf_iterate_ctx() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 066/142] perf/x86: Fix low freqency setting issue Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 067/142] perf/core: Fix low freq setting via IOC_PERIOD Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 068/142] drm/amd/display: Disable PSR-SU on eDP panels Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 069/142] drm/amd/display: Fix HPD after gpu reset Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 070/142] i2c: npcm: disable interrupt enable bit before devm_request_irq Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 071/142] i2c: ls2x: Fix frequency division register access Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 072/142] usbnet: gl620a: fix endpoint checking in genelink_bind() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 073/142] net: enetc: fix the off-by-one issue in enetc_map_tx_buffs() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 074/142] net: enetc: keep track of correct Tx BD count in enetc_map_tx_tso_buffs() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 075/142] net: enetc: update UDP checksum when updating originTimestamp field Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 076/142] net: enetc: correct the xdp_tx statistics Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 077/142] net: enetc: fix the off-by-one issue in enetc_map_tx_tso_buffs() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 078/142] phy: tegra: xusb: reset VBUS & ID OVERRIDE Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 079/142] phy: exynos5-usbdrd: fix MPLL_MULTIPLIER and SSC_REFCLKSEL masks in refclk Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 080/142] mptcp: always handle address removal under msk socket lock Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 081/142] mptcp: reset when MPTCP opts are dropped after join Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 082/142] vmlinux.lds: Ensure that const vars with relocations are mapped R/O Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 083/142] rcuref: Plug slowpath race in rcuref_put() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 084/142] sched/core: Prevent rescheduling when interrupts are disabled Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 085/142] scsi: ufs: core: bsg: Fix crash when arpmb command fails Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 086/142] rseq/selftests: Fix riscv rseq_offset_deref_addv inline asm Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 087/142] riscv/futex: sign extend compare value in atomic cmpxchg Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 088/142] riscv: signal: fix signal frame size Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 089/142] Revert "rtla/timerlat_top: Set OSNOISE_WORKLOAD for kernel threads" Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 090/142] Revert "rtla/timerlat_hist: " Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 091/142] rtla/timerlat_hist: Set OSNOISE_WORKLOAD for kernel threads Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 092/142] rtla/timerlat_top: " Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 093/142] amdgpu/pm/legacy: fix suspend/resume issues Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 094/142] gve: set xdp redirect target only when it is available Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 095/142] intel_idle: Handle older CPUs, which stop the TSC in deeper C states, correctly Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 096/142] arm64: dts: rockchip: Disable DMA for uart5 on px30-ringneck Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 097/142] x86/microcode/32: Move early loading after paging enable Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 098/142] x86/microcode/intel: Rip out mixed stepping support for Intel CPUs Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 099/142] x86/microcode/intel: Simplify scan_microcode() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 100/142] x86/microcode/intel: Simplify and rename generic_load_microcode() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 101/142] x86/microcode/intel: Cleanup code further Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 102/142] x86/microcode/intel: Simplify early loading Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 103/142] x86/microcode/intel: Save the microcode only after a successful late-load Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 104/142] x86/microcode/intel: Switch to kvmalloc() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 105/142] x86/microcode/intel: Unify microcode apply() functions Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 106/142] x86/microcode/intel: Rework intel_cpu_collect_info() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 107/142] x86/microcode/intel: Reuse intel_cpu_collect_info() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 108/142] x86/microcode/intel: Rework intel_find_matching_signature() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 109/142] x86/microcode: Remove pointless apply() invocation Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 110/142] x86/microcode/amd: Use correct per CPU ucode_cpu_info Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 111/142] x86/microcode/amd: Cache builtin microcode too Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 112/142] x86/microcode/amd: Cache builtin/initrd microcode early Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 113/142] x86/microcode/amd: Use cached microcode for AP load Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 114/142] x86/microcode: Mop up early loading leftovers Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 115/142] x86/microcode: Get rid of the schedule work indirection Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 116/142] x86/microcode: Clean up mc_cpu_down_prep() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 117/142] x86/microcode: Handle "nosmt" correctly Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 118/142] x86/microcode: Clarify the late load logic Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 119/142] x86/microcode: Sanitize __wait_for_cpus() Greg Kroah-Hartman
2025-03-05 17:48 ` [PATCH 6.6 120/142] x86/microcode: Add per CPU result state Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 121/142] x86/microcode: Add per CPU control field Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 122/142] x86/microcode: Provide new control functions Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 123/142] x86/microcode: Replace the all-in-one rendevous handler Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 124/142] x86/microcode: Rendezvous and load in NMI Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 125/142] x86/microcode: Protect against instrumentation Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 126/142] x86/apic: Provide apic_force_nmi_on_cpu() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 127/142] x86/microcode: Handle "offline" CPUs correctly Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 128/142] x86/microcode: Prepare for minimal revision check Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 129/142] x86/microcode: Rework early revisions reporting Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 130/142] x86/microcode/intel: Set new revision only after a successful update Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 131/142] x86/microcode/AMD: Use the family,model,stepping encoded in the patch ID Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 132/142] x86/microcode/AMD: Pay attention to the stepping dynamically Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 133/142] x86/microcode/AMD: Split load_microcode_amd() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 134/142] x86/microcode/intel: Remove unnecessary cache writeback and invalidation Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 135/142] x86/microcode/AMD: Flush patch buffer mapping after application Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 136/142] x86/microcode/AMD: Return bool from find_blobs_in_containers() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 137/142] x86/microcode/AMD: Make __verify_patch_size() return bool Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 138/142] x86/microcode/AMD: Have __apply_microcode_amd() " Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 139/142] x86/microcode/AMD: Merge early_apply_microcode() into its single callsite Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 140/142] x86/microcode/AMD: Get rid of the _load_microcode_amd() forward declaration Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 141/142] x86/microcode/AMD: Add get_patch_level() Greg Kroah-Hartman
2025-03-05 17:49 ` [PATCH 6.6 142/142] x86/microcode/AMD: Load only SHA256-checksummed patches Greg Kroah-Hartman
2025-03-05 21:56 ` [PATCH 6.6 000/142] 6.6.81-rc1 review Pavel Machek
2025-03-06 1:10 ` SeongJae Park
2025-03-06 2:03 ` Peter Schneider
2025-03-06 8:17 ` Ron Economos
2025-03-06 13:14 ` Mark Brown
2025-03-06 14:06 ` Naresh Kamboju
2025-03-06 16:03 ` Shuah Khan
2025-03-06 17:04 ` Hardik Garg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250305174502.629278166@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=anup@brainfault.org \
--cc=patches@lists.linux.dev \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
--cc=yongxuan.wang@sifive.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox