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>
Subject: [PATCH 6.17 089/184] devcoredump: Fix circular locking dependency with devcd->mutex.
Date: Mon, 27 Oct 2025 19:36:11 +0100 [thread overview]
Message-ID: <20251027183517.293342016@linuxfoundation.org> (raw)
In-Reply-To: <20251027183514.934710872@linuxfoundation.org>
6.17-stable review patch. If anyone has any objections, please let me know.
------------------
From: Maarten Lankhorst <dev@lankhorst.se>
commit a91c8096590bd7801a26454789f2992094fe36da upstream.
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/base/devcoredump.c | 136 +++++++++++++++++++++++++++------------------
1 file changed, 83 insertions(+), 53 deletions(-)
--- a/drivers/base/devcoredump.c
+++ b/drivers/base/devcoredump.c
@@ -23,50 +23,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()
- * timer_delete()
- * 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;
};
@@ -95,14 +91,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,
@@ -122,12 +131,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;
}
@@ -151,11 +160,21 @@ static int devcd_free(struct device *dev
{
struct devcd_entry *devcd = dev_to_devcd(dev);
+ /*
+ * To prevent a race with devcd_data_write(), disable work and
+ * complete manually instead.
+ *
+ * We cannot rely on the return value of
+ * disable_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().
+ */
+ disable_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;
}
@@ -179,12 +198,10 @@ static ssize_t disabled_show(const struc
* 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 parallelly
- * 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
+ * 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.
@@ -374,7 +391,7 @@ void dev_coredumpm_timeout(struct device
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);
@@ -383,8 +400,14 @@ void dev_coredumpm_timeout(struct device
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, timeout);
+
if (device_add(&devcd->devcd_dev))
goto put_device;
@@ -401,13 +424,20 @@ void dev_coredumpm_timeout(struct device
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, 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:
next prev parent reply other threads:[~2025-10-27 19:28 UTC|newest]
Thread overview: 198+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-27 18:34 [PATCH 6.17 000/184] 6.17.6-rc1 review Greg Kroah-Hartman
2025-10-27 18:34 ` [PATCH 6.17 001/184] sched/fair: Block delayed tasks on throttled hierarchy during dequeue Greg Kroah-Hartman
2025-10-27 18:34 ` [PATCH 6.17 002/184] vfio/cdx: update driver to build without CONFIG_GENERIC_MSI_IRQ Greg Kroah-Hartman
2025-10-27 18:34 ` [PATCH 6.17 003/184] expfs: Fix exportfs_can_encode_fh() for EXPORT_FH_FID Greg Kroah-Hartman
2025-10-27 18:34 ` [PATCH 6.17 004/184] cgroup/misc: fix misc_res_type kernel-doc warning Greg Kroah-Hartman
2025-10-27 18:34 ` [PATCH 6.17 005/184] dlm: move to rinfo for all middle conversion cases Greg Kroah-Hartman
2025-10-27 18:34 ` [PATCH 6.17 006/184] exec: Fix incorrect type for ret Greg Kroah-Hartman
2025-10-27 18:34 ` [PATCH 6.17 007/184] nios2: ensure that memblock.current_limit is set when setting pfn limits Greg Kroah-Hartman
2025-10-27 18:34 ` [PATCH 6.17 008/184] s390/pkey: Forward keygenflags to ep11_unwrapkey Greg Kroah-Hartman
2025-10-27 18:34 ` [PATCH 6.17 009/184] hfs: clear offset and space out of valid records in b-tree node Greg Kroah-Hartman
2025-10-27 18:34 ` [PATCH 6.17 010/184] hfs: make proper initalization of struct hfs_find_data Greg Kroah-Hartman
2025-10-27 18:34 ` [PATCH 6.17 011/184] hfsplus: fix KMSAN uninit-value issue in __hfsplus_ext_cache_extent() Greg Kroah-Hartman
2025-10-27 18:34 ` [PATCH 6.17 012/184] hfs: validate record offset in hfsplus_bmap_alloc Greg Kroah-Hartman
2025-10-27 18:34 ` [PATCH 6.17 013/184] hfsplus: fix KMSAN uninit-value issue in hfsplus_delete_cat() Greg Kroah-Hartman
2025-10-27 18:34 ` [PATCH 6.17 014/184] dlm: check for defined force value in dlm_lockspace_release Greg Kroah-Hartman
2025-10-27 18:34 ` [PATCH 6.17 015/184] hfs: fix KMSAN uninit-value issue in hfs_find_set_zero_bits() Greg Kroah-Hartman
2025-10-27 18:34 ` [PATCH 6.17 016/184] hfsplus: return EIO when type of hidden directory mismatch in hfsplus_fill_super() Greg Kroah-Hartman
2025-10-27 18:34 ` [PATCH 6.17 017/184] PCI: Test for bit underflow in pcie_set_readrq() Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 018/184] lkdtm: fortify: Fix potential NULL dereference on kmalloc failure Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 019/184] arm64: sysreg: Correct sign definitions for EIESB and DoubleLock Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 020/184] gfs2: Fix unlikely race in gdlm_put_lock Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 021/184] m68k: bitops: Fix find_*_bit() signatures Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 022/184] powerpc/32: Remove PAGE_KERNEL_TEXT to fix startup failure Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 023/184] riscv: mm: Return intended SATP mode for noXlvl options Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 024/184] riscv: mm: Use mmu-type from FDT to limit SATP mode Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 025/184] riscv: cpufeature: add validation for zfa, zfh and zfhmin Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 026/184] drivers/perf: hisi: Relax the event ID check in the framework Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 027/184] s390/mm: Use __GFP_ACCOUNT for user page table allocations Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 028/184] smb: client: queue post_recv_credits_work also if the peer raises the credit target Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 029/184] smb: client: limit the range of info->receive_credit_target Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 030/184] smb: client: make use of ib_wc_status_msg() and skip IB_WC_WR_FLUSH_ERR logging Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 031/184] smb: server: let smb_direct_flush_send_list() invalidate a remote key first Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 032/184] Unbreak make tools/* for user-space targets Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 033/184] platform/mellanox: mlxbf-pmc: add sysfs_attr_init() to count_clock init Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 034/184] cpufreq/amd-pstate: Fix a regression leading to EPP 0 after hibernate Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 035/184] net/mlx5e: Return 1 instead of 0 in invalid case in mlx5e_mpwrq_umr_entry_size() Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 036/184] rtnetlink: Allow deleting FDB entries in user namespace Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 037/184] erofs: fix crafted invalid cases for encoded extents Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 038/184] net: enetc: fix the deadlock of enetc_mdio_lock Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 039/184] net: enetc: correct the value of ENETC_RXB_TRUESIZE Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 040/184] dpaa2-eth: fix the pointer passed to PTR_ALIGN on Tx path Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 041/184] net: phy: realtek: fix rtl8221b-vm-cg name Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 042/184] can: bxcan: bxcan_start_xmit(): use can_dev_dropped_skb() instead of can_dropped_invalid_skb() Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 043/184] can: esd: acc_start_xmit(): " Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 044/184] can: rockchip-canfd: rkcanfd_start_xmit(): " Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 045/184] selftests: net: fix server bind failure in sctp_vrf.sh Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 046/184] net/mlx5e: RX, Fix generating skb from non-linear xdp_buff for legacy RQ Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 047/184] net/mlx5e: RX, Fix generating skb from non-linear xdp_buff for striding RQ Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 048/184] net/smc: fix general protection fault in __smc_diag_dump Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 049/184] net: ethernet: ti: am65-cpts: fix timestamp loss due to race conditions Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 050/184] arm64, mm: avoid always making PTE dirty in pte_mkwrite() Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 051/184] erofs: avoid infinite loops due to corrupted subpage compact indexes Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 052/184] net: hibmcge: select FIXED_PHY Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 053/184] ptp: ocp: Fix typo using index 1 instead of i in SMA initialization loop Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 054/184] sctp: avoid NULL dereference when chunk data buffer is missing Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 055/184] net: hsr: prevent creation of HSR device with slaves from another netns Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 056/184] espintcp: use datagram_poll_queue for socket readiness Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 057/184] net: datagram: introduce datagram_poll_queue for custom receive queues Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 058/184] ovpn: use datagram_poll_queue for socket readiness in TCP Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 059/184] net: phy: micrel: always set shared->phydev for LAN8814 Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 060/184] net/mlx5: Fix IPsec cleanup over MPV device Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 061/184] fs/notify: call exportfs_encode_fid with s_umount Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 062/184] net: bonding: fix possible peer notify event loss or dup issue Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 063/184] hung_task: fix warnings caused by unaligned lock pointers Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 064/184] mm: dont spin in add_stack_record when gfp flags dont allow Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 065/184] dma-debug: dont report false positives with DMA_BOUNCE_UNALIGNED_KMALLOC Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 066/184] virtio-net: zero unused hash fields Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 067/184] arch_topology: Fix incorrect error check in topology_parse_cpu_capacity() Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 068/184] riscv: hwprobe: Fix stale vDSO data for late-initialized keys at boot Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 069/184] io_uring/sqpoll: switch away from getrusage() for CPU accounting Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 070/184] io_uring/sqpoll: be smarter on when to update the stime usage Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 071/184] btrfs: directly free partially initialized fs_info in btrfs_check_leaked_roots() Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 072/184] btrfs: send: fix duplicated rmdir operations when using extrefs Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 073/184] btrfs: ref-verify: fix IS_ERR() vs NULL check in btrfs_build_ref_tree() Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 074/184] gpio: pci-idio-16: Define maximum valid register address offset Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 075/184] gpio: 104-idio-16: " Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 076/184] xfs: fix locking in xchk_nlinks_collect_dir Greg Kroah-Hartman
2025-10-27 18:35 ` [PATCH 6.17 077/184] platform/x86: alienware-wmi-wmax: Add AWCC support to Dell G15 5530 Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 078/184] platform/x86: alienware-wmi-wmax: Fix NULL pointer dereference in sleep handlers Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 079/184] Revert "cpuidle: menu: Avoid discarding useful information" Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 080/184] riscv: cpufeature: avoid uninitialized variable in has_thead_homogeneous_vlenb() Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 081/184] rust: device: fix device context of Device::parent() Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 082/184] slab: Avoid race on slab->obj_exts in alloc_slab_obj_exts Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 083/184] slab: Fix obj_ext mistakenly considered NULL due to race condition Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 084/184] smb: client: get rid of d_drop() in cifs_do_rename() Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 085/184] ACPICA: Work around bogus -Wstringop-overread warning since GCC 11 Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 086/184] arm64: mte: Do not warn if the page is already tagged in copy_highpage() Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 087/184] can: netlink: can_changelink(): allow disabling of automatic restart Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 088/184] cifs: Fix TCP_Server_Info::credits to be signed Greg Kroah-Hartman
2025-10-27 18:36 ` Greg Kroah-Hartman [this message]
2025-10-27 18:36 ` [PATCH 6.17 090/184] hwmon: (pmbus/max34440) Update adpm12160 coeff due to latest FW Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 091/184] MIPS: Malta: Fix keyboard resource preventing i8042 driver from registering Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 092/184] ocfs2: clear extent cache after moving/defragmenting extents Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 093/184] rv: Fully convert enabled_monitors to use list_head as iterator Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 094/184] rv: Make rtapp/pagefault monitor depends on CONFIG_MMU Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 095/184] vsock: fix lock inversion in vsock_assign_transport() Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 096/184] net: bonding: update the slave array for broadcast mode Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 097/184] net: stmmac: dwmac-rk: Fix disabling set_clock_selection Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 098/184] net: usb: rtl8150: Fix frame padding Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 099/184] net: ravb: Enforce descriptor type ordering Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 100/184] net: ravb: Ensure memory write completes before ringing TX doorbell Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 101/184] mptcp: pm: in-kernel: C-flag: handle late ADD_ADDR Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 102/184] selftests: mptcp: join: mark flush re-add as skipped if not supported Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 103/184] selftests: mptcp: join: mark implicit tests " Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 104/184] selftests: mptcp: join: mark delete re-add signal " Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 105/184] mm: prevent poison consumption when splitting THP Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 106/184] mm/mremap: correctly account old mapping after MREMAP_DONTUNMAP remap Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 107/184] drm/xe: Check return value of GGTT workqueue allocation Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 108/184] drm/amd/display: increase max link count and fix link->enc NULL pointer access Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 109/184] mm/damon/core: use damos_commit_quota_goal() for new goal commit Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 110/184] mm/damon/core: fix list_add_tail() call on damon_call() Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 111/184] mm/damon/core: fix potential memory leak by cleaning ops_filter in damon_destroy_scheme Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 112/184] mm/damon/sysfs: catch commit test ctx alloc failure Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 113/184] mm/damon/sysfs: dealloc commit test ctx always Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 114/184] spi: rockchip-sfc: Fix DMA-API usage Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 115/184] firmware: arm_ffa: Add support for IMPDEF value in the memory access descriptor Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 116/184] spi: spi-nxp-fspi: add the support for sample data from DQS pad Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 117/184] spi: spi-nxp-fspi: re-config the clock rate when operation require new clock rate Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 118/184] spi: spi-nxp-fspi: add extra delay after dll locked Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 119/184] spi: spi-nxp-fspi: limit the clock rate for different sample clock source selection Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 120/184] spi: cadence-quadspi: Fix pm_runtime unbalance on dma EPROBE_DEFER Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 121/184] arm64: dts: broadcom: bcm2712: Add default GIC address cells Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 122/184] arm64: dts: broadcom: bcm2712: Define VGIC interrupt Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 123/184] firmware: arm_scmi: Account for failed debug initialization Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 124/184] include: trace: Fix inflight count helper on failed initialization Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 125/184] firmware: arm_scmi: Fix premature SCMI_XFER_FLAG_IS_RAW clearing in raw mode Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 126/184] spi: airoha: return an error for continuous mode dirmap creation cases Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 127/184] spi: airoha: add support of dual/quad wires spi modes to exec_op() handler Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 128/184] spi: airoha: switch back to non-dma mode in the case of error Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 129/184] spi: airoha: fix reading/writing of flashes with more than one plane per lun Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 130/184] sysfs: check visibility before changing group attribute ownership Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 131/184] drm/panthor: Fix kernel panic on partial unmap of a GPU VA region Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 132/184] RISC-V: Define pgprot_dmacoherent() for non-coherent devices Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 133/184] RISC-V: Dont print details of CPUs disabled in DT Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 134/184] riscv: hwprobe: avoid uninitialized variable use in hwprobe_arch_id() Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 135/184] hwmon: (pmbus/isl68137) Fix child node reference leak on early return Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 136/184] hwmon: (cgbc-hwmon) Add missing NULL check after devm_kzalloc() Greg Kroah-Hartman
2025-10-27 18:36 ` [PATCH 6.17 137/184] hwmon: (sht3x) Fix error handling Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 138/184] io_uring: fix incorrect unlikely() usage in io_waitid_prep() Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 139/184] nbd: override creds to kernel when calling sock_{send,recv}msg() Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 140/184] drm/panic: Fix drawing the logo on a small narrow screen Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 141/184] drm/panic: Fix qr_code, ensure vmargin is positive Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 142/184] drm/panic: Fix 24bit pixel crossing page boundaries Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 143/184] of/irq: Convert of_msi_map_id() callers to of_msi_xlate() Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 144/184] of/irq: Add msi-parent check " Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 145/184] block: require LBA dma_alignment when using PI Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 146/184] gpio: ljca: Fix duplicated IRQ mapping Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 147/184] io_uring: correct __must_hold annotation in io_install_fixed_file Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 148/184] sched: Remove never used code in mm_cid_get() Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 149/184] USB: serial: option: add UNISOC UIS7720 Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 150/184] USB: serial: option: add Quectel RG255C Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 151/184] USB: serial: option: add Telit FN920C04 ECM compositions Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 152/184] usb/core/quirks: Add Huawei ME906S to wakeup quirk Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 153/184] usb: raw-gadget: do not limit transfer length Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 154/184] xhci: dbc: enable back DbC in resume if it was enabled before suspend Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 155/184] xhci: dbc: fix bogus 1024 byte prefix if ttyDBC read races with stall event Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 156/184] x86/microcode: Fix Entrysign revision check for Zen1/Naples Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 157/184] binder: remove "invalid inc weak" check Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 158/184] comedi: fix divide-by-zero in comedi_buf_munge() Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 159/184] mei: me: add wildcat lake P DID Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 160/184] objtool/rust: add one more `noreturn` Rust function Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 161/184] nvmem: rcar-efuse: add missing MODULE_DEVICE_TABLE Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 162/184] misc: fastrpc: Fix dma_buf object leak in fastrpc_map_lookup Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 163/184] most: usb: Fix use-after-free in hdm_disconnect Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 164/184] most: usb: hdm_probe: Fix calling put_device() before device initialization Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 165/184] tcpm: switch check for role_sw device with fw_node Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 166/184] tty: serial: sh-sci: fix RSCI FIFO overrun handling Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 167/184] dt-bindings: serial: sh-sci: Fix r8a78000 interrupts Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 168/184] dt-bindings: usb: dwc3-imx8mp: dma-range is required only for imx8mp Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 169/184] dt-bindings: usb: qcom,snps-dwc3: Fix bindings for X1E80100 Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 170/184] serial: 8250_dw: handle reset control deassert error Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 171/184] serial: 8250_exar: add support for Advantech 2 port card with Device ID 0x0018 Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 172/184] serial: 8250_mtk: Enable baud clock and manage in runtime PM Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 173/184] serial: sc16is7xx: remove useless enable of enhanced features Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 174/184] staging: gpib: Fix device reference leak in fmh_gpib driver Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 175/184] staging: gpib: Fix no EOI on 1 and 2 byte writes Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 176/184] staging: gpib: Return -EINTR on device clear Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 177/184] staging: gpib: Fix sending clear and trigger events Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 178/184] mm/migrate: remove MIGRATEPAGE_UNMAP Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 179/184] treewide: remove MIGRATEPAGE_SUCCESS Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 180/184] vmw_balloon: indicate success when effectively deflating during migration Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 181/184] xfs: always warn about deprecated mount options Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 182/184] gpio: regmap: Allow to allocate regmap-irq device Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 183/184] gpio: regmap: add the .fixed_direction_output configuration parameter Greg Kroah-Hartman
2025-10-27 18:37 ` [PATCH 6.17 184/184] gpio: idio-16: Define fixed direction of the GPIO lines Greg Kroah-Hartman
2025-10-27 21:51 ` [PATCH 6.17 000/184] 6.17.6-rc1 review Florian Fainelli
2025-10-27 22:00 ` Ronald Warsow
2025-10-28 5:05 ` Peter Schneider
2025-10-28 10:06 ` Naresh Kamboju
2025-10-28 10:49 ` Takeshi Ogasawara
2025-10-28 11:14 ` Mark Brown
2025-10-28 11:29 ` Jon Hunter
2025-10-28 11:38 ` Ron Economos
2025-10-28 13:53 ` Brett A C Sheffield
2025-10-28 17:11 ` Dileep malepu
2025-10-28 17:40 ` Justin Forbes
2025-10-28 19:24 ` Shuah Khan
2025-10-29 11:45 ` Miguel Ojeda
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=20251027183517.293342016@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=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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.