All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Hou Tao <houtao1@huawei.com>, Alexei Starovoitov <ast@kernel.org>,
	Andrii Nakryiko <andrii@kernel.org>,
	Sasha Levin <sashal@kernel.org>,
	daniel@iogearbox.net, bpf@vger.kernel.org
Subject: [PATCH AUTOSEL 6.12 089/107] bpf: Call free_htab_elem() after htab_unlock_bucket()
Date: Sun, 24 Nov 2024 08:29:49 -0500	[thread overview]
Message-ID: <20241124133301.3341829-89-sashal@kernel.org> (raw)
In-Reply-To: <20241124133301.3341829-1-sashal@kernel.org>

From: Hou Tao <houtao1@huawei.com>

[ Upstream commit b9e9ed90b10c82a4e9d4d70a2890f06bfcdd3b78 ]

For htab of maps, when the map is removed from the htab, it may hold the
last reference of the map. bpf_map_fd_put_ptr() will invoke
bpf_map_free_id() to free the id of the removed map element. However,
bpf_map_fd_put_ptr() is invoked while holding a bucket lock
(raw_spin_lock_t), and bpf_map_free_id() attempts to acquire map_idr_lock
(spinlock_t), triggering the following lockdep warning:

  =============================
  [ BUG: Invalid wait context ]
  6.11.0-rc4+ #49 Not tainted
  -----------------------------
  test_maps/4881 is trying to lock:
  ffffffff84884578 (map_idr_lock){+...}-{3:3}, at: bpf_map_free_id.part.0+0x21/0x70
  other info that might help us debug this:
  context-{5:5}
  2 locks held by test_maps/4881:
   #0: ffffffff846caf60 (rcu_read_lock){....}-{1:3}, at: bpf_fd_htab_map_update_elem+0xf9/0x270
   #1: ffff888149ced148 (&htab->lockdep_key#2){....}-{2:2}, at: htab_map_update_elem+0x178/0xa80
  stack backtrace:
  CPU: 0 UID: 0 PID: 4881 Comm: test_maps Not tainted 6.11.0-rc4+ #49
  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), ...
  Call Trace:
   <TASK>
   dump_stack_lvl+0x6e/0xb0
   dump_stack+0x10/0x20
   __lock_acquire+0x73e/0x36c0
   lock_acquire+0x182/0x450
   _raw_spin_lock_irqsave+0x43/0x70
   bpf_map_free_id.part.0+0x21/0x70
   bpf_map_put+0xcf/0x110
   bpf_map_fd_put_ptr+0x9a/0xb0
   free_htab_elem+0x69/0xe0
   htab_map_update_elem+0x50f/0xa80
   bpf_fd_htab_map_update_elem+0x131/0x270
   htab_map_update_elem+0x50f/0xa80
   bpf_fd_htab_map_update_elem+0x131/0x270
   bpf_map_update_value+0x266/0x380
   __sys_bpf+0x21bb/0x36b0
   __x64_sys_bpf+0x45/0x60
   x64_sys_call+0x1b2a/0x20d0
   do_syscall_64+0x5d/0x100
   entry_SYSCALL_64_after_hwframe+0x76/0x7e

One way to fix the lockdep warning is using raw_spinlock_t for
map_idr_lock as well. However, bpf_map_alloc_id() invokes
idr_alloc_cyclic() after acquiring map_idr_lock, it will trigger a
similar lockdep warning because the slab's lock (s->cpu_slab->lock) is
still a spinlock.

Instead of changing map_idr_lock's type, fix the issue by invoking
htab_put_fd_value() after htab_unlock_bucket(). However, only deferring
the invocation of htab_put_fd_value() is not enough, because the old map
pointers in htab of maps can not be saved during batched deletion.
Therefore, also defer the invocation of free_htab_elem(), so these
to-be-freed elements could be linked together similar to lru map.

There are four callers for ->map_fd_put_ptr:

(1) alloc_htab_elem() (through htab_put_fd_value())
It invokes ->map_fd_put_ptr() under a raw_spinlock_t. The invocation of
htab_put_fd_value() can not simply move after htab_unlock_bucket(),
because the old element has already been stashed in htab->extra_elems.
It may be reused immediately after htab_unlock_bucket() and the
invocation of htab_put_fd_value() after htab_unlock_bucket() may release
the newly-added element incorrectly. Therefore, saving the map pointer
of the old element for htab of maps before unlocking the bucket and
releasing the map_ptr after unlock. Beside the map pointer in the old
element, should do the same thing for the special fields in the old
element as well.

(2) free_htab_elem() (through htab_put_fd_value())
Its caller includes __htab_map_lookup_and_delete_elem(),
htab_map_delete_elem() and __htab_map_lookup_and_delete_batch().

For htab_map_delete_elem(), simply invoke free_htab_elem() after
htab_unlock_bucket(). For __htab_map_lookup_and_delete_batch(), just
like lru map, linking the to-be-freed element into node_to_free list
and invoking free_htab_elem() for these element after unlock. It is safe
to reuse batch_flink as the link for node_to_free, because these
elements have been removed from the hash llist.

Because htab of maps doesn't support lookup_and_delete operation,
__htab_map_lookup_and_delete_elem() doesn't have the problem, so kept
it as is.

(3) fd_htab_map_free()
It invokes ->map_fd_put_ptr without raw_spinlock_t.

(4) bpf_fd_htab_map_update_elem()
It invokes ->map_fd_put_ptr without raw_spinlock_t.

After moving free_htab_elem() outside htab bucket lock scope, using
pcpu_freelist_push() instead of __pcpu_freelist_push() to disable
the irq before freeing elements, and protecting the invocations of
bpf_mem_cache_free() with migrate_{disable|enable} pair.

Signed-off-by: Hou Tao <houtao1@huawei.com>
Link: https://lore.kernel.org/r/20241106063542.357743-2-houtao@huaweicloud.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 kernel/bpf/hashtab.c | 56 ++++++++++++++++++++++++++++++--------------
 1 file changed, 39 insertions(+), 17 deletions(-)

diff --git a/kernel/bpf/hashtab.c b/kernel/bpf/hashtab.c
index b14b87463ee04..3ec941a0ea41c 100644
--- a/kernel/bpf/hashtab.c
+++ b/kernel/bpf/hashtab.c
@@ -896,9 +896,12 @@ static int htab_map_get_next_key(struct bpf_map *map, void *key, void *next_key)
 static void htab_elem_free(struct bpf_htab *htab, struct htab_elem *l)
 {
 	check_and_free_fields(htab, l);
+
+	migrate_disable();
 	if (htab->map.map_type == BPF_MAP_TYPE_PERCPU_HASH)
 		bpf_mem_cache_free(&htab->pcpu_ma, l->ptr_to_pptr);
 	bpf_mem_cache_free(&htab->ma, l);
+	migrate_enable();
 }
 
 static void htab_put_fd_value(struct bpf_htab *htab, struct htab_elem *l)
@@ -948,7 +951,7 @@ static void free_htab_elem(struct bpf_htab *htab, struct htab_elem *l)
 	if (htab_is_prealloc(htab)) {
 		bpf_map_dec_elem_count(&htab->map);
 		check_and_free_fields(htab, l);
-		__pcpu_freelist_push(&htab->freelist, &l->fnode);
+		pcpu_freelist_push(&htab->freelist, &l->fnode);
 	} else {
 		dec_elem_count(htab);
 		htab_elem_free(htab, l);
@@ -1018,7 +1021,6 @@ static struct htab_elem *alloc_htab_elem(struct bpf_htab *htab, void *key,
 			 */
 			pl_new = this_cpu_ptr(htab->extra_elems);
 			l_new = *pl_new;
-			htab_put_fd_value(htab, old_elem);
 			*pl_new = old_elem;
 		} else {
 			struct pcpu_freelist_node *l;
@@ -1105,6 +1107,7 @@ static long htab_map_update_elem(struct bpf_map *map, void *key, void *value,
 	struct htab_elem *l_new = NULL, *l_old;
 	struct hlist_nulls_head *head;
 	unsigned long flags;
+	void *old_map_ptr;
 	struct bucket *b;
 	u32 key_size, hash;
 	int ret;
@@ -1183,12 +1186,27 @@ static long htab_map_update_elem(struct bpf_map *map, void *key, void *value,
 	hlist_nulls_add_head_rcu(&l_new->hash_node, head);
 	if (l_old) {
 		hlist_nulls_del_rcu(&l_old->hash_node);
+
+		/* l_old has already been stashed in htab->extra_elems, free
+		 * its special fields before it is available for reuse. Also
+		 * save the old map pointer in htab of maps before unlock
+		 * and release it after unlock.
+		 */
+		old_map_ptr = NULL;
+		if (htab_is_prealloc(htab)) {
+			if (map->ops->map_fd_put_ptr)
+				old_map_ptr = fd_htab_map_get_ptr(map, l_old);
+			check_and_free_fields(htab, l_old);
+		}
+	}
+	htab_unlock_bucket(htab, b, hash, flags);
+	if (l_old) {
+		if (old_map_ptr)
+			map->ops->map_fd_put_ptr(map, old_map_ptr, true);
 		if (!htab_is_prealloc(htab))
 			free_htab_elem(htab, l_old);
-		else
-			check_and_free_fields(htab, l_old);
 	}
-	ret = 0;
+	return 0;
 err:
 	htab_unlock_bucket(htab, b, hash, flags);
 	return ret;
@@ -1432,15 +1450,15 @@ static long htab_map_delete_elem(struct bpf_map *map, void *key)
 		return ret;
 
 	l = lookup_elem_raw(head, hash, key, key_size);
-
-	if (l) {
+	if (l)
 		hlist_nulls_del_rcu(&l->hash_node);
-		free_htab_elem(htab, l);
-	} else {
+	else
 		ret = -ENOENT;
-	}
 
 	htab_unlock_bucket(htab, b, hash, flags);
+
+	if (l)
+		free_htab_elem(htab, l);
 	return ret;
 }
 
@@ -1853,13 +1871,14 @@ __htab_map_lookup_and_delete_batch(struct bpf_map *map,
 			 * may cause deadlock. See comments in function
 			 * prealloc_lru_pop(). Let us do bpf_lru_push_free()
 			 * after releasing the bucket lock.
+			 *
+			 * For htab of maps, htab_put_fd_value() in
+			 * free_htab_elem() may acquire a spinlock with bucket
+			 * lock being held and it violates the lock rule, so
+			 * invoke free_htab_elem() after unlock as well.
 			 */
-			if (is_lru_map) {
-				l->batch_flink = node_to_free;
-				node_to_free = l;
-			} else {
-				free_htab_elem(htab, l);
-			}
+			l->batch_flink = node_to_free;
+			node_to_free = l;
 		}
 		dst_key += key_size;
 		dst_val += value_size;
@@ -1871,7 +1890,10 @@ __htab_map_lookup_and_delete_batch(struct bpf_map *map,
 	while (node_to_free) {
 		l = node_to_free;
 		node_to_free = node_to_free->batch_flink;
-		htab_lru_push_free(htab, l);
+		if (is_lru_map)
+			htab_lru_push_free(htab, l);
+		else
+			free_htab_elem(htab, l);
 	}
 
 next_batch:
-- 
2.43.0


  parent reply	other threads:[~2024-11-24 13:38 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-24 13:28 [PATCH AUTOSEL 6.12 001/107] drm/xe/pciids: separate RPL-U and RPL-P PCI IDs Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 002/107] drm/xe/pciids: separate ARL and MTL " Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 003/107] drm/vc4: hdmi: Avoid log spam for audio start failure Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 004/107] drm/vc4: hvs: Set AXI panic modes for the HVS Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 005/107] drm/vc4: hdmi: Increase audio MAI fifo dreq threshold Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 006/107] drm/xe/pciids: Add PVC's PCI device ID macros Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 007/107] wifi: rtw88: use ieee80211_purge_tx_queue() to purge TX skb Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 008/107] drm/xe/pciid: Add new PCI id for ARL Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 009/107] udmabuf: change folios array from kmalloc to kvmalloc Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 010/107] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 011/107] drm: panel-orientation-quirks: Add quirk for AYA NEO Founder edition Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 012/107] drm: panel-orientation-quirks: Add quirk for AYA NEO GEEK Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 013/107] drm/bridge: it6505: Enable module autoloading Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 014/107] drm/mcde: " Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 015/107] wifi: rtw89: check return value of ieee80211_probereq_get() for RNR Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 016/107] drm/amd/display: Block UHBR Based On USB-C PD Cable ID Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 017/107] drm/amd/display: Fix out-of-bounds access in 'dcn21_link_encoder_create' Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 018/107] drm/radeon/r600_cs: Fix possible int overflow in r600_packet3_check() Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 019/107] ASoC: Intel: sof_rt5682: Add HDMI-In capture with rt5682 support for MTL Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 020/107] dlm: fix possible lkb_resource null dereference Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 021/107] drm/amd/display: skip disable CRTC in seemless bootup case Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 022/107] drm/amd/display: Fix garbage or black screen when resetting otg Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 023/107] drm/amd/display: disable SG displays on cyan skillfish Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 024/107] drm/xe/ptl: L3bank mask is not available on the media GT Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 025/107] drm/xe/xe3: Add initial set of workarounds Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 026/107] drm/display: Fix building with GCC 15 Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 027/107] ALSA: hda: Use own quirk lookup helper Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 028/107] ALSA: hda/conexant: Use the new codec SSID matching Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 029/107] ALSA: hda/realtek: Use codec SSID matching for Lenovo devices Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 030/107] r8169: don't apply UDP padding quirk on RTL8126A Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 031/107] samples/bpf: Fix a resource leak Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 032/107] wifi: ath12k: fix atomic calls in ath12k_mac_op_set_bitrate_mask() Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 033/107] accel/qaic: Add AIC080 support Sasha Levin
2024-11-24 19:07   ` Jeffrey Hugo
2024-12-10 16:16     ` Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 034/107] drm/amd/display: Full exit out of IPS2 when all allow signals have been cleared Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 035/107] net: fec_mpc52xx_phy: Use %pa to format resource_size_t Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 036/107] net: ethernet: fs_enet: " Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 037/107] net/sched: cbs: Fix integer overflow in cbs_set_port_rate() Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 038/107] af_packet: avoid erroring out after sock_init_data() in packet_create() Sasha Levin
2024-11-24 13:28 ` [PATCH AUTOSEL 6.12 039/107] Bluetooth: L2CAP: do not leave dangling sk pointer on error in l2cap_sock_create() Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 040/107] Bluetooth: RFCOMM: avoid leaving dangling sk pointer in rfcomm_sock_alloc() Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 041/107] net: af_can: do not leave a dangling sk pointer in can_create() Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 042/107] net: ieee802154: do not leave a dangling sk pointer in ieee802154_create() Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 043/107] net: inet: do not leave a dangling sk pointer in inet_create() Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 044/107] net: inet6: do not leave a dangling sk pointer in inet6_create() Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 045/107] wifi: ath10k: avoid NULL pointer error during sdio remove Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 046/107] wifi: ath5k: add PCI ID for SX76X Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 047/107] wifi: ath5k: add PCI ID for Arcadyan devices Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 048/107] fanotify: allow reporting errors on failure to open fd Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 049/107] bpf: Prevent tailcall infinite loop caused by freplace Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 050/107] ASoC: sdw_utils: Add support for exclusion DAI quirks Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 051/107] ASoC: sdw_utils: Add a quirk to allow the cs42l43 mic DAI to be ignored Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 052/107] ASoC: Intel: sof_sdw: Add quirk for cs42l43 system using host DMICs Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 053/107] ASoC: Intel: sof_sdw: Add quirks for some new Lenovo laptops Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 054/107] drm/xe/guc/ct: Flush g2h worker in case of g2h response timeout Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 055/107] drm/panel: simple: Add Microchip AC69T88A LVDS Display panel Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 056/107] net: sfp: change quirks for Alcatel Lucent G-010S-P Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 057/107] net: stmmac: Programming sequence for VLAN packets with split header Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 058/107] drm/sched: memset() 'job' in drm_sched_job_init() Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 059/107] drm/amd/display: Adding array index check to prevent memory corruption Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 060/107] drm/amdgpu/gfx9: Add cleaner shader for GFX9.4.2 Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 061/107] drm/amdgpu: clear RB_OVERFLOW bit when enabling interrupts for vega20_ih Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 062/107] drm/amdgpu: Dereference the ATCS ACPI buffer Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 063/107] netlink: specs: Add missing bitset attrs to ethtool spec Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 064/107] drm/amdgpu: refine error handling in amdgpu_ttm_tt_pin_userptr Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 065/107] ASoC: sdw_utils: Add quirk to exclude amplifier function Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 066/107] ASoC: Intel: soc-acpi-intel-arl-match: Add rt722 and rt1320 support Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 067/107] drm/amd/display: Fix underflow when playing 8K video in full screen mode Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 068/107] mptcp: annotate data-races around subflow->fully_established Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 069/107] dma-debug: fix a possible deadlock on radix_lock Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 070/107] jfs: array-index-out-of-bounds fix in dtReadFirst Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 071/107] jfs: fix shift-out-of-bounds in dbSplit Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 072/107] jfs: fix array-index-out-of-bounds in jfs_readdir Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 073/107] jfs: add a check to prevent array-index-out-of-bounds in dbAdjTree Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 074/107] fsl/fman: Validate cell-index value obtained from Device Tree Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 075/107] net/tcp: Add missing lockdep annotations for TCP-AO hlist traversals Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 076/107] net: enetc: remove ERR050089 workaround for i.MX95 Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 077/107] net: enetc: add i.MX95 EMDIO support Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 078/107] drm/panic: Add ABGR2101010 support Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 079/107] Revert "drm/amd/display: Block UHBR Based On USB-C PD Cable ID" Sasha Levin
2024-11-25 11:35   ` Michel Dänzer
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 080/107] drm/amd/display: Remove hw w/a toggle if on DP2/HPO Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 081/107] drm/amd/display: parse umc_info or vram_info based on ASIC Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 082/107] drm/amd/display: Prune Invalid Modes For HDMI Output Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 083/107] drm/amdgpu: skip amdgpu_device_cache_pci_state under sriov Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 084/107] virtio-net: fix overflow inside virtnet_rq_alloc Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 085/107] ALSA: usb-audio: Make mic volume workarounds globally applicable Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 086/107] drm/amdgpu: set the right AMDGPU sg segment limitation Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 087/107] wifi: ipw2x00: libipw_rx_any(): fix bad alignment Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 088/107] wifi: brcmfmac: Fix oops due to NULL pointer dereference in brcmf_sdiod_sglist_rw() Sasha Levin
2024-11-24 13:29 ` Sasha Levin [this message]
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 090/107] mptcp: fix possible integer overflow in mptcp_reset_tout_timer Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 091/107] dsa: qca8k: Use nested lock to avoid splat Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 092/107] i2c: i801: Add support for Intel Panther Lake Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 093/107] Bluetooth: hci_conn: Reduce hci_conn_drop() calls in two functions Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 094/107] Bluetooth: btusb: Add RTL8852BE device 0489:e123 to device tables Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 095/107] Bluetooth: btusb: Add USB HW IDs for MT7920/MT7925 Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 096/107] Bluetooth: hci_conn: Use disable_delayed_work_sync Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 097/107] Bluetooth: hci_core: Fix not checking skb length on hci_acldata_packet Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 098/107] Bluetooth: Add new quirks for ATS2851 Sasha Levin
2024-11-24 13:29 ` [PATCH AUTOSEL 6.12 099/107] Bluetooth: Support " Sasha Levin
2024-11-24 13:30 ` [PATCH AUTOSEL 6.12 100/107] Bluetooth: Set " Sasha Levin
2024-11-24 13:30 ` [PATCH AUTOSEL 6.12 101/107] Bluetooth: btusb: Add new VID/PID 0489/e111 for MT7925 Sasha Levin
2024-11-24 13:30 ` [PATCH AUTOSEL 6.12 102/107] Bluetooth: btusb: Add new VID/PID 0489/e124 " Sasha Levin
2024-11-24 13:30 ` [PATCH AUTOSEL 6.12 103/107] Bluetooth: btusb: Add 3 HWIDs " Sasha Levin
2024-11-24 13:30 ` [PATCH AUTOSEL 6.12 104/107] ASoC: hdmi-codec: reorder channel allocation list Sasha Levin
2024-11-24 13:30 ` [PATCH AUTOSEL 6.12 105/107] rocker: fix link status detection in rocker_carrier_init() Sasha Levin
2024-11-24 13:30 ` [PATCH AUTOSEL 6.12 106/107] net/neighbor: clear error in case strict check is not set Sasha Levin
2024-11-24 13:30 ` [PATCH AUTOSEL 6.12 107/107] netpoll: Use rcu_access_pointer() in __netpoll_setup Sasha Levin

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=20241124133301.3341829-89-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=houtao1@huawei.com \
    --cc=linux-kernel@vger.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.