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, Matthew Mirvish <matthew@mm12.xyz>,
	Coly Li <colyli@suse.de>, Jens Axboe <axboe@kernel.dk>
Subject: [PATCH 6.6 020/137] bcache: fix variable length array abuse in btree_iter
Date: Thu, 13 Jun 2024 13:33:20 +0200	[thread overview]
Message-ID: <20240613113224.074262708@linuxfoundation.org> (raw)
In-Reply-To: <20240613113223.281378087@linuxfoundation.org>

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

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

From: Matthew Mirvish <matthew@mm12.xyz>

commit 3a861560ccb35f2a4f0a4b8207fa7c2a35fc7f31 upstream.

btree_iter is used in two ways: either allocated on the stack with a
fixed size MAX_BSETS, or from a mempool with a dynamic size based on the
specific cache set. Previously, the struct had a fixed-length array of
size MAX_BSETS which was indexed out-of-bounds for the dynamically-sized
iterators, which causes UBSAN to complain.

This patch uses the same approach as in bcachefs's sort_iter and splits
the iterator into a btree_iter with a flexible array member and a
btree_iter_stack which embeds a btree_iter as well as a fixed-length
data array.

Cc: stable@vger.kernel.org
Closes: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2039368
Signed-off-by: Matthew Mirvish <matthew@mm12.xyz>
Signed-off-by: Coly Li <colyli@suse.de>
Link: https://lore.kernel.org/r/20240509011117.2697-3-colyli@suse.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/md/bcache/bset.c      |   44 +++++++++++++++++++++---------------------
 drivers/md/bcache/bset.h      |   30 ++++++++++++++++++----------
 drivers/md/bcache/btree.c     |   40 ++++++++++++++++++++------------------
 drivers/md/bcache/super.c     |    5 ++--
 drivers/md/bcache/sysfs.c     |    2 -
 drivers/md/bcache/writeback.c |   10 ++++-----
 6 files changed, 71 insertions(+), 60 deletions(-)

--- a/drivers/md/bcache/bset.c
+++ b/drivers/md/bcache/bset.c
@@ -54,7 +54,7 @@ void bch_dump_bucket(struct btree_keys *
 int __bch_count_data(struct btree_keys *b)
 {
 	unsigned int ret = 0;
-	struct btree_iter iter;
+	struct btree_iter_stack iter;
 	struct bkey *k;
 
 	if (b->ops->is_extents)
@@ -67,7 +67,7 @@ void __bch_check_keys(struct btree_keys
 {
 	va_list args;
 	struct bkey *k, *p = NULL;
-	struct btree_iter iter;
+	struct btree_iter_stack iter;
 	const char *err;
 
 	for_each_key(b, k, &iter) {
@@ -879,7 +879,7 @@ unsigned int bch_btree_insert_key(struct
 	unsigned int status = BTREE_INSERT_STATUS_NO_INSERT;
 	struct bset *i = bset_tree_last(b)->data;
 	struct bkey *m, *prev = NULL;
-	struct btree_iter iter;
+	struct btree_iter_stack iter;
 	struct bkey preceding_key_on_stack = ZERO_KEY;
 	struct bkey *preceding_key_p = &preceding_key_on_stack;
 
@@ -895,9 +895,9 @@ unsigned int bch_btree_insert_key(struct
 	else
 		preceding_key(k, &preceding_key_p);
 
-	m = bch_btree_iter_init(b, &iter, preceding_key_p);
+	m = bch_btree_iter_stack_init(b, &iter, preceding_key_p);
 
-	if (b->ops->insert_fixup(b, k, &iter, replace_key))
+	if (b->ops->insert_fixup(b, k, &iter.iter, replace_key))
 		return status;
 
 	status = BTREE_INSERT_STATUS_INSERT;
@@ -1100,33 +1100,33 @@ void bch_btree_iter_push(struct btree_it
 				 btree_iter_cmp));
 }
 
-static struct bkey *__bch_btree_iter_init(struct btree_keys *b,
-					  struct btree_iter *iter,
-					  struct bkey *search,
-					  struct bset_tree *start)
+static struct bkey *__bch_btree_iter_stack_init(struct btree_keys *b,
+						struct btree_iter_stack *iter,
+						struct bkey *search,
+						struct bset_tree *start)
 {
 	struct bkey *ret = NULL;
 
-	iter->size = ARRAY_SIZE(iter->data);
-	iter->used = 0;
+	iter->iter.size = ARRAY_SIZE(iter->stack_data);
+	iter->iter.used = 0;
 
 #ifdef CONFIG_BCACHE_DEBUG
-	iter->b = b;
+	iter->iter.b = b;
 #endif
 
 	for (; start <= bset_tree_last(b); start++) {
 		ret = bch_bset_search(b, start, search);
-		bch_btree_iter_push(iter, ret, bset_bkey_last(start->data));
+		bch_btree_iter_push(&iter->iter, ret, bset_bkey_last(start->data));
 	}
 
 	return ret;
 }
 
-struct bkey *bch_btree_iter_init(struct btree_keys *b,
-				 struct btree_iter *iter,
+struct bkey *bch_btree_iter_stack_init(struct btree_keys *b,
+				 struct btree_iter_stack *iter,
 				 struct bkey *search)
 {
-	return __bch_btree_iter_init(b, iter, search, b->set);
+	return __bch_btree_iter_stack_init(b, iter, search, b->set);
 }
 
 static inline struct bkey *__bch_btree_iter_next(struct btree_iter *iter,
@@ -1293,10 +1293,10 @@ void bch_btree_sort_partial(struct btree
 			    struct bset_sort_state *state)
 {
 	size_t order = b->page_order, keys = 0;
-	struct btree_iter iter;
+	struct btree_iter_stack iter;
 	int oldsize = bch_count_data(b);
 
-	__bch_btree_iter_init(b, &iter, NULL, &b->set[start]);
+	__bch_btree_iter_stack_init(b, &iter, NULL, &b->set[start]);
 
 	if (start) {
 		unsigned int i;
@@ -1307,7 +1307,7 @@ void bch_btree_sort_partial(struct btree
 		order = get_order(__set_bytes(b->set->data, keys));
 	}
 
-	__btree_sort(b, &iter, start, order, false, state);
+	__btree_sort(b, &iter.iter, start, order, false, state);
 
 	EBUG_ON(oldsize >= 0 && bch_count_data(b) != oldsize);
 }
@@ -1323,11 +1323,11 @@ void bch_btree_sort_into(struct btree_ke
 			 struct bset_sort_state *state)
 {
 	uint64_t start_time = local_clock();
-	struct btree_iter iter;
+	struct btree_iter_stack iter;
 
-	bch_btree_iter_init(b, &iter, NULL);
+	bch_btree_iter_stack_init(b, &iter, NULL);
 
-	btree_mergesort(b, new->set->data, &iter, false, true);
+	btree_mergesort(b, new->set->data, &iter.iter, false, true);
 
 	bch_time_stats_update(&state->time, start_time);
 
--- a/drivers/md/bcache/bset.h
+++ b/drivers/md/bcache/bset.h
@@ -321,7 +321,14 @@ struct btree_iter {
 #endif
 	struct btree_iter_set {
 		struct bkey *k, *end;
-	} data[MAX_BSETS];
+	} data[];
+};
+
+/* Fixed-size btree_iter that can be allocated on the stack */
+
+struct btree_iter_stack {
+	struct btree_iter iter;
+	struct btree_iter_set stack_data[MAX_BSETS];
 };
 
 typedef bool (*ptr_filter_fn)(struct btree_keys *b, const struct bkey *k);
@@ -333,9 +340,9 @@ struct bkey *bch_btree_iter_next_filter(
 
 void bch_btree_iter_push(struct btree_iter *iter, struct bkey *k,
 			 struct bkey *end);
-struct bkey *bch_btree_iter_init(struct btree_keys *b,
-				 struct btree_iter *iter,
-				 struct bkey *search);
+struct bkey *bch_btree_iter_stack_init(struct btree_keys *b,
+				       struct btree_iter_stack *iter,
+				       struct bkey *search);
 
 struct bkey *__bch_bset_search(struct btree_keys *b, struct bset_tree *t,
 			       const struct bkey *search);
@@ -350,13 +357,14 @@ static inline struct bkey *bch_bset_sear
 	return search ? __bch_bset_search(b, t, search) : t->data->start;
 }
 
-#define for_each_key_filter(b, k, iter, filter)				\
-	for (bch_btree_iter_init((b), (iter), NULL);			\
-	     ((k) = bch_btree_iter_next_filter((iter), (b), filter));)
-
-#define for_each_key(b, k, iter)					\
-	for (bch_btree_iter_init((b), (iter), NULL);			\
-	     ((k) = bch_btree_iter_next(iter));)
+#define for_each_key_filter(b, k, stack_iter, filter)                      \
+	for (bch_btree_iter_stack_init((b), (stack_iter), NULL);           \
+	     ((k) = bch_btree_iter_next_filter(&((stack_iter)->iter), (b), \
+					       filter));)
+
+#define for_each_key(b, k, stack_iter)                           \
+	for (bch_btree_iter_stack_init((b), (stack_iter), NULL); \
+	     ((k) = bch_btree_iter_next(&((stack_iter)->iter)));)
 
 /* Sorting */
 
--- a/drivers/md/bcache/btree.c
+++ b/drivers/md/bcache/btree.c
@@ -1304,7 +1304,7 @@ static bool btree_gc_mark_node(struct bt
 	uint8_t stale = 0;
 	unsigned int keys = 0, good_keys = 0;
 	struct bkey *k;
-	struct btree_iter iter;
+	struct btree_iter_stack iter;
 	struct bset_tree *t;
 
 	gc->nodes++;
@@ -1565,7 +1565,7 @@ static int btree_gc_rewrite_node(struct
 static unsigned int btree_gc_count_keys(struct btree *b)
 {
 	struct bkey *k;
-	struct btree_iter iter;
+	struct btree_iter_stack iter;
 	unsigned int ret = 0;
 
 	for_each_key_filter(&b->keys, k, &iter, bch_ptr_bad)
@@ -1606,17 +1606,18 @@ static int btree_gc_recurse(struct btree
 	int ret = 0;
 	bool should_rewrite;
 	struct bkey *k;
-	struct btree_iter iter;
+	struct btree_iter_stack iter;
 	struct gc_merge_info r[GC_MERGE_NODES];
 	struct gc_merge_info *i, *last = r + ARRAY_SIZE(r) - 1;
 
-	bch_btree_iter_init(&b->keys, &iter, &b->c->gc_done);
+	bch_btree_iter_stack_init(&b->keys, &iter, &b->c->gc_done);
 
 	for (i = r; i < r + ARRAY_SIZE(r); i++)
 		i->b = ERR_PTR(-EINTR);
 
 	while (1) {
-		k = bch_btree_iter_next_filter(&iter, &b->keys, bch_ptr_bad);
+		k = bch_btree_iter_next_filter(&iter.iter, &b->keys,
+					       bch_ptr_bad);
 		if (k) {
 			r->b = bch_btree_node_get(b->c, op, k, b->level - 1,
 						  true, b);
@@ -1906,7 +1907,7 @@ static int bch_btree_check_recurse(struc
 {
 	int ret = 0;
 	struct bkey *k, *p = NULL;
-	struct btree_iter iter;
+	struct btree_iter_stack iter;
 
 	for_each_key_filter(&b->keys, k, &iter, bch_ptr_invalid)
 		bch_initial_mark_key(b->c, b->level, k);
@@ -1914,10 +1915,10 @@ static int bch_btree_check_recurse(struc
 	bch_initial_mark_key(b->c, b->level + 1, &b->key);
 
 	if (b->level) {
-		bch_btree_iter_init(&b->keys, &iter, NULL);
+		bch_btree_iter_stack_init(&b->keys, &iter, NULL);
 
 		do {
-			k = bch_btree_iter_next_filter(&iter, &b->keys,
+			k = bch_btree_iter_next_filter(&iter.iter, &b->keys,
 						       bch_ptr_bad);
 			if (k) {
 				btree_node_prefetch(b, k);
@@ -1945,7 +1946,7 @@ static int bch_btree_check_thread(void *
 	struct btree_check_info *info = arg;
 	struct btree_check_state *check_state = info->state;
 	struct cache_set *c = check_state->c;
-	struct btree_iter iter;
+	struct btree_iter_stack iter;
 	struct bkey *k, *p;
 	int cur_idx, prev_idx, skip_nr;
 
@@ -1954,8 +1955,8 @@ static int bch_btree_check_thread(void *
 	ret = 0;
 
 	/* root node keys are checked before thread created */
-	bch_btree_iter_init(&c->root->keys, &iter, NULL);
-	k = bch_btree_iter_next_filter(&iter, &c->root->keys, bch_ptr_bad);
+	bch_btree_iter_stack_init(&c->root->keys, &iter, NULL);
+	k = bch_btree_iter_next_filter(&iter.iter, &c->root->keys, bch_ptr_bad);
 	BUG_ON(!k);
 
 	p = k;
@@ -1973,7 +1974,7 @@ static int bch_btree_check_thread(void *
 		skip_nr = cur_idx - prev_idx;
 
 		while (skip_nr) {
-			k = bch_btree_iter_next_filter(&iter,
+			k = bch_btree_iter_next_filter(&iter.iter,
 						       &c->root->keys,
 						       bch_ptr_bad);
 			if (k)
@@ -2046,7 +2047,7 @@ int bch_btree_check(struct cache_set *c)
 	int ret = 0;
 	int i;
 	struct bkey *k = NULL;
-	struct btree_iter iter;
+	struct btree_iter_stack iter;
 	struct btree_check_state check_state;
 
 	/* check and mark root node keys */
@@ -2542,11 +2543,11 @@ static int bch_btree_map_nodes_recurse(s
 
 	if (b->level) {
 		struct bkey *k;
-		struct btree_iter iter;
+		struct btree_iter_stack iter;
 
-		bch_btree_iter_init(&b->keys, &iter, from);
+		bch_btree_iter_stack_init(&b->keys, &iter, from);
 
-		while ((k = bch_btree_iter_next_filter(&iter, &b->keys,
+		while ((k = bch_btree_iter_next_filter(&iter.iter, &b->keys,
 						       bch_ptr_bad))) {
 			ret = bcache_btree(map_nodes_recurse, k, b,
 				    op, from, fn, flags);
@@ -2575,11 +2576,12 @@ int bch_btree_map_keys_recurse(struct bt
 {
 	int ret = MAP_CONTINUE;
 	struct bkey *k;
-	struct btree_iter iter;
+	struct btree_iter_stack iter;
 
-	bch_btree_iter_init(&b->keys, &iter, from);
+	bch_btree_iter_stack_init(&b->keys, &iter, from);
 
-	while ((k = bch_btree_iter_next_filter(&iter, &b->keys, bch_ptr_bad))) {
+	while ((k = bch_btree_iter_next_filter(&iter.iter, &b->keys,
+					       bch_ptr_bad))) {
 		ret = !b->level
 			? fn(op, b, k)
 			: bcache_btree(map_keys_recurse, k,
--- a/drivers/md/bcache/super.c
+++ b/drivers/md/bcache/super.c
@@ -1913,8 +1913,9 @@ struct cache_set *bch_cache_set_alloc(st
 	INIT_LIST_HEAD(&c->btree_cache_freed);
 	INIT_LIST_HEAD(&c->data_buckets);
 
-	iter_size = ((meta_bucket_pages(sb) * PAGE_SECTORS) / sb->block_size + 1) *
-		sizeof(struct btree_iter_set);
+	iter_size = sizeof(struct btree_iter) +
+		    ((meta_bucket_pages(sb) * PAGE_SECTORS) / sb->block_size) *
+			    sizeof(struct btree_iter_set);
 
 	c->devices = kcalloc(c->nr_uuids, sizeof(void *), GFP_KERNEL);
 	if (!c->devices)
--- a/drivers/md/bcache/sysfs.c
+++ b/drivers/md/bcache/sysfs.c
@@ -660,7 +660,7 @@ static unsigned int bch_root_usage(struc
 	unsigned int bytes = 0;
 	struct bkey *k;
 	struct btree *b;
-	struct btree_iter iter;
+	struct btree_iter_stack iter;
 
 	goto lock_root;
 
--- a/drivers/md/bcache/writeback.c
+++ b/drivers/md/bcache/writeback.c
@@ -908,15 +908,15 @@ static int bch_dirty_init_thread(void *a
 	struct dirty_init_thrd_info *info = arg;
 	struct bch_dirty_init_state *state = info->state;
 	struct cache_set *c = state->c;
-	struct btree_iter iter;
+	struct btree_iter_stack iter;
 	struct bkey *k, *p;
 	int cur_idx, prev_idx, skip_nr;
 
 	k = p = NULL;
 	prev_idx = 0;
 
-	bch_btree_iter_init(&c->root->keys, &iter, NULL);
-	k = bch_btree_iter_next_filter(&iter, &c->root->keys, bch_ptr_bad);
+	bch_btree_iter_stack_init(&c->root->keys, &iter, NULL);
+	k = bch_btree_iter_next_filter(&iter.iter, &c->root->keys, bch_ptr_bad);
 	BUG_ON(!k);
 
 	p = k;
@@ -930,7 +930,7 @@ static int bch_dirty_init_thread(void *a
 		skip_nr = cur_idx - prev_idx;
 
 		while (skip_nr) {
-			k = bch_btree_iter_next_filter(&iter,
+			k = bch_btree_iter_next_filter(&iter.iter,
 						       &c->root->keys,
 						       bch_ptr_bad);
 			if (k)
@@ -979,7 +979,7 @@ void bch_sectors_dirty_init(struct bcach
 	int i;
 	struct btree *b = NULL;
 	struct bkey *k = NULL;
-	struct btree_iter iter;
+	struct btree_iter_stack iter;
 	struct sectors_dirty_init op;
 	struct cache_set *c = d->c;
 	struct bch_dirty_init_state state;



  parent reply	other threads:[~2024-06-13 12:05 UTC|newest]

Thread overview: 152+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-13 11:33 [PATCH 6.6 000/137] 6.6.34-rc1 review Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 001/137] drm/i915/hwmon: Get rid of devm Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 002/137] mmc: core: Do not force a retune before RPMB switch Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 003/137] afs: Dont cross .backup mountpoint from backup volume Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 004/137] net: sfp-bus: fix SFP mode detect from bitrate Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 005/137] riscv: signal: handle syscall restart before get_signal Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 006/137] mptcp: avoid some duplicate code in socket option handling Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 007/137] mptcp: cleanup SOL_TCP handling Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 008/137] mptcp: fix full TCP keep-alive support Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 009/137] erofs: avoid allocating DEFLATE streams before mounting Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 010/137] mm: ratelimit stat flush from workingset shrinker Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 011/137] vxlan: Fix regression when dropping packets due to invalid src addresses Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 012/137] selftests/net: synchronize udpgro tests tx and rx connection Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 013/137] selftests: net: included needed helper in the install targets Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 014/137] selftests: net: List helper scripts in TEST_FILES Makefile variable Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 015/137] drm/sun4i: hdmi: Convert encoder to atomic Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 016/137] drm/sun4i: hdmi: Move mode_set into enable Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 017/137] f2fs: fix to do sanity check on i_xattr_nid in sanity_check_inode() Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 018/137] media: lgdt3306a: Add a check against null-pointer-def Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 019/137] drm/amdgpu: add error handle to avoid out-of-bounds Greg Kroah-Hartman
2024-06-13 11:33 ` Greg Kroah-Hartman [this message]
2024-06-13 11:33 ` [PATCH 6.6 021/137] wifi: rtw89: correct aSIFSTime for 6GHz band Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 022/137] ata: pata_legacy: make legacy_exit() work again Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 023/137] fsverity: use register_sysctl_init() to avoid kmemleak warning Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 024/137] proc: Move fdinfo PTRACE_MODE_READ check into the inode .permission operation Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 025/137] platform/chrome: cros_ec: Handle events during suspend after resume completion Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 026/137] thermal/drivers/qcom/lmh: Check for SCM availability at probe Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 027/137] soc: qcom: rpmh-rsc: Enhance check for VRM in-flight request Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 028/137] ACPI: resource: Do IRQ override on TongFang GXxHRXx and GMxHGxx Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 029/137] arm64: tegra: Correct Tegra132 I2C alias Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 030/137] arm64: dts: qcom: qcs404: fix bluetooth device address Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 031/137] md/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 032/137] wifi: rtw89: pci: correct TX resource checking for PCI DMA channel of firmware command Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 033/137] wifi: rtl8xxxu: Fix the TX power of RTL8192CU, RTL8723AU Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 034/137] wifi: rtlwifi: rtl8192de: Fix 5 GHz TX power Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 035/137] wifi: rtlwifi: rtl8192de: Fix low speed with WPA3-SAE Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 036/137] wifi: rtlwifi: rtl8192de: Fix endianness issue in RX path Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 037/137] arm64: dts: qcom: sc8280xp: add missing PCIe minimum OPP Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 038/137] arm64: dts: hi3798cv200: fix the size of GICR Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 039/137] arm64: dts: ti: verdin-am62: Set memory size to 2gb Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 040/137] media: mc: Fix graph walk in media_pipeline_start Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 041/137] media: mc: mark the media devnode as registered from the, start Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 042/137] media: mxl5xx: Move xpt structures off stack Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 043/137] media: v4l2-core: hold videodev_lock until dev reg, finishes Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 044/137] media: v4l: async: Properly re-initialise notifier entry in unregister Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 045/137] media: v4l: async: Dont set notifiers V4L2 device if registering fails Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 046/137] media: v4l: async: Fix notifier list entry init Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 047/137] mmc: davinci: Dont strip remove function when driver is builtin Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 048/137] mmc: core: Add mmc_gpiod_set_cd_config() function Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 049/137] mmc: sdhci: Add support for "Tuning Error" interrupts Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 050/137] mmc: sdhci-acpi: Sort DMI quirks alphabetically Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 051/137] mmc: sdhci-acpi: Fix Lenovo Yoga Tablet 2 Pro 1380 sdcard slot not working Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 052/137] mmc: sdhci-acpi: Disable write protect detection on Toshiba WT10-A Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 053/137] mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO on Asus T100TA Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 054/137] drm/fbdev-generic: Do not set physical framebuffer address Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 055/137] fbdev: savage: Handle err return when savagefb_check_var failed Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 056/137] drm/amdgpu/atomfirmware: add intergrated info v2.3 table Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 057/137] 9p: add missing locking around taking dentry fid list Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 058/137] drm/amd: Fix shutdown (again) on some SMU v13.0.4/11 platforms Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.6 059/137] Revert "drm/amdkfd: fix gfx_target_version for certain 11.0.3 devices" Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 060/137] KVM: SVM: WARN on vNMI + NMI window iff NMIs are outright masked Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 061/137] KVM: arm64: Fix AArch32 register narrowing on userspace write Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 062/137] KVM: arm64: Allow AArch32 PSTATE.M to be restored as System mode Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 063/137] KVM: arm64: AArch32: Fix spurious trapping of conditional instructions Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 064/137] LoongArch: Add all CPUs enabled by fdt to NUMA node 0 Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 065/137] LoongArch: Override higher address bits in JUMP_VIRT_ADDR Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 066/137] clk: bcm: dvp: Assign ->num before accessing ->hws Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 067/137] clk: bcm: rpi: " Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 068/137] clk: qcom: clk-alpha-pll: fix rate setting for Stromer PLLs Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 069/137] crypto: ecdsa - Fix module auto-load on add-key Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 070/137] crypto: ecrdsa - Fix module auto-load on add_key Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 071/137] crypto: qat - Fix ADF_DEV_RESET_SYNC memory leak Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 072/137] kbuild: Remove support for Clangs ThinLTO caching Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 073/137] mm: fix race between __split_huge_pmd_locked() and GUP-fast Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 074/137] filemap: add helper mapping_max_folio_size() Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 075/137] iomap: fault in smaller chunks for non-large folio mappings Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 076/137] i2c: acpi: Unbind mux adapters before delete Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 077/137] HID: i2c-hid: elan: fix reset suspend current leakage Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 078/137] scsi: core: Handle devices which return an unusually large VPD page count Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 079/137] net/ipv6: Fix route deleting failure when metric equals 0 Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 080/137] net/9p: fix uninit-value in p9_client_rpc() Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 081/137] mm/ksm: fix ksm_pages_scanned accounting Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 082/137] mm/ksm: fix ksm_zero_pages accounting Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 083/137] kmsan: do not wipe out origin when doing partial unpoisoning Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 084/137] tpm_tis: Do *not* flush uninitialized work Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 085/137] cpufreq: amd-pstate: Fix the inconsistency in max frequency units Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 086/137] intel_th: pci: Add Meteor Lake-S CPU support Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 087/137] rtla/timerlat: Fix histogram report when a cpu count is 0 Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 088/137] sparc64: Fix number of online CPUs Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 089/137] mm/cma: drop incorrect alignment check in cma_init_reserved_mem Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 090/137] mm/hugetlb: pass correct order_per_bit to cma_declare_contiguous_nid Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 091/137] mm: /proc/pid/smaps_rollup: avoid skipping vma after getting mmap_lock again Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 092/137] mm/vmalloc: fix vmalloc which may return null if called with __GFP_NOFAIL Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 093/137] selftests/mm: compaction_test: fix incorrect write of zero to nr_hugepages Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 094/137] selftests/mm: fix build warnings on ppc64 Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 095/137] watchdog: rti_wdt: Set min_hw_heartbeat_ms to accommodate a safety margin Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 096/137] bonding: fix oops during rmmod Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 097/137] wifi: ath10k: fix QCOM_RPROC_COMMON dependency Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 098/137] kdb: Fix buffer overflow during tab-complete Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 099/137] kdb: Use format-strings rather than \0 injection in kdb_read() Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 100/137] kdb: Fix console handling when editing and tab-completing commands Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 101/137] kdb: Merge identical case statements in kdb_read() Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 102/137] kdb: Use format-specifiers rather than memset() for padding " Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 103/137] net: fix __dst_negative_advice() race Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 104/137] e1000e: move force SMBUS near the end of enable_ulp function Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 105/137] sparc: move struct termio to asm/termios.h Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 106/137] drm/amdkfd: handle duplicate BOs in reserve_bo_and_cond_vms Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 107/137] ext4: Fixes len calculation in mpage_journal_page_buffers Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 108/137] ext4: set type of ac_groups_linear_remaining to __u32 to avoid overflow Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 109/137] ext4: fix mb_cache_entrys e_refcnt leak in ext4_xattr_block_cache_find() Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 110/137] riscv: dts: starfive: Remove PMIC interrupt info for Visionfive 2 board Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 111/137] ARM: dts: samsung: smdkv310: fix keypad no-autorepeat Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 112/137] ARM: dts: samsung: smdk4412: " Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 113/137] ARM: dts: samsung: exynos4412-origen: " Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 114/137] parisc: Define HAVE_ARCH_HUGETLB_UNMAPPED_AREA Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 115/137] parisc: Define sigset_t in parisc uapi header Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 116/137] s390/ap: Fix crash in AP internal function modify_bitmap() Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 117/137] s390/cpacf: Split and rework cpacf query functions Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 118/137] s390/cpacf: Make use of invalid opcode produce a link error Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.6 119/137] i3c: master: svc: fix invalidate IBI type and miss call client IBI handler Greg Kroah-Hartman
2024-06-13 11:35 ` [PATCH 6.6 120/137] genirq/irqdesc: Prevent use-after-free in irq_find_at_or_after() Greg Kroah-Hartman
2024-06-13 11:35 ` [PATCH 6.6 121/137] ASoC: SOF: ipc4-topology: Fix input format query of process modules without base extension Greg Kroah-Hartman
2024-06-13 11:35 ` [PATCH 6.6 122/137] ALSA: ump: Dont clear bank selection after sending a program change Greg Kroah-Hartman
2024-06-13 11:35 ` [PATCH 6.6 123/137] ALSA: ump: Dont accept an invalid UMP protocol number Greg Kroah-Hartman
2024-06-13 11:35 ` [PATCH 6.6 124/137] EDAC/amd64: Convert PCIBIOS_* return codes to errnos Greg Kroah-Hartman
2024-06-13 11:35 ` [PATCH 6.6 125/137] EDAC/igen6: " Greg Kroah-Hartman
2024-06-13 11:35 ` [PATCH 6.6 126/137] nfs: fix undefined behavior in nfs_block_bits() Greg Kroah-Hartman
2024-06-13 11:35 ` [PATCH 6.6 127/137] NFS: Fix READ_PLUS when server doesnt support OP_READ_PLUS Greg Kroah-Hartman
2024-06-13 11:35 ` [PATCH 6.6 128/137] eventfs: Fix a possible null pointer dereference in eventfs_find_events() Greg Kroah-Hartman
2024-06-13 11:35 ` [PATCH 6.6 129/137] eventfs: Keep the directories from having the same inode number as files Greg Kroah-Hartman
2024-06-13 11:35 ` [PATCH 6.6 130/137] tracefs: Clear EVENT_INODE flag in tracefs_drop_inode() Greg Kroah-Hartman
2024-06-13 11:35 ` [PATCH 6.6 131/137] btrfs: fix crash on racing fsync and size-extending write into prealloc Greg Kroah-Hartman
2024-06-13 11:35 ` [PATCH 6.6 132/137] btrfs: fix leak of qgroup extent records after transaction abort Greg Kroah-Hartman
2024-06-13 11:35 ` [PATCH 6.6 133/137] ALSA: seq: Fix incorrect UMP type for system messages Greg Kroah-Hartman
2024-06-13 11:35 ` [PATCH 6.6 134/137] powerpc/64/bpf: fix tail calls for PCREL addressing Greg Kroah-Hartman
2024-06-13 11:35 ` [PATCH 6.6 135/137] powerpc/bpf: enforce full ordering for ATOMIC operations with BPF_FETCH Greg Kroah-Hartman
2024-06-13 11:35 ` [PATCH 6.6 136/137] smb: client: fix deadlock in smb2_find_smb_tcon() Greg Kroah-Hartman
2024-06-13 11:35 ` [PATCH 6.6 137/137] selftests: net: more strict check in net_helper Greg Kroah-Hartman
2024-06-13 14:45 ` [PATCH 6.6 000/137] 6.6.34-rc1 review Naresh Kamboju
2024-06-14  9:15   ` Naresh Kamboju
2024-06-14  9:36     ` Puranjay Mohan
2024-06-15 11:10       ` Greg Kroah-Hartman
2024-06-13 14:47 ` Takeshi Ogasawara
2024-06-13 16:50 ` SeongJae Park
2024-06-14  8:39 ` Naresh Kamboju
2024-06-14 11:48 ` Ron Economos
2024-06-14 14:14 ` Mark Brown
2024-06-14 17:03 ` Jon Hunter
2024-06-14 19:02 ` Harshit Mogalapalli
2024-06-15  0:56 ` Peter Schneider
2024-06-15  2:09 ` Shuah Khan
2024-06-16 13:38 ` Florian Fainelli

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=20240613113224.074262708@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=axboe@kernel.dk \
    --cc=colyli@suse.de \
    --cc=matthew@mm12.xyz \
    --cc=patches@lists.linux.dev \
    --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