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.9 011/157] bcache: fix variable length array abuse in btree_iter
Date: Thu, 13 Jun 2024 13:32:16 +0200	[thread overview]
Message-ID: <20240613113227.840047167@linuxfoundation.org> (raw)
In-Reply-To: <20240613113227.389465891@linuxfoundation.org>

6.9-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
@@ -1309,7 +1309,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++;
@@ -1570,7 +1570,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)
@@ -1611,17 +1611,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);
@@ -1911,7 +1912,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);
@@ -1919,10 +1920,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);
@@ -1950,7 +1951,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;
 
@@ -1959,8 +1960,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;
@@ -1978,7 +1979,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)
@@ -2051,7 +2052,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 */
@@ -2547,11 +2548,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);
@@ -2580,11 +2581,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
@@ -1914,8 +1914,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 11:47 UTC|newest]

Thread overview: 168+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-13 11:32 [PATCH 6.9 000/157] 6.9.5-rc1 review Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 001/157] drm/amdkfd: handle duplicate BOs in reserve_bo_and_cond_vms Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 002/157] drm/i915/hwmon: Get rid of devm Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 003/157] afs: Dont cross .backup mountpoint from backup volume Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 004/157] erofs: avoid allocating DEFLATE streams before mounting Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 005/157] x86/topology/amd: Evaluate SMT in CPUID leaf 0x8000001e only on family 0x17 and greater Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 006/157] vxlan: Fix regression when dropping packets due to invalid src addresses Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 007/157] f2fs: fix to do sanity check on i_xattr_nid in sanity_check_inode() Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 008/157] media: lgdt3306a: Add a check against null-pointer-def Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 009/157] drm/amdgpu: add error handle to avoid out-of-bounds Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 010/157] drm/xe/bb: assert width in xe_bb_create_job() Greg Kroah-Hartman
2024-06-13 11:32 ` Greg Kroah-Hartman [this message]
2024-06-13 11:32 ` [PATCH 6.9 012/157] crypto: starfive - Do not free stack buffer Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 013/157] btrfs: qgroup: fix initialization of auto inherit array Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 014/157] wifi: rtw89: correct aSIFSTime for 6GHz band Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 015/157] ata: pata_legacy: make legacy_exit() work again Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 016/157] fsverity: use register_sysctl_init() to avoid kmemleak warning Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 017/157] proc: Move fdinfo PTRACE_MODE_READ check into the inode .permission operation Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 018/157] platform/chrome: cros_ec: Handle events during suspend after resume completion Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 019/157] thermal/drivers/qcom/lmh: Check for SCM availability at probe Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 020/157] soc: qcom: rpmh-rsc: Enhance check for VRM in-flight request Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 021/157] ACPI: resource: Do IRQ override on TongFang GXxHRXx and GMxHGxx Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 022/157] arm64: tegra: Correct Tegra132 I2C alias Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 023/157] arm64: dts: qcom: qcs404: fix bluetooth device address Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 024/157] md/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 025/157] wifi: rtw89: pci: correct TX resource checking for PCI DMA channel of firmware command Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 026/157] wifi: rtl8xxxu: Fix the TX power of RTL8192CU, RTL8723AU Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 027/157] wifi: rtl8xxxu: enable MFP support with security flag of RX descriptor Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 028/157] wifi: rtlwifi: rtl8192de: Fix 5 GHz TX power Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 029/157] wifi: rtlwifi: rtl8192de: Fix low speed with WPA3-SAE Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 030/157] wifi: rtlwifi: rtl8192de: Fix endianness issue in RX path Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 031/157] arm64: dts: qcom: sc8280xp: add missing PCIe minimum OPP Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 032/157] arm64: dts: hi3798cv200: fix the size of GICR Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 033/157] arm64: dts: ti: verdin-am62: Set memory size to 2gb Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 034/157] media: mgb4: Fix double debugfs remove Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 035/157] media: mc: Fix graph walk in media_pipeline_start Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 036/157] media: mc: mark the media devnode as registered from the, start Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 037/157] media: mxl5xx: Move xpt structures off stack Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 038/157] media: v4l2-core: hold videodev_lock until dev reg, finishes Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 039/157] media: ov2740: Fix LINK_FREQ and PIXEL_RATE control value reporting Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 040/157] media: v4l: async: Properly re-initialise notifier entry in unregister Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 041/157] media: v4l: async: Dont set notifiers V4L2 device if registering fails Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 042/157] media: v4l: async: Fix notifier list entry init Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 043/157] mmc: davinci: Dont strip remove function when driver is builtin Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 044/157] mmc: core: Add mmc_gpiod_set_cd_config() function Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 045/157] mmc: sdhci: Add support for "Tuning Error" interrupts Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 046/157] mmc: sdhci-acpi: Sort DMI quirks alphabetically Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 047/157] mmc: sdhci-acpi: Fix Lenovo Yoga Tablet 2 Pro 1380 sdcard slot not working Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 048/157] mmc: sdhci-acpi: Disable write protect detection on Toshiba WT10-A Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 049/157] mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO on Asus T100TA Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 050/157] drm/fbdev-generic: Do not set physical framebuffer address Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 051/157] fbdev: savage: Handle err return when savagefb_check_var failed Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 052/157] firmware: qcom_scm: disable clocks if qcom_scm_bw_enable() fails Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 053/157] drm/amdgpu/atomfirmware: add intergrated info v2.3 table Greg Kroah-Hartman
2024-06-13 11:32 ` [PATCH 6.9 054/157] 9p: add missing locking around taking dentry fid list Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 055/157] drm/amd: Fix shutdown (again) on some SMU v13.0.4/11 platforms Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 056/157] Revert "drm/amdkfd: fix gfx_target_version for certain 11.0.3 devices" Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 057/157] KVM: SVM: WARN on vNMI + NMI window iff NMIs are outright masked Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 058/157] KVM: arm64: Fix AArch32 register narrowing on userspace write Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 059/157] KVM: arm64: Allow AArch32 PSTATE.M to be restored as System mode Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 060/157] KVM: arm64: AArch32: Fix spurious trapping of conditional instructions Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 061/157] LoongArch: Add all CPUs enabled by fdt to NUMA node 0 Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 062/157] LoongArch: Fix built-in DTB detection Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 063/157] LoongArch: Override higher address bits in JUMP_VIRT_ADDR Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 064/157] LoongArch: Fix entry point in kernel image header Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 065/157] clk: bcm: dvp: Assign ->num before accessing ->hws Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 066/157] clk: bcm: rpi: " Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 067/157] clk: qcom: clk-alpha-pll: fix rate setting for Stromer PLLs Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 068/157] clk: qcom: apss-ipq-pll: use stromer ops for IPQ5018 to fix boot failure Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 069/157] crypto: ecdsa - Fix module auto-load on add-key Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 070/157] crypto: ecrdsa - Fix module auto-load on add_key Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 071/157] crypto: qat - Fix ADF_DEV_RESET_SYNC memory leak Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 072/157] kbuild: Remove support for Clangs ThinLTO caching Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 073/157] mm: fix race between __split_huge_pmd_locked() and GUP-fast Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 074/157] io_uring/napi: fix timeout calculation Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 075/157] io_uring: check for non-NULL file pointer in io_file_can_poll() Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 076/157] filemap: add helper mapping_max_folio_size() Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 077/157] iomap: fault in smaller chunks for non-large folio mappings Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 078/157] ACPI: APEI: EINJ: Fix einj_dev release leak Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 079/157] i2c: acpi: Unbind mux adapters before delete Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 080/157] HID: i2c-hid: elan: fix reset suspend current leakage Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 081/157] scsi: core: Handle devices which return an unusually large VPD page count Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 082/157] net/ipv6: Fix route deleting failure when metric equals 0 Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 083/157] net/9p: fix uninit-value in p9_client_rpc() Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 084/157] net/tcp: Dont consider TCP_CLOSE in TCP_AO_ESTABLISHED Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 085/157] selftests: net: lib: support errexit with busywait Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 086/157] selftests: net: lib: avoid error removing empty netns name Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 087/157] mm/ksm: fix ksm_pages_scanned accounting Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 088/157] mm/ksm: fix ksm_zero_pages accounting Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 089/157] kmsan: do not wipe out origin when doing partial unpoisoning Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 090/157] tpm_tis: Do *not* flush uninitialized work Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 091/157] cpufreq: amd-pstate: Fix the inconsistency in max frequency units Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 092/157] intel_th: pci: Add Meteor Lake-S CPU support Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 093/157] rtla/timerlat: Fix histogram report when a cpu count is 0 Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 094/157] sparc64: Fix number of online CPUs Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 095/157] mm/hugetlb: do not call vma_add_reservation upon ENOMEM Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 096/157] mm/cma: drop incorrect alignment check in cma_init_reserved_mem Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 097/157] mm/hugetlb: pass correct order_per_bit to cma_declare_contiguous_nid Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 098/157] mm: /proc/pid/smaps_rollup: avoid skipping vma after getting mmap_lock again Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 099/157] mm/memory-failure: fix handling of dissolved but not taken off from buddy pages Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 100/157] mm/vmalloc: fix vmalloc which may return null if called with __GFP_NOFAIL Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 101/157] selftests/mm: compaction_test: fix incorrect write of zero to nr_hugepages Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 102/157] selftests/mm: fix build warnings on ppc64 Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 103/157] selftests/mm: compaction_test: fix bogus test success on Aarch64 Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 104/157] watchdog: rti_wdt: Set min_hw_heartbeat_ms to accommodate a safety margin Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 105/157] bonding: fix oops during rmmod Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 106/157] irqchip/riscv-intc: Prevent memory leak when riscv_intc_init_common() fails Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 107/157] wifi: ath10k: fix QCOM_RPROC_COMMON dependency Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 108/157] kdb: Fix buffer overflow during tab-complete Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 109/157] kdb: Use format-strings rather than \0 injection in kdb_read() Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 110/157] kdb: Fix console handling when editing and tab-completing commands Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 111/157] kdb: Merge identical case statements in kdb_read() Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 112/157] kdb: Use format-specifiers rather than memset() for padding " Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 113/157] Revert "xsk: Support redirect to any socket bound to the same umem" Greg Kroah-Hartman
2024-06-13 11:33 ` [PATCH 6.9 114/157] Revert "xsk: Document ability to " Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 115/157] Revert "perf record: Reduce memory for recording PERF_RECORD_LOST_SAMPLES event" Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 116/157] e1000e: move force SMBUS near the end of enable_ulp function Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 117/157] sparc: move struct termio to asm/termios.h Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 118/157] ext4: Fixes len calculation in mpage_journal_page_buffers Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 119/157] ext4: set type of ac_groups_linear_remaining to __u32 to avoid overflow Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 120/157] ext4: fix mb_cache_entrys e_refcnt leak in ext4_xattr_block_cache_find() Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 121/157] riscv: dts: starfive: Remove PMIC interrupt info for Visionfive 2 board Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 122/157] ARM: dts: samsung: smdkv310: fix keypad no-autorepeat Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 123/157] ARM: dts: samsung: smdk4412: " Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 124/157] ARM: dts: samsung: exynos4412-origen: " Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 125/157] parisc: Define HAVE_ARCH_HUGETLB_UNMAPPED_AREA Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 126/157] parisc: Define sigset_t in parisc uapi header Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 127/157] s390/ap: Fix crash in AP internal function modify_bitmap() Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 128/157] s390/cpacf: Split and rework cpacf query functions Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 129/157] s390/cpacf: Make use of invalid opcode produce a link error Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 130/157] i3c: master: svc: fix invalidate IBI type and miss call client IBI handler Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 131/157] genirq/irqdesc: Prevent use-after-free in irq_find_at_or_after() Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 132/157] hwmon: (ltc2992) Fix memory leak in ltc2992_parse_dt() Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 133/157] riscv: enable HAVE_ARCH_HUGE_VMAP for XIP kernel Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 134/157] ASoC: SOF: ipc4-topology: Fix input format query of process modules without base extension Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 135/157] ALSA: ump: Dont clear bank selection after sending a program change Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 136/157] ALSA: ump: Dont accept an invalid UMP protocol number Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 137/157] EDAC/amd64: Convert PCIBIOS_* return codes to errnos Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 138/157] EDAC/igen6: " Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 139/157] cifs: fix creating sockets when using sfu mount options Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 140/157] nfs: fix undefined behavior in nfs_block_bits() Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 141/157] NFS: Fix READ_PLUS when server doesnt support OP_READ_PLUS Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 142/157] eventfs: Fix a possible null pointer dereference in eventfs_find_events() Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 143/157] eventfs: Keep the directories from having the same inode number as files Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 144/157] tracefs: Clear EVENT_INODE flag in tracefs_drop_inode() Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 145/157] btrfs: qgroup: update rescan message levels and error codes Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 146/157] btrfs: qgroup: fix qgroup id collision across mounts Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 147/157] btrfs: protect folio::private when attaching extent buffer folios Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 148/157] btrfs: fix crash on racing fsync and size-extending write into prealloc Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 149/157] btrfs: fix leak of qgroup extent records after transaction abort Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 150/157] btrfs: re-introduce norecovery mount option Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 151/157] ALSA: seq: Fix incorrect UMP type for system messages Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 152/157] bpf: fix multi-uprobe PID filtering logic Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 153/157] powerpc/64/bpf: fix tail calls for PCREL addressing Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 154/157] powerpc/bpf: enforce full ordering for ATOMIC operations with BPF_FETCH Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 155/157] nilfs2: fix potential kernel bug due to lack of writeback flag waiting Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 156/157] nilfs2: fix nilfs_empty_dir() misjudgment and long loop on I/O errors Greg Kroah-Hartman
2024-06-13 11:34 ` [PATCH 6.9 157/157] smb: client: fix deadlock in smb2_find_smb_tcon() Greg Kroah-Hartman
2024-06-13 16:51 ` [PATCH 6.9 000/157] 6.9.5-rc1 review SeongJae Park
2024-06-14  1:44 ` Bagas Sanjaya
2024-06-14  6:14 ` Naresh Kamboju
2024-06-14  9:38 ` Pavel Machek
2024-06-14 11:44 ` Ron Economos
2024-06-14 14:13 ` Mark Brown
2024-06-14 17:04 ` Jon Hunter
2024-06-15  1:59 ` Peter Schneider
2024-06-15  2:09 ` Shuah Khan
2024-06-16 13:51 ` 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=20240613113227.840047167@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