All of lore.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, Mikulas Patocka <mpatocka@redhat.com>,
	Jiping Ma <jiping.ma2@windriver.com>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.12 034/119] dm-snapshot: fix scheduling while atomic on real-time kernels
Date: Thu, 15 Jan 2026 17:47:29 +0100	[thread overview]
Message-ID: <20260115164153.192596958@linuxfoundation.org> (raw)
In-Reply-To: <20260115164151.948839306@linuxfoundation.org>

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

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

From: Mikulas Patocka <mpatocka@redhat.com>

[ Upstream commit 8581b19eb2c5ccf06c195d3b5468c3c9d17a5020 ]

There is reported 'scheduling while atomic' bug when using dm-snapshot on
real-time kernels. The reason for the bug is that the hlist_bl code does
preempt_disable() when taking the lock and the kernel attempts to take
other spinlocks while holding the hlist_bl lock.

Fix this by converting a hlist_bl spinlock into a regular spinlock.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Reported-by: Jiping Ma <jiping.ma2@windriver.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/md/dm-exception-store.h |  2 +-
 drivers/md/dm-snap.c            | 73 +++++++++++++++------------------
 2 files changed, 35 insertions(+), 40 deletions(-)

diff --git a/drivers/md/dm-exception-store.h b/drivers/md/dm-exception-store.h
index b679766375381..061b4d3108132 100644
--- a/drivers/md/dm-exception-store.h
+++ b/drivers/md/dm-exception-store.h
@@ -29,7 +29,7 @@ typedef sector_t chunk_t;
  * chunk within the device.
  */
 struct dm_exception {
-	struct hlist_bl_node hash_list;
+	struct hlist_node hash_list;
 
 	chunk_t old_chunk;
 	chunk_t new_chunk;
diff --git a/drivers/md/dm-snap.c b/drivers/md/dm-snap.c
index f40c18da40000..dbd148967de42 100644
--- a/drivers/md/dm-snap.c
+++ b/drivers/md/dm-snap.c
@@ -40,10 +40,15 @@ static const char dm_snapshot_merge_target_name[] = "snapshot-merge";
 #define DM_TRACKED_CHUNK_HASH(x)	((unsigned long)(x) & \
 					 (DM_TRACKED_CHUNK_HASH_SIZE - 1))
 
+struct dm_hlist_head {
+	struct hlist_head head;
+	spinlock_t lock;
+};
+
 struct dm_exception_table {
 	uint32_t hash_mask;
 	unsigned int hash_shift;
-	struct hlist_bl_head *table;
+	struct dm_hlist_head *table;
 };
 
 struct dm_snapshot {
@@ -628,8 +633,8 @@ static uint32_t exception_hash(struct dm_exception_table *et, chunk_t chunk);
 
 /* Lock to protect access to the completed and pending exception hash tables. */
 struct dm_exception_table_lock {
-	struct hlist_bl_head *complete_slot;
-	struct hlist_bl_head *pending_slot;
+	spinlock_t *complete_slot;
+	spinlock_t *pending_slot;
 };
 
 static void dm_exception_table_lock_init(struct dm_snapshot *s, chunk_t chunk,
@@ -638,20 +643,20 @@ static void dm_exception_table_lock_init(struct dm_snapshot *s, chunk_t chunk,
 	struct dm_exception_table *complete = &s->complete;
 	struct dm_exception_table *pending = &s->pending;
 
-	lock->complete_slot = &complete->table[exception_hash(complete, chunk)];
-	lock->pending_slot = &pending->table[exception_hash(pending, chunk)];
+	lock->complete_slot = &complete->table[exception_hash(complete, chunk)].lock;
+	lock->pending_slot = &pending->table[exception_hash(pending, chunk)].lock;
 }
 
 static void dm_exception_table_lock(struct dm_exception_table_lock *lock)
 {
-	hlist_bl_lock(lock->complete_slot);
-	hlist_bl_lock(lock->pending_slot);
+	spin_lock_nested(lock->complete_slot, 1);
+	spin_lock_nested(lock->pending_slot, 2);
 }
 
 static void dm_exception_table_unlock(struct dm_exception_table_lock *lock)
 {
-	hlist_bl_unlock(lock->pending_slot);
-	hlist_bl_unlock(lock->complete_slot);
+	spin_unlock(lock->pending_slot);
+	spin_unlock(lock->complete_slot);
 }
 
 static int dm_exception_table_init(struct dm_exception_table *et,
@@ -661,13 +666,15 @@ static int dm_exception_table_init(struct dm_exception_table *et,
 
 	et->hash_shift = hash_shift;
 	et->hash_mask = size - 1;
-	et->table = kvmalloc_array(size, sizeof(struct hlist_bl_head),
+	et->table = kvmalloc_array(size, sizeof(struct dm_hlist_head),
 				   GFP_KERNEL);
 	if (!et->table)
 		return -ENOMEM;
 
-	for (i = 0; i < size; i++)
-		INIT_HLIST_BL_HEAD(et->table + i);
+	for (i = 0; i < size; i++) {
+		INIT_HLIST_HEAD(&et->table[i].head);
+		spin_lock_init(&et->table[i].lock);
+	}
 
 	return 0;
 }
@@ -675,16 +682,17 @@ static int dm_exception_table_init(struct dm_exception_table *et,
 static void dm_exception_table_exit(struct dm_exception_table *et,
 				    struct kmem_cache *mem)
 {
-	struct hlist_bl_head *slot;
+	struct dm_hlist_head *slot;
 	struct dm_exception *ex;
-	struct hlist_bl_node *pos, *n;
+	struct hlist_node *pos;
 	int i, size;
 
 	size = et->hash_mask + 1;
 	for (i = 0; i < size; i++) {
 		slot = et->table + i;
 
-		hlist_bl_for_each_entry_safe(ex, pos, n, slot, hash_list) {
+		hlist_for_each_entry_safe(ex, pos, &slot->head, hash_list) {
+			hlist_del(&ex->hash_list);
 			kmem_cache_free(mem, ex);
 			cond_resched();
 		}
@@ -700,7 +708,7 @@ static uint32_t exception_hash(struct dm_exception_table *et, chunk_t chunk)
 
 static void dm_remove_exception(struct dm_exception *e)
 {
-	hlist_bl_del(&e->hash_list);
+	hlist_del(&e->hash_list);
 }
 
 /*
@@ -710,12 +718,11 @@ static void dm_remove_exception(struct dm_exception *e)
 static struct dm_exception *dm_lookup_exception(struct dm_exception_table *et,
 						chunk_t chunk)
 {
-	struct hlist_bl_head *slot;
-	struct hlist_bl_node *pos;
+	struct hlist_head *slot;
 	struct dm_exception *e;
 
-	slot = &et->table[exception_hash(et, chunk)];
-	hlist_bl_for_each_entry(e, pos, slot, hash_list)
+	slot = &et->table[exception_hash(et, chunk)].head;
+	hlist_for_each_entry(e, slot, hash_list)
 		if (chunk >= e->old_chunk &&
 		    chunk <= e->old_chunk + dm_consecutive_chunk_count(e))
 			return e;
@@ -762,18 +769,17 @@ static void free_pending_exception(struct dm_snap_pending_exception *pe)
 static void dm_insert_exception(struct dm_exception_table *eh,
 				struct dm_exception *new_e)
 {
-	struct hlist_bl_head *l;
-	struct hlist_bl_node *pos;
+	struct hlist_head *l;
 	struct dm_exception *e = NULL;
 
-	l = &eh->table[exception_hash(eh, new_e->old_chunk)];
+	l = &eh->table[exception_hash(eh, new_e->old_chunk)].head;
 
 	/* Add immediately if this table doesn't support consecutive chunks */
 	if (!eh->hash_shift)
 		goto out;
 
 	/* List is ordered by old_chunk */
-	hlist_bl_for_each_entry(e, pos, l, hash_list) {
+	hlist_for_each_entry(e, l, hash_list) {
 		/* Insert after an existing chunk? */
 		if (new_e->old_chunk == (e->old_chunk +
 					 dm_consecutive_chunk_count(e) + 1) &&
@@ -804,13 +810,13 @@ static void dm_insert_exception(struct dm_exception_table *eh,
 		 * Either the table doesn't support consecutive chunks or slot
 		 * l is empty.
 		 */
-		hlist_bl_add_head(&new_e->hash_list, l);
+		hlist_add_head(&new_e->hash_list, l);
 	} else if (new_e->old_chunk < e->old_chunk) {
 		/* Add before an existing exception */
-		hlist_bl_add_before(&new_e->hash_list, &e->hash_list);
+		hlist_add_before(&new_e->hash_list, &e->hash_list);
 	} else {
 		/* Add to l's tail: e is the last exception in this slot */
-		hlist_bl_add_behind(&new_e->hash_list, &e->hash_list);
+		hlist_add_behind(&new_e->hash_list, &e->hash_list);
 	}
 }
 
@@ -820,7 +826,6 @@ static void dm_insert_exception(struct dm_exception_table *eh,
  */
 static int dm_add_exception(void *context, chunk_t old, chunk_t new)
 {
-	struct dm_exception_table_lock lock;
 	struct dm_snapshot *s = context;
 	struct dm_exception *e;
 
@@ -833,17 +838,7 @@ static int dm_add_exception(void *context, chunk_t old, chunk_t new)
 	/* Consecutive_count is implicitly initialised to zero */
 	e->new_chunk = new;
 
-	/*
-	 * Although there is no need to lock access to the exception tables
-	 * here, if we don't then hlist_bl_add_head(), called by
-	 * dm_insert_exception(), will complain about accessing the
-	 * corresponding list without locking it first.
-	 */
-	dm_exception_table_lock_init(s, old, &lock);
-
-	dm_exception_table_lock(&lock);
 	dm_insert_exception(&s->complete, e);
-	dm_exception_table_unlock(&lock);
 
 	return 0;
 }
@@ -873,7 +868,7 @@ static int calc_max_buckets(void)
 	/* use a fixed size of 2MB */
 	unsigned long mem = 2 * 1024 * 1024;
 
-	mem /= sizeof(struct hlist_bl_head);
+	mem /= sizeof(struct dm_hlist_head);
 
 	return mem;
 }
-- 
2.51.0




  parent reply	other threads:[~2026-01-15 17:03 UTC|newest]

Thread overview: 134+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-15 16:46 [PATCH 6.12 000/119] 6.12.66-rc1 review Greg Kroah-Hartman
2026-01-15 16:46 ` [PATCH 6.12 001/119] NFSD: Fix permission check for read access to executable-only files Greg Kroah-Hartman
2026-01-15 16:46 ` [PATCH 6.12 002/119] nfsd: provide locking for v4_end_grace Greg Kroah-Hartman
2026-01-15 16:46 ` [PATCH 6.12 003/119] nfsd: use correct loop termination in nfsd4_revoke_states() Greg Kroah-Hartman
2026-01-15 16:46 ` [PATCH 6.12 004/119] nfsd: check that server is running in unlock_filesystem Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 005/119] NFSD: net ref data still needs to be freed even if net hasnt startup Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 006/119] NFSD: Remove NFSERR_EAGAIN Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 007/119] atm: Fix dma_free_coherent() size Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 008/119] net: 3com: 3c59x: fix possible null dereference in vortex_probe1() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 009/119] arm64: Fix cleared E0POE bit after cpu_suspend()/resume() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 010/119] btrfs: always detect conflicting inodes when logging inode refs Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 011/119] mei: me: add nova lake point S DID Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 012/119] lib/crypto: aes: Fix missing MMU protection for AES S-box Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 013/119] counter: 104-quad-8: Fix incorrect return value in IRQ handler Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 014/119] counter: interrupt-cnt: Drop IRQF_NO_THREAD flag Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 015/119] drm/amdgpu: Fix query for VPE block_type and ip_count Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 016/119] drm/pl111: Fix error handling in pl111_amba_probe Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 017/119] drm/radeon: Remove __counted_by from ClockInfoArray.clockInfo[] Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 018/119] gpio: rockchip: mark the GPIO controller as sleeping Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 019/119] pinctrl: qcom: lpass-lpi: " Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 020/119] wifi: avoid kernel-infoleak from struct iw_point Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 021/119] wifi: mac80211: restore non-chanctx injection behaviour Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 022/119] libceph: prevent potential out-of-bounds reads in handle_auth_done() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 023/119] libceph: replace overzealous BUG_ON in osdmap_apply_incremental() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 024/119] libceph: make free_choose_arg_map() resilient to partial allocation Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 025/119] libceph: return the handler error from mon_handle_auth_done() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 026/119] libceph: reset sparse-read state in osd_fault() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 027/119] libceph: make calc_target() set t->paused, not just clear it Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 028/119] tls: Use __sk_dst_get() and dst_dev_rcu() in get_netdev_for_sock() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 029/119] drm/xe: make xe_gt_idle_disable_c6() handle the forcewake internally Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 030/119] drm/xe: Ensure GT is in C0 during resumes Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 031/119] csky: fix csky_cmpxchg_fixup not working Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 032/119] ARM: 9461/1: Disable HIGHPTE on PREEMPT_RT kernels Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 033/119] alpha: dont reference obsolete termio struct for TC* constants Greg Kroah-Hartman
2026-01-15 16:47 ` Greg Kroah-Hartman [this message]
2026-01-15 16:47 ` [PATCH 6.12 035/119] NFSv4: ensure the open stateid seqid doesnt go backwards Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 036/119] ASoC: rockchip: Fix Wvoid-pointer-to-enum-cast warning (again) Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 037/119] NFS: Fix up the automount fs_context to use the correct cred Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 038/119] drm/amd/display: shrink struct members Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 039/119] smb/client: fix NT_STATUS_UNABLE_TO_FREE_VM value Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 040/119] smb/client: fix NT_STATUS_DEVICE_DOOR_OPEN value Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 041/119] smb/client: fix NT_STATUS_NO_DATA_DETECTED value Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 042/119] scsi: ipr: Enable/disable IRQD_NO_BALANCING during reset Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 043/119] scsi: ufs: core: Fix EH failure after W-LUN resume error Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 044/119] scsi: Revert "scsi: libsas: Fix exp-attached device scan after probe failure scanned in again after probe failed" Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 045/119] btrfs: fix qgroup_snapshot_quick_inherit() squota bug Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 046/119] btrfs: qgroup: update all parent qgroups when doing quick inherit Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 047/119] btrfs: tracepoints: use btrfs_root_id() to get the id of a root Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 048/119] btrfs: fix NULL dereference on root when tracing inode eviction Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 049/119] drm/amd/display: Respect users CONFIG_FRAME_WARN more for dml files Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 050/119] drm/amd/display: Apply e4479aecf658 to dml Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 051/119] arm64: dts: ti: k3-am62-lp-sk-nand: Rename pinctrls to fix schema warnings Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 052/119] crypto: qat - fix duplicate restarting msg during AER error Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 053/119] arm64: dts: add off-on-delay-us for usdhc2 regulator Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 054/119] ARM: dts: imx6q-ba16: fix RTC interrupt level Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 055/119] arm64: dts: imx8mp: Fix LAN8740Ai PHY reference clock on DH electronics i.MX8M Plus DHCOM Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 056/119] arm64: dts: imx8qm-ss-dma: correct the dma channels of lpuart Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 057/119] arm64: dts: mba8mx: Fix Ethernet PHY IRQ support Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 058/119] netfilter: nft_set_pipapo: fix range overlap detection Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 059/119] netfilter: nft_synproxy: avoid possible data-race on update operation Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 060/119] gpio: pca953x: Add support for level-triggered interrupts Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 061/119] gpio: pca953x: handle short interrupt pulses on PCAL devices Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 062/119] netfilter: nf_tables: fix memory leak in nf_tables_newrule() Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 063/119] netfilter: nf_conncount: update last_gc only when GC has been performed Greg Kroah-Hartman
2026-01-15 16:47 ` [PATCH 6.12 064/119] net: marvell: prestera: fix NULL dereference on devlink_alloc() failure Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 065/119] bridge: fix C-VLAN preservation in 802.1ad vlan_tunnel egress Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 066/119] net: mscc: ocelot: Fix crash when adding interface under a lag Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 067/119] inet: ping: Fix icmp out counting Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 068/119] net: sock: fix hardened usercopy panic in sock_recv_errqueue Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 069/119] netdev: preserve NETIF_F_ALL_FOR_ALL across TSO updates Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 070/119] net/mlx5e: Dont print error message due to invalid module Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 071/119] net: wwan: iosm: Fix memory leak in ipc_mux_deinit() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 072/119] bnxt_en: Fix potential data corruption with HW GRO/LRO Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 073/119] vsock: Make accept()ed sockets use custom setsockopt() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 074/119] btrfs: only enforce free space tree if v1 cache is required for bs < ps cases Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 075/119] riscv: pgtable: Cleanup useless VA_USER_XXX definitions Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 076/119] net: fix memory leak in skb_segment_list for GRO packets Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 077/119] idpf: keep the netdev when a reset fails Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 078/119] idpf: fix memory leak in idpf_vport_rel() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 079/119] idpf: cap maximum Rx buffer size Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 080/119] net: netdevsim: fix inconsistent carrier state after link/unlink Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 081/119] HID: quirks: work around VID/PID conflict for appledisplay Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 082/119] net/sched: sch_qfq: Fix NULL deref when deactivating inactive aggregate in qfq_reset Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 083/119] net: usb: pegasus: fix memory leak in update_eth_regs_async() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 084/119] net: enetc: fix build warning when PAGE_SIZE is greater than 128K Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 085/119] arp: do not assume dev_hard_header() does not change skb->head Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 086/119] erofs: dont bother with s_stack_depth increasing for now Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 087/119] erofs: fix file-backed mounts no longer working on EROFS partitions Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 088/119] ALSA: ac97bus: Use guard() for mutex locks Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 089/119] ALSA: ac97: fix a double free in snd_ac97_controller_register() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 090/119] btrfs: fix error handling of submit_uncompressed_range() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 091/119] btrfs: subpage: dump the involved bitmap when ASSERT() failed Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 092/119] btrfs: add extra error messages for delalloc range related errors Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 093/119] btrfs: remove btrfs_fs_info::sectors_per_page Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 094/119] btrfs: truncate ordered extent when skipping writeback past i_size Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 095/119] btrfs: use variable for end offset in extent_writepage_io() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 096/119] btrfs: fix beyond-EOF write handling Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 097/119] bpf: Fix an issue in bpf_prog_test_run_xdp when page size greater than 4K Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 098/119] bpf: Make variables in bpf_prog_test_run_xdp less confusing Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 099/119] bpf: Support specifying linear xdp packet data size for BPF_PROG_TEST_RUN Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 100/119] bpf, test_run: Subtract size of xdp_frame from allowed metadata size Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 101/119] bpf: Fix reference count leak in bpf_prog_test_run_xdp() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 102/119] net: sfp: extend Potron XGSPON quirk to cover additional EEPROM variant Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 103/119] powercap: fix race condition in register_control_type() Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 104/119] powercap: fix sscanf() error return value handling Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 105/119] netfilter: nf_tables: avoid chain re-validation if possible Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 106/119] ata: libata-core: Disable LPM on ST2000DM008-2FR102 Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 107/119] drm/amd/display: Fix DP no audio issue Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 108/119] spi: mt65xx: Use IRQF_ONESHOT with threaded IRQ Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 109/119] drm/amdkfd: Fix improper NULL termination of queue restore SMI event string Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 110/119] can: j1939: make j1939_session_activate() fail if device is no longer registered Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 111/119] ALSA: usb-audio: Update for native DSD support quirks Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 112/119] ASoC: amd: yc: Add quirk for Honor MagicBook X16 2025 Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 113/119] ALSA: hda/realtek: enable woofer speakers on Medion NM14LNL Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 114/119] ASoC: fsl_sai: Add missing registers to cache default Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 115/119] scsi: sg: Fix occasional bogus elapsed time that exceeds timeout Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 116/119] spi: cadence-quadspi: Prevent lost complete() call during indirect read Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 117/119] tpm2-sessions: Fix out of range indexing in name_size Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 118/119] ALSA: hda: intel-dsp-config: Prefer legacy driver as fallback Greg Kroah-Hartman
2026-01-15 16:48 ` [PATCH 6.12 119/119] bpf: test_run: Fix ctx leak in bpf_prog_test_run_xdp error path Greg Kroah-Hartman
2026-01-15 19:15 ` [PATCH 6.12 000/119] 6.12.66-rc1 review Brett A C Sheffield
2026-01-15 19:58 ` Slade Watkins
2026-01-15 21:34 ` Francesco Dolcini
2026-01-15 22:42 ` Shuah Khan
2026-01-15 23:18 ` Florian Fainelli
2026-01-16 10:03 ` Ron Economos
2026-01-16 10:33 ` Jon Hunter
2026-01-16 11:23 ` Peter Schneider
2026-01-16 15:37 ` Harshit Mogalapalli
2026-01-16 17:48 ` Hardik Garg
2026-01-16 19:18 ` Mark Brown
2026-01-16 21:58 ` Brett Mastbergen
2026-01-17 14:42 ` Miguel Ojeda
2026-01-19 11:23 ` Jeffrin Thalakkottoor

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=20260115164153.192596958@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=jiping.ma2@windriver.com \
    --cc=mpatocka@redhat.com \
    --cc=patches@lists.linux.dev \
    --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 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.