public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, Mukesh Ojha <quic_mojha@quicinc.com>,
	Johannes Berg <johannes@sipsolutions.net>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Danilo Krummrich <dakr@kernel.org>,
	linux-kernel@vger.kernel.org,
	Maarten Lankhorst <dev@lankhorst.se>,
	Matthew Brost <matthew.brost@intel.com>,
	Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.4 019/187] devcoredump: Fix circular locking dependency with devcd->mutex.
Date: Mon,  1 Dec 2025 12:22:07 +0100	[thread overview]
Message-ID: <20251201112241.948250276@linuxfoundation.org> (raw)
In-Reply-To: <20251201112241.242614045@linuxfoundation.org>

5.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Maarten Lankhorst <dev@lankhorst.se>

[ Upstream commit a91c8096590bd7801a26454789f2992094fe36da ]

The original code causes a circular locking dependency found by lockdep.

======================================================
WARNING: possible circular locking dependency detected
6.16.0-rc6-lgci-xe-xe-pw-151626v3+ #1 Tainted: G S   U
------------------------------------------------------
xe_fault_inject/5091 is trying to acquire lock:
ffff888156815688 ((work_completion)(&(&devcd->del_wk)->work)){+.+.}-{0:0}, at: __flush_work+0x25d/0x660

but task is already holding lock:

ffff888156815620 (&devcd->mutex){+.+.}-{3:3}, at: dev_coredump_put+0x3f/0xa0
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #2 (&devcd->mutex){+.+.}-{3:3}:
       mutex_lock_nested+0x4e/0xc0
       devcd_data_write+0x27/0x90
       sysfs_kf_bin_write+0x80/0xf0
       kernfs_fop_write_iter+0x169/0x220
       vfs_write+0x293/0x560
       ksys_write+0x72/0xf0
       __x64_sys_write+0x19/0x30
       x64_sys_call+0x2bf/0x2660
       do_syscall_64+0x93/0xb60
       entry_SYSCALL_64_after_hwframe+0x76/0x7e
-> #1 (kn->active#236){++++}-{0:0}:
       kernfs_drain+0x1e2/0x200
       __kernfs_remove+0xae/0x400
       kernfs_remove_by_name_ns+0x5d/0xc0
       remove_files+0x54/0x70
       sysfs_remove_group+0x3d/0xa0
       sysfs_remove_groups+0x2e/0x60
       device_remove_attrs+0xc7/0x100
       device_del+0x15d/0x3b0
       devcd_del+0x19/0x30
       process_one_work+0x22b/0x6f0
       worker_thread+0x1e8/0x3d0
       kthread+0x11c/0x250
       ret_from_fork+0x26c/0x2e0
       ret_from_fork_asm+0x1a/0x30
-> #0 ((work_completion)(&(&devcd->del_wk)->work)){+.+.}-{0:0}:
       __lock_acquire+0x1661/0x2860
       lock_acquire+0xc4/0x2f0
       __flush_work+0x27a/0x660
       flush_delayed_work+0x5d/0xa0
       dev_coredump_put+0x63/0xa0
       xe_driver_devcoredump_fini+0x12/0x20 [xe]
       devm_action_release+0x12/0x30
       release_nodes+0x3a/0x120
       devres_release_all+0x8a/0xd0
       device_unbind_cleanup+0x12/0x80
       device_release_driver_internal+0x23a/0x280
       device_driver_detach+0x14/0x20
       unbind_store+0xaf/0xc0
       drv_attr_store+0x21/0x50
       sysfs_kf_write+0x4a/0x80
       kernfs_fop_write_iter+0x169/0x220
       vfs_write+0x293/0x560
       ksys_write+0x72/0xf0
       __x64_sys_write+0x19/0x30
       x64_sys_call+0x2bf/0x2660
       do_syscall_64+0x93/0xb60
       entry_SYSCALL_64_after_hwframe+0x76/0x7e
other info that might help us debug this:
Chain exists of: (work_completion)(&(&devcd->del_wk)->work) --> kn->active#236 --> &devcd->mutex
 Possible unsafe locking scenario:
       CPU0                    CPU1
       ----                    ----
  lock(&devcd->mutex);
                               lock(kn->active#236);
                               lock(&devcd->mutex);
  lock((work_completion)(&(&devcd->del_wk)->work));
 *** DEADLOCK ***
5 locks held by xe_fault_inject/5091:
 #0: ffff8881129f9488 (sb_writers#5){.+.+}-{0:0}, at: ksys_write+0x72/0xf0
 #1: ffff88810c755078 (&of->mutex#2){+.+.}-{3:3}, at: kernfs_fop_write_iter+0x123/0x220
 #2: ffff8881054811a0 (&dev->mutex){....}-{3:3}, at: device_release_driver_internal+0x55/0x280
 #3: ffff888156815620 (&devcd->mutex){+.+.}-{3:3}, at: dev_coredump_put+0x3f/0xa0
 #4: ffffffff8359e020 (rcu_read_lock){....}-{1:2}, at: __flush_work+0x72/0x660
stack backtrace:
CPU: 14 UID: 0 PID: 5091 Comm: xe_fault_inject Tainted: G S   U              6.16.0-rc6-lgci-xe-xe-pw-151626v3+ #1 PREEMPT_{RT,(lazy)}
Tainted: [S]=CPU_OUT_OF_SPEC, [U]=USER
Hardware name: Micro-Star International Co., Ltd. MS-7D25/PRO Z690-A DDR4(MS-7D25), BIOS 1.10 12/13/2021
Call Trace:
 <TASK>
 dump_stack_lvl+0x91/0xf0
 dump_stack+0x10/0x20
 print_circular_bug+0x285/0x360
 check_noncircular+0x135/0x150
 ? register_lock_class+0x48/0x4a0
 __lock_acquire+0x1661/0x2860
 lock_acquire+0xc4/0x2f0
 ? __flush_work+0x25d/0x660
 ? mark_held_locks+0x46/0x90
 ? __flush_work+0x25d/0x660
 __flush_work+0x27a/0x660
 ? __flush_work+0x25d/0x660
 ? trace_hardirqs_on+0x1e/0xd0
 ? __pfx_wq_barrier_func+0x10/0x10
 flush_delayed_work+0x5d/0xa0
 dev_coredump_put+0x63/0xa0
 xe_driver_devcoredump_fini+0x12/0x20 [xe]
 devm_action_release+0x12/0x30
 release_nodes+0x3a/0x120
 devres_release_all+0x8a/0xd0
 device_unbind_cleanup+0x12/0x80
 device_release_driver_internal+0x23a/0x280
 ? bus_find_device+0xa8/0xe0
 device_driver_detach+0x14/0x20
 unbind_store+0xaf/0xc0
 drv_attr_store+0x21/0x50
 sysfs_kf_write+0x4a/0x80
 kernfs_fop_write_iter+0x169/0x220
 vfs_write+0x293/0x560
 ksys_write+0x72/0xf0
 __x64_sys_write+0x19/0x30
 x64_sys_call+0x2bf/0x2660
 do_syscall_64+0x93/0xb60
 ? __f_unlock_pos+0x15/0x20
 ? __x64_sys_getdents64+0x9b/0x130
 ? __pfx_filldir64+0x10/0x10
 ? do_syscall_64+0x1a2/0xb60
 ? clear_bhb_loop+0x30/0x80
 ? clear_bhb_loop+0x30/0x80
 entry_SYSCALL_64_after_hwframe+0x76/0x7e
RIP: 0033:0x76e292edd574
Code: c7 00 16 00 00 00 b8 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 80 3d d5 ea 0e 00 00 74 13 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 54 c3 0f 1f 00 55 48 89 e5 48 83 ec 20 48 89
RSP: 002b:00007fffe247a828 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 000076e292edd574
RDX: 000000000000000c RSI: 00006267f6306063 RDI: 000000000000000b
RBP: 000000000000000c R08: 000076e292fc4b20 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000202 R12: 00006267f6306063
R13: 000000000000000b R14: 00006267e6859c00 R15: 000076e29322a000
 </TASK>
xe 0000:03:00.0: [drm] Xe device coredump has been deleted.

Fixes: 01daccf74832 ("devcoredump : Serialize devcd_del work")
Cc: Mukesh Ojha <quic_mojha@quicinc.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Johannes Berg <johannes@sipsolutions.net>
Cc: Rafael J. Wysocki <rafael@kernel.org>
Cc: Danilo Krummrich <dakr@kernel.org>
Cc: linux-kernel@vger.kernel.org
Cc: stable@vger.kernel.org # v6.1+
Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
Cc: Matthew Brost <matthew.brost@intel.com>
Acked-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250723142416.1020423-1-dev@lankhorst.se
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[ replaced disable_delayed_work_sync() with cancel_delayed_work_sync() ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/base/devcoredump.c |  138 +++++++++++++++++++++++++++------------------
 1 file changed, 84 insertions(+), 54 deletions(-)

--- a/drivers/base/devcoredump.c
+++ b/drivers/base/devcoredump.c
@@ -30,50 +30,46 @@ struct devcd_entry {
 	void *data;
 	size_t datalen;
 	/*
-	 * Here, mutex is required to serialize the calls to del_wk work between
-	 * user/kernel space which happens when devcd is added with device_add()
-	 * and that sends uevent to user space. User space reads the uevents,
-	 * and calls to devcd_data_write() which try to modify the work which is
-	 * not even initialized/queued from devcoredump.
+	 * There are 2 races for which mutex is required.
 	 *
+	 * The first race is between device creation and userspace writing to
+	 * schedule immediately destruction.
 	 *
+	 * This race is handled by arming the timer before device creation, but
+	 * when device creation fails the timer still exists.
 	 *
-	 *        cpu0(X)                                 cpu1(Y)
+	 * To solve this, hold the mutex during device_add(), and set
+	 * init_completed on success before releasing the mutex.
 	 *
-	 *        dev_coredump() uevent sent to user space
-	 *        device_add()  ======================> user space process Y reads the
-	 *                                              uevents writes to devcd fd
-	 *                                              which results into writes to
+	 * That way the timer will never fire until device_add() is called,
+	 * it will do nothing if init_completed is not set. The timer is also
+	 * cancelled in that case.
 	 *
-	 *                                             devcd_data_write()
-	 *                                               mod_delayed_work()
-	 *                                                 try_to_grab_pending()
-	 *                                                   del_timer()
-	 *                                                     debug_assert_init()
-	 *       INIT_DELAYED_WORK()
-	 *       schedule_delayed_work()
-	 *
-	 *
-	 * Also, mutex alone would not be enough to avoid scheduling of
-	 * del_wk work after it get flush from a call to devcd_free()
-	 * mentioned as below.
-	 *
-	 *	disabled_store()
-	 *        devcd_free()
-	 *          mutex_lock()             devcd_data_write()
-	 *          flush_delayed_work()
-	 *          mutex_unlock()
-	 *                                   mutex_lock()
-	 *                                   mod_delayed_work()
-	 *                                   mutex_unlock()
-	 * So, delete_work flag is required.
+	 * The second race involves multiple parallel invocations of devcd_free(),
+	 * add a deleted flag so only 1 can call the destructor.
 	 */
 	struct mutex mutex;
-	bool delete_work;
+	bool init_completed, deleted;
 	struct module *owner;
 	ssize_t (*read)(char *buffer, loff_t offset, size_t count,
 			void *data, size_t datalen);
 	void (*free)(void *data);
+	/*
+	 * If nothing interferes and device_add() was returns success,
+	 * del_wk will destroy the device after the timer fires.
+	 *
+	 * Multiple userspace processes can interfere in the working of the timer:
+	 * - Writing to the coredump will reschedule the timer to run immediately,
+	 *   if still armed.
+	 *
+	 *   This is handled by using "if (cancel_delayed_work()) {
+	 *   schedule_delayed_work() }", to prevent re-arming after having
+	 *   been previously fired.
+	 * - Writing to /sys/class/devcoredump/disabled will destroy the
+	 *   coredump synchronously.
+	 *   This is handled by using disable_delayed_work_sync(), and then
+	 *   checking if deleted flag is set with &devcd->mutex held.
+	 */
 	struct delayed_work del_wk;
 	struct device *failing_dev;
 };
@@ -102,14 +98,27 @@ static void devcd_dev_release(struct dev
 	kfree(devcd);
 }
 
+static void __devcd_del(struct devcd_entry *devcd)
+{
+	devcd->deleted = true;
+	device_del(&devcd->devcd_dev);
+	put_device(&devcd->devcd_dev);
+}
+
 static void devcd_del(struct work_struct *wk)
 {
 	struct devcd_entry *devcd;
+	bool init_completed;
 
 	devcd = container_of(wk, struct devcd_entry, del_wk.work);
 
-	device_del(&devcd->devcd_dev);
-	put_device(&devcd->devcd_dev);
+	/* devcd->mutex serializes against dev_coredumpm_timeout */
+	mutex_lock(&devcd->mutex);
+	init_completed = devcd->init_completed;
+	mutex_unlock(&devcd->mutex);
+
+	if (init_completed)
+		__devcd_del(devcd);
 }
 
 static ssize_t devcd_data_read(struct file *filp, struct kobject *kobj,
@@ -129,12 +138,12 @@ static ssize_t devcd_data_write(struct f
 	struct device *dev = kobj_to_dev(kobj);
 	struct devcd_entry *devcd = dev_to_devcd(dev);
 
-	mutex_lock(&devcd->mutex);
-	if (!devcd->delete_work) {
-		devcd->delete_work = true;
-		mod_delayed_work(system_wq, &devcd->del_wk, 0);
-	}
-	mutex_unlock(&devcd->mutex);
+	/*
+	 * Although it's tempting to use mod_delayed work here,
+	 * that will cause a reschedule if the timer already fired.
+	 */
+	if (cancel_delayed_work(&devcd->del_wk))
+		schedule_delayed_work(&devcd->del_wk, 0);
 
 	return count;
 }
@@ -162,11 +171,21 @@ static int devcd_free(struct device *dev
 {
 	struct devcd_entry *devcd = dev_to_devcd(dev);
 
+	/*
+	 * To prevent a race with devcd_data_write(), cancel work and
+	 * complete manually instead.
+	 *
+	 * We cannot rely on the return value of
+	 * cancel_delayed_work_sync() here, because it might be in the
+	 * middle of a cancel_delayed_work + schedule_delayed_work pair.
+	 *
+	 * devcd->mutex here guards against multiple parallel invocations
+	 * of devcd_free().
+	 */
+	cancel_delayed_work_sync(&devcd->del_wk);
 	mutex_lock(&devcd->mutex);
-	if (!devcd->delete_work)
-		devcd->delete_work = true;
-
-	flush_delayed_work(&devcd->del_wk);
+	if (!devcd->deleted)
+		__devcd_del(devcd);
 	mutex_unlock(&devcd->mutex);
 	return 0;
 }
@@ -190,12 +209,10 @@ static ssize_t disabled_show(struct clas
  *                                                                 put_device() <- last reference
  *             error = fn(dev, data)                           devcd_dev_release()
  *             devcd_free(dev, data)                           kfree(devcd)
- *             mutex_lock(&devcd->mutex);
  *
  *
- * In the above diagram, It looks like disabled_store() would be racing with parallely
- * running devcd_del() and result in memory abort while acquiring devcd->mutex which
- * is called after kfree of devcd memory  after dropping its last reference with
+ * In the above diagram, it looks like disabled_store() would be racing with parallelly
+ * running devcd_del() and result in memory abort after dropping its last reference with
  * put_device(). However, this will not happens as fn(dev, data) runs
  * with its own reference to device via klist_node so it is not its last reference.
  * so, above situation would not occur.
@@ -357,7 +374,7 @@ void dev_coredumpm(struct device *dev, s
 	devcd->read = read;
 	devcd->free = free;
 	devcd->failing_dev = get_device(dev);
-	devcd->delete_work = false;
+	devcd->deleted = false;
 
 	mutex_init(&devcd->mutex);
 	device_initialize(&devcd->devcd_dev);
@@ -366,8 +383,14 @@ void dev_coredumpm(struct device *dev, s
 		     atomic_inc_return(&devcd_count));
 	devcd->devcd_dev.class = &devcd_class;
 
-	mutex_lock(&devcd->mutex);
 	dev_set_uevent_suppress(&devcd->devcd_dev, true);
+
+	/* devcd->mutex prevents devcd_del() completing until init finishes */
+	mutex_lock(&devcd->mutex);
+	devcd->init_completed = false;
+	INIT_DELAYED_WORK(&devcd->del_wk, devcd_del);
+	schedule_delayed_work(&devcd->del_wk, DEVCD_TIMEOUT);
+
 	if (device_add(&devcd->devcd_dev))
 		goto put_device;
 
@@ -381,13 +404,20 @@ void dev_coredumpm(struct device *dev, s
 
 	dev_set_uevent_suppress(&devcd->devcd_dev, false);
 	kobject_uevent(&devcd->devcd_dev.kobj, KOBJ_ADD);
-	INIT_DELAYED_WORK(&devcd->del_wk, devcd_del);
-	schedule_delayed_work(&devcd->del_wk, DEVCD_TIMEOUT);
+
+	/*
+	 * Safe to run devcd_del() now that we are done with devcd_dev.
+	 * Alternatively we could have taken a ref on devcd_dev before
+	 * dropping the lock.
+	 */
+	devcd->init_completed = true;
 	mutex_unlock(&devcd->mutex);
 	return;
  put_device:
-	put_device(&devcd->devcd_dev);
 	mutex_unlock(&devcd->mutex);
+	cancel_delayed_work_sync(&devcd->del_wk);
+	put_device(&devcd->devcd_dev);
+
  put_module:
 	module_put(owner);
  free:



  parent reply	other threads:[~2025-12-01 11:25 UTC|newest]

Thread overview: 197+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-01 11:21 [PATCH 5.4 000/187] 5.4.302-rc1 review Greg Kroah-Hartman
2025-12-01 11:21 ` [PATCH 5.4 001/187] net/sched: sch_qfq: Fix null-deref in agg_dequeue Greg Kroah-Hartman
2025-12-01 11:21 ` [PATCH 5.4 002/187] x86/bugs: Fix reporting of LFENCE retpoline Greg Kroah-Hartman
2025-12-01 11:21 ` [PATCH 5.4 003/187] btrfs: use smp_mb__after_atomic() when forcing COW in create_pending_snapshot() Greg Kroah-Hartman
2025-12-01 11:21 ` [PATCH 5.4 004/187] net: usb: asix_devices: Check return value of usbnet_get_endpoints Greg Kroah-Hartman
2025-12-01 11:21 ` [PATCH 5.4 005/187] fbdev: atyfb: Check if pll_ops->init_pll failed Greg Kroah-Hartman
2025-12-01 11:21 ` [PATCH 5.4 006/187] ACPI: video: Fix use-after-free in acpi_video_switch_brightness() Greg Kroah-Hartman
2025-12-01 11:21 ` [PATCH 5.4 007/187] fbdev: bitblit: bound-check glyph index in bit_putcs* Greg Kroah-Hartman
2025-12-01 11:21 ` [PATCH 5.4 008/187] fbdev: pvr2fb: Fix leftover reference to ONCHIP_NR_DMA_CHANNELS Greg Kroah-Hartman
2025-12-01 11:21 ` [PATCH 5.4 009/187] fbdev: valkyriefb: Fix reference count leak in valkyriefb_init Greg Kroah-Hartman
2025-12-01 11:21 ` [PATCH 5.4 010/187] ASoC: qdsp6: q6asm: do not sleep while atomic Greg Kroah-Hartman
2025-12-01 11:21 ` [PATCH 5.4 011/187] wifi: ath10k: Fix memory leak on unsupported WMI command Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 012/187] usbnet: Prevents free active kevent Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 013/187] drm/etnaviv: fix flush sequence logic Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 014/187] regmap: slimbus: fix bus_context pointer in regmap init calls Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 015/187] net: phy: dp83867: Disable EEE support as not implemented Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 016/187] wifi: brcmfmac: fix crash while sending Action Frames in standalone AP Mode Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 017/187] x86/resctrl: Fix miscount of bandwidth event when reactivating previously unavailable RMID Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 018/187] net: ravb: Enforce descriptor type ordering Greg Kroah-Hartman
2025-12-01 11:22 ` Greg Kroah-Hartman [this message]
2025-12-01 11:22 ` [PATCH 5.4 020/187] can: gs_usb: increase max interface to U8_MAX Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 021/187] serial: 8250_dw: Use devm_clk_get_optional() to get the input clock Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 022/187] serial: 8250_dw: Use devm_add_action_or_reset() Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 023/187] serial: 8250_dw: handle reset control deassert error Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 024/187] usb: gadget: f_fs: Fix epfile null pointer access after ep enable Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 025/187] soc: qcom: smem: Fix endian-unaware access of num_entries Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 026/187] spi: loopback-test: Dont use %pK through printk Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 027/187] bpf: " Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 028/187] mmc: host: renesas_sdhi: Fix the actual clock Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 029/187] memstick: Add timeout to prevent indefinite waiting Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 030/187] ACPI: video: force native for Lenovo 82K8 Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 031/187] selftests/bpf: Fix bpf_prog_detach2 usage in test_lirc_mode2 Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 032/187] cpufreq/longhaul: handle NULL policy in longhaul_exit Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 033/187] arc: Fix __fls() const-foldability via __builtin_clzl() Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 034/187] irqchip/gic-v2m: Handle Multiple MSI base IRQ Alignment Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 035/187] mmc: sdhci-msm: Enable tuning for SDR50 mode for SD card Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 036/187] ACPICA: dispatcher: Use acpi_ds_clear_operands() in acpi_ds_call_control_method() Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 037/187] tee: allow a driver to allocate a tee_device without a pool Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 038/187] video: backlight: lp855x_bl: Set correct EPROM start for LP8556 Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 039/187] clocksource/drivers/vf-pit: Replace raw_readl/writel to readl/writel Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 040/187] uprobe: Do not emulate/sstep original instruction when ip is changed Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 041/187] hwmon: (dell-smm) Add support for Dell OptiPlex 7040 Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 042/187] tools/cpupower: Fix incorrect size in cpuidle_state_disable() Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 043/187] tools/power x86_energy_perf_policy: Enhance HWP enable Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 044/187] tools/power x86_energy_perf_policy: Prefer driver HWP limits Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 045/187] mfd: stmpe: Remove IRQ domain upon removal Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 046/187] mfd: stmpe-i2c: Add missing MODULE_LICENSE Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 047/187] mfd: madera: Work around false-positive -Wininitialized warning Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 048/187] drm/nouveau: replace snprintf() with scnprintf() in nvkm_snprintbf() Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 049/187] PCI: Disable MSI on RDC PCI to PCIe bridges Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 050/187] selftests/net: Replace non-standard __WORDSIZE with sizeof(long) * 8 Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 051/187] selftests/net: Ensure assert() triggers in psock_tpacket.c Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 052/187] drm/amdkfd: return -ENOTTY for unsupported IOCTLs Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 053/187] media: pci: ivtv: Dont create fake v4l2_fh Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 054/187] x86/vsyscall: Do not require X86_PF_INSTR to emulate vsyscall Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 055/187] powerpc/eeh: Use result of error_detected() in uevent Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 056/187] bridge: Redirect to backup port when port is administratively down Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 057/187] net: ipv6: fix field-spanning memcpy warning in AH output Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 058/187] media: imon: make send_packet() more robust Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 059/187] iio: adc: spear_adc: mask SPEAR_ADC_STATUS channel and avg sample before setting register Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 060/187] usb: gadget: f_ncm: Fix MAC assignment NCM ethernet Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 061/187] char: misc: Does not request module for miscdevice with dynamic minor Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 062/187] net: When removing nexthops, dont call synchronize_net if it is not necessary Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 063/187] net: Call trace_sock_exceed_buf_limit() for memcg failure with SK_MEM_RECV Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 064/187] PCI/P2PDMA: Fix incorrect pointer usage in devm_kfree() call Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 065/187] rds: Fix endianness annotation for RDS_MPATH_HASH Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 066/187] extcon: adc-jack: Fix wakeup source leaks on device unbind Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 067/187] drm/amdkfd: Tie UNMAP_LATENCY to queue_preemption Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 068/187] media: fix uninitialized symbol warnings Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 069/187] mips: lantiq: danube: add missing properties to cpu node Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 070/187] mips: lantiq: danube: add missing device_type in pci node Greg Kroah-Hartman
2025-12-01 11:22 ` [PATCH 5.4 071/187] mips: lantiq: xway: sysctrl: rename stp clock Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 072/187] scsi: pm8001: Use int instead of u32 to store error codes Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 073/187] dmaengine: sh: setup_xref error handling Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 074/187] dmaengine: mv_xor: match alloc_wc and free_wc Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 075/187] dmaengine: dw-edma: Set status for callback_result Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 076/187] net: nfc: nci: Increase NCI_DATA_TIMEOUT to 3000 ms Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 077/187] ALSA: usb-audio: apply quirk for MOONDROP Quark2 Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 078/187] net: call cond_resched() less often in __release_sock() Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 079/187] usb: gadget: f_hid: Fix zero length packet transfer Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 080/187] phy: cadence: cdns-dphy: Enable lower resolutions in dphy Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 081/187] net: sh_eth: Disable WoL if system can not suspend Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 082/187] media: redrat3: use int type to store negative error codes Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 083/187] selftests: Disable dad for ipv6 in fcnal-test.sh Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 084/187] selftests: Replace sleep with slowwait Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 085/187] net/cls_cgroup: Fix task_get_classid() during qdisc run Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 086/187] selftests/Makefile: include $(INSTALL_DEP_TARGETS) in clean target to clean net/lib dependency Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 087/187] scsi: lpfc: Check return status of lpfc_reset_flush_io_context during TGT_RESET Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 088/187] scsi: lpfc: Define size of debugfs entry for xri rebalancing Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 089/187] allow finish_no_open(file, ERR_PTR(-E...)) Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 090/187] usb: mon: Increase BUFF_MAX to 64 MiB to support multi-MB URBs Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 091/187] usb: xhci: plat: Facilitate using autosuspend for xhci plat devices Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 092/187] ipv6: np->rxpmtu race annotation Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 093/187] jfs: Verify inode mode when loading from disk Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 094/187] jfs: fix uninitialized waitqueue in transaction manager Greg Kroah-Hartman
2025-12-01 11:29   ` syzbot
2025-12-01 11:23 ` [PATCH 5.4 095/187] net: intel: fm10k: Fix parameter idx set but not used Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 096/187] sparc/module: Add R_SPARC_UA64 relocation handling Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 097/187] remoteproc: qcom: q6v5: Avoid handling handover twice Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 098/187] NFSv4: handle ERR_GRACE on delegation recalls Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 099/187] NFSv4.1: fix mount hang after CREATE_SESSION failure Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 100/187] nfs4_setup_readdir(): insufficient locking for ->d_parent->d_inode dereferencing Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 101/187] net: macb: avoid dealing with endianness in macb_set_hwaddr() Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 102/187] Bluetooth: SCO: Fix UAF on sco_conn_free Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 103/187] Bluetooth: bcsp: receive data only if registered Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 104/187] page_pool: Clamp pool size to max 16K pages Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 105/187] orangefs: fix xattr related buffer overflow Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 106/187] ACPICA: Update dsmethod.c to get rid of unused variable warning Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 107/187] fs/hpfs: Fix error code for new_inode() failure in mkdir/create/mknod/symlink Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 108/187] 9p: fix /sys/fs/9p/caches overwriting itself Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 109/187] 9p: sysfs_init: dont hardcode error to ENOMEM Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 110/187] ACPI: property: Return present device nodes only on fwnode interface Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 111/187] tools bitmap: Add missing asm-generic/bitsperlong.h include Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 112/187] fbdev: Add bounds checking in bit_putcs to fix vmalloc-out-of-bounds Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 113/187] ceph: add checking of wait_for_completion_killable() return value Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 114/187] net: vlan: sync VLAN features with lower device Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 115/187] net: dsa/b53: change b53_force_port_config() pause argument Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 116/187] net: dsa: b53: prevent GMII_PORT_OVERRIDE_CTRL access on BCM5325 Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 117/187] net: dsa: b53: fix resetting speed and pause on forced link Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 118/187] net: dsa: b53: fix enabling ip multicast Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 119/187] net: dsa: b53: stop reading ARL entries if search is done Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 120/187] sctp: Hold RCU read lock while iterating over address list Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 121/187] sctp: Prevent TOCTOU out-of-bounds write Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 122/187] net: usb: qmi_wwan: initialize MAC header offset in qmimux_rx_fixup Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 123/187] tracing: Fix memory leaks in create_field_var() Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 124/187] extcon: adc-jack: Cleanup wakeup source only if it was enabled Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 125/187] compiler_types: Move unused static inline functions warning to W=2 Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 126/187] NFS4: Fix state renewals missing after boot Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 127/187] HID: quirks: avoid Cooler Master MM712 dongle wakeup bug Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 128/187] ASoC: max98090/91: fixed max98091 ALSA widget powering up/down Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 129/187] net: fec: correct rx_bytes statistic for the case SHIFT16 is set Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 130/187] Bluetooth: btusb: reorder cleanup in btusb_disconnect to avoid UAF Greg Kroah-Hartman
2025-12-01 11:23 ` [PATCH 5.4 131/187] Bluetooth: 6lowpan: reset link-local header on ipv6 recv path Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 132/187] Bluetooth: 6lowpan: fix BDADDR_LE vs ADDR_LE_DEV address type confusion Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 133/187] Bluetooth: 6lowpan: Dont hold spin lock over sleeping functions Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 134/187] sctp: get netns from asoc and ep base Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 135/187] sctp: prevent possible shift-out-of-bounds in sctp_transport_update_rto Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 136/187] tipc: simplify the finalize work queue Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 137/187] tipc: Fix use-after-free in tipc_mon_reinit_self() Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 138/187] net: mdio: fix resource leak in mdiobus_register_device() Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 139/187] wifi: mac80211: skip rate verification for not captured PSDUs Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 140/187] net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 141/187] net/mlx5e: Fix maxrate wraparound in threshold between units Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 142/187] net/mlx5e: Fix wraparound in rate limiting for values above 255 Gbps Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 143/187] net_sched: remove need_resched() from qdisc_run() Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 144/187] net_sched: limit try_bulk_dequeue_skb() batches Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 145/187] Bluetooth: L2CAP: export l2cap_chan_hold for modules Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 146/187] regulator: fixed: use dev_err_probe for register Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 147/187] regulator: fixed: fix GPIO descriptor leak on register failure Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 148/187] ASoC: cs4271: Fix regulator leak on probe failure Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 149/187] drm/vmwgfx: Validate command header size against SVGA_CMD_MAX_DATASIZE Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 150/187] ALSA: usb-audio: Fix NULL pointer dereference in snd_usb_mixer_controls_badd Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 151/187] mm/ksm: fix flag-dropping behavior in ksm_madvise Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 152/187] gcov: add support for GCC 15 Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 153/187] strparser: Fix signed/unsigned mismatch bug Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 154/187] ipv4: route: Prevent rt_bind_exception() from rebinding stale fnhe Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 155/187] spi: Try to get ACPI GPIO IRQ earlier Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 156/187] EDAC/altera: Handle OCRAM ECC enable after warm reset Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 157/187] EDAC/altera: Use INTTEST register for Ethernet and USB SBE injection Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 158/187] isdn: mISDN: hfcsusb: fix memory leak in hfcsusb_probe() Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 159/187] HID: quirks: work around VID/PID conflict for 0x4c4a/0x4155 Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 160/187] be2net: pass wrb_params in case of OS2BMC Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 161/187] Input: cros_ec_keyb - fix an invalid memory access Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 162/187] scsi: sg: Do not sleep in atomic context Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 163/187] scsi: target: tcm_loop: Fix segfault in tcm_loop_tpg_address_show() Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 164/187] MIPS: Malta: Fix !EVA SOC-it PCI MMIO Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 165/187] mlxsw: spectrum: Fix memory leak in mlxsw_sp_flower_stats() Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 166/187] net: openvswitch: remove never-working support for setting nsh fields Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 167/187] s390/ctcm: Fix double-kfree Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 168/187] vsock: Ignore signal/timeout on connect() if already established Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 169/187] kconfig/mconf: Initialize the default locale at startup Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 170/187] kconfig/nconf: " Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 171/187] mm/page_alloc: fix hash table order logging in alloc_large_system_hash() Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 172/187] ALSA: usb-audio: fix uac2 clock source at terminal parser Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 173/187] net: ethernet: ti: netcp: Standardize knav_dma_open_channel to return NULL on error Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 174/187] uio_hv_generic: Set event for all channels on the device Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 175/187] net: qede: Initialize qede_ll_ops with designated initializer Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 176/187] net: netpoll: fix incorrect refcount handling causing incorrect cleanup Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 177/187] pmdomain: arm: scmi: Fix genpd leak on provider registration failure Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 178/187] pmdomain: imx: Fix reference count leak in imx_gpc_remove Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 179/187] fs/proc: fix uaf in proc_readdir_de() Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 180/187] ata: libata-scsi: Fix system suspend for a security locked drive Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 181/187] usb: deprecate the third argument of usb_maxpacket() Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 182/187] Input: remove " Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 183/187] Input: pegasus-notetaker - fix potential out-of-bounds access Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 184/187] mm/mempool: replace kmap_atomic() with kmap_local_page() Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 185/187] mm/mempool: fix poisoning order>0 pages with HIGHMEM Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 186/187] mm/mprotect: use long for page accountings and retval Greg Kroah-Hartman
2025-12-01 11:24 ` [PATCH 5.4 187/187] mm/mprotect: delete pmd_none_or_clear_bad_unless_trans_huge() Greg Kroah-Hartman
2025-12-01 18:59 ` [PATCH 5.4 000/187] 5.4.302-rc1 review Brett A C Sheffield
2025-12-01 19:22 ` Florian Fainelli
2025-12-01 22:06 ` Slade Watkins
2025-12-01 23:57 ` Shuah Khan
2025-12-02  3:57 ` [External] : " ALOK TIWARI
2025-12-02  9:29   ` Greg Kroah-Hartman
2025-12-02  6:24 ` Jon Hunter
2025-12-02  9:21   ` Greg Kroah-Hartman

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=20251201112241.948250276@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=dakr@kernel.org \
    --cc=dev@lankhorst.se \
    --cc=johannes@sipsolutions.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matthew.brost@intel.com \
    --cc=mukesh.ojha@oss.qualcomm.com \
    --cc=patches@lists.linux.dev \
    --cc=quic_mojha@quicinc.com \
    --cc=rafael@kernel.org \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    /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