stable.vger.kernel.org archive mirror
 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, Suren Baghdasaryan <surenb@google.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>
Subject: [PATCH 6.2 172/173] maple_tree: add RCU lock checking to rcu callback functions
Date: Wed, 12 Apr 2023 10:34:58 +0200	[thread overview]
Message-ID: <20230412082845.130475784@linuxfoundation.org> (raw)
In-Reply-To: <20230412082838.125271466@linuxfoundation.org>

From: "Liam R. Howlett" <Liam.Howlett@Oracle.com>

commit 790e1fa86b340c2bd4a327e01c161f7a1ad885f6 upstream.

Dereferencing RCU objects within the RCU callback without the RCU check
has caused lockdep to complain.  Fix the RCU dereferencing by using the
RCU callback lock to ensure the operation is safe.

Also stop creating a new lock to use for dereferencing during destruction
of the tree or subtree.  Instead, pass through a pointer to the tree that
has the lock that is held for RCU dereferencing checking.  It also does
not make sense to use the maple state in the freeing scenario as the tree
walk is a special case where the tree no longer has the normal encodings
and parent pointers.

Link: https://lkml.kernel.org/r/20230227173632.3292573-8-surenb@google.com
Fixes: 54a611b60590 ("Maple Tree: add new data structure")
Cc: stable@vger.kernel.org
Reported-by: Suren Baghdasaryan <surenb@google.com>
Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 lib/maple_tree.c |  188 ++++++++++++++++++++++++++++---------------------------
 1 file changed, 96 insertions(+), 92 deletions(-)

--- a/lib/maple_tree.c
+++ b/lib/maple_tree.c
@@ -819,6 +819,11 @@ static inline void *mt_slot(const struct
 	return rcu_dereference_check(slots[offset], mt_locked(mt));
 }
 
+static inline void *mt_slot_locked(struct maple_tree *mt, void __rcu **slots,
+				   unsigned char offset)
+{
+	return rcu_dereference_protected(slots[offset], mt_locked(mt));
+}
 /*
  * mas_slot_locked() - Get the slot value when holding the maple tree lock.
  * @mas: The maple state
@@ -830,7 +835,7 @@ static inline void *mt_slot(const struct
 static inline void *mas_slot_locked(struct ma_state *mas, void __rcu **slots,
 				       unsigned char offset)
 {
-	return rcu_dereference_protected(slots[offset], mt_locked(mas->tree));
+	return mt_slot_locked(mas->tree, slots, offset);
 }
 
 /*
@@ -902,34 +907,35 @@ static inline void ma_set_meta(struct ma
 }
 
 /*
- * mas_clear_meta() - clear the metadata information of a node, if it exists
- * @mas: The maple state
+ * mt_clear_meta() - clear the metadata information of a node, if it exists
+ * @mt: The maple tree
  * @mn: The maple node
- * @mt: The maple node type
+ * @type: The maple node type
  * @offset: The offset of the highest sub-gap in this node.
  * @end: The end of the data in this node.
  */
-static inline void mas_clear_meta(struct ma_state *mas, struct maple_node *mn,
-				  enum maple_type mt)
+static inline void mt_clear_meta(struct maple_tree *mt, struct maple_node *mn,
+				  enum maple_type type)
 {
 	struct maple_metadata *meta;
 	unsigned long *pivots;
 	void __rcu **slots;
 	void *next;
 
-	switch (mt) {
+	switch (type) {
 	case maple_range_64:
 		pivots = mn->mr64.pivot;
 		if (unlikely(pivots[MAPLE_RANGE64_SLOTS - 2])) {
 			slots = mn->mr64.slot;
-			next = mas_slot_locked(mas, slots,
-					       MAPLE_RANGE64_SLOTS - 1);
-			if (unlikely((mte_to_node(next) && mte_node_type(next))))
-				return; /* The last slot is a node, no metadata */
+			next = mt_slot_locked(mt, slots,
+					      MAPLE_RANGE64_SLOTS - 1);
+			if (unlikely((mte_to_node(next) &&
+				      mte_node_type(next))))
+				return; /* no metadata, could be node */
 		}
 		fallthrough;
 	case maple_arange_64:
-		meta = ma_meta(mn, mt);
+		meta = ma_meta(mn, type);
 		break;
 	default:
 		return;
@@ -5477,7 +5483,7 @@ no_gap:
 }
 
 /*
- * mas_dead_leaves() - Mark all leaves of a node as dead.
+ * mte_dead_leaves() - Mark all leaves of a node as dead.
  * @mas: The maple state
  * @slots: Pointer to the slot array
  * @type: The maple node type
@@ -5487,16 +5493,16 @@ no_gap:
  * Return: The number of leaves marked as dead.
  */
 static inline
-unsigned char mas_dead_leaves(struct ma_state *mas, void __rcu **slots,
-			      enum maple_type mt)
+unsigned char mte_dead_leaves(struct maple_enode *enode, struct maple_tree *mt,
+			      void __rcu **slots)
 {
 	struct maple_node *node;
 	enum maple_type type;
 	void *entry;
 	int offset;
 
-	for (offset = 0; offset < mt_slots[mt]; offset++) {
-		entry = mas_slot_locked(mas, slots, offset);
+	for (offset = 0; offset < mt_slot_count(enode); offset++) {
+		entry = mt_slot(mt, slots, offset);
 		type = mte_node_type(entry);
 		node = mte_to_node(entry);
 		/* Use both node and type to catch LE & BE metadata */
@@ -5511,162 +5517,160 @@ unsigned char mas_dead_leaves(struct ma_
 	return offset;
 }
 
-static void __rcu **mas_dead_walk(struct ma_state *mas, unsigned char offset)
+/**
+ * mte_dead_walk() - Walk down a dead tree to just before the leaves
+ * @enode: The maple encoded node
+ * @offset: The starting offset
+ *
+ * Note: This can only be used from the RCU callback context.
+ */
+static void __rcu **mte_dead_walk(struct maple_enode **enode, unsigned char offset)
 {
-	struct maple_node *next;
+	struct maple_node *node, *next;
 	void __rcu **slots = NULL;
 
-	next = mas_mn(mas);
+	next = mte_to_node(*enode);
 	do {
-		mas->node = mt_mk_node(next, next->type);
-		slots = ma_slots(next, next->type);
-		next = mas_slot_locked(mas, slots, offset);
+		*enode = ma_enode_ptr(next);
+		node = mte_to_node(*enode);
+		slots = ma_slots(node, node->type);
+		next = rcu_dereference_protected(slots[offset],
+					lock_is_held(&rcu_callback_map));
 		offset = 0;
 	} while (!ma_is_leaf(next->type));
 
 	return slots;
 }
 
+/**
+ * mt_free_walk() - Walk & free a tree in the RCU callback context
+ * @head: The RCU head that's within the node.
+ *
+ * Note: This can only be used from the RCU callback context.
+ */
 static void mt_free_walk(struct rcu_head *head)
 {
 	void __rcu **slots;
 	struct maple_node *node, *start;
-	struct maple_tree mt;
+	struct maple_enode *enode;
 	unsigned char offset;
 	enum maple_type type;
-	MA_STATE(mas, &mt, 0, 0);
 
 	node = container_of(head, struct maple_node, rcu);
 
 	if (ma_is_leaf(node->type))
 		goto free_leaf;
 
-	mt_init_flags(&mt, node->ma_flags);
-	mas_lock(&mas);
 	start = node;
-	mas.node = mt_mk_node(node, node->type);
-	slots = mas_dead_walk(&mas, 0);
-	node = mas_mn(&mas);
+	enode = mt_mk_node(node, node->type);
+	slots = mte_dead_walk(&enode, 0);
+	node = mte_to_node(enode);
 	do {
 		mt_free_bulk(node->slot_len, slots);
 		offset = node->parent_slot + 1;
-		mas.node = node->piv_parent;
-		if (mas_mn(&mas) == node)
-			goto start_slots_free;
-
-		type = mte_node_type(mas.node);
-		slots = ma_slots(mte_to_node(mas.node), type);
-		if ((offset < mt_slots[type]) && (slots[offset]))
-			slots = mas_dead_walk(&mas, offset);
-
-		node = mas_mn(&mas);
+		enode = node->piv_parent;
+		if (mte_to_node(enode) == node)
+			goto free_leaf;
+
+		type = mte_node_type(enode);
+		slots = ma_slots(mte_to_node(enode), type);
+		if ((offset < mt_slots[type]) &&
+		    rcu_dereference_protected(slots[offset],
+					      lock_is_held(&rcu_callback_map)))
+			slots = mte_dead_walk(&enode, offset);
+		node = mte_to_node(enode);
 	} while ((node != start) || (node->slot_len < offset));
 
 	slots = ma_slots(node, node->type);
 	mt_free_bulk(node->slot_len, slots);
 
-start_slots_free:
-	mas_unlock(&mas);
 free_leaf:
 	mt_free_rcu(&node->rcu);
 }
 
-static inline void __rcu **mas_destroy_descend(struct ma_state *mas,
-			struct maple_enode *prev, unsigned char offset)
+static inline void __rcu **mte_destroy_descend(struct maple_enode **enode,
+	struct maple_tree *mt, struct maple_enode *prev, unsigned char offset)
 {
 	struct maple_node *node;
-	struct maple_enode *next = mas->node;
+	struct maple_enode *next = *enode;
 	void __rcu **slots = NULL;
+	enum maple_type type;
+	unsigned char next_offset = 0;
 
 	do {
-		mas->node = next;
-		node = mas_mn(mas);
-		slots = ma_slots(node, mte_node_type(mas->node));
-		next = mas_slot_locked(mas, slots, 0);
-		if ((mte_dead_node(next))) {
-			mte_to_node(next)->type = mte_node_type(next);
-			next = mas_slot_locked(mas, slots, 1);
-		}
+		*enode = next;
+		node = mte_to_node(*enode);
+		type = mte_node_type(*enode);
+		slots = ma_slots(node, type);
+		next = mt_slot_locked(mt, slots, next_offset);
+		if ((mte_dead_node(next)))
+			next = mt_slot_locked(mt, slots, ++next_offset);
 
-		mte_set_node_dead(mas->node);
-		node->type = mte_node_type(mas->node);
-		mas_clear_meta(mas, node, node->type);
+		mte_set_node_dead(*enode);
+		node->type = type;
 		node->piv_parent = prev;
 		node->parent_slot = offset;
-		offset = 0;
-		prev = mas->node;
+		offset = next_offset;
+		next_offset = 0;
+		prev = *enode;
 	} while (!mte_is_leaf(next));
 
 	return slots;
 }
 
-static void mt_destroy_walk(struct maple_enode *enode, unsigned char ma_flags,
+static void mt_destroy_walk(struct maple_enode *enode, struct maple_tree *mt,
 			    bool free)
 {
 	void __rcu **slots;
 	struct maple_node *node = mte_to_node(enode);
 	struct maple_enode *start;
-	struct maple_tree mt;
 
-	MA_STATE(mas, &mt, 0, 0);
-
-	mas.node = enode;
 	if (mte_is_leaf(enode)) {
 		node->type = mte_node_type(enode);
 		goto free_leaf;
 	}
 
-	ma_flags &= ~MT_FLAGS_LOCK_MASK;
-	mt_init_flags(&mt, ma_flags);
-	mas_lock(&mas);
-
-	mte_to_node(enode)->ma_flags = ma_flags;
 	start = enode;
-	slots = mas_destroy_descend(&mas, start, 0);
-	node = mas_mn(&mas);
+	slots = mte_destroy_descend(&enode, mt, start, 0);
+	node = mte_to_node(enode); // Updated in the above call.
 	do {
 		enum maple_type type;
 		unsigned char offset;
 		struct maple_enode *parent, *tmp;
 
-		node->type = mte_node_type(mas.node);
-		node->slot_len = mas_dead_leaves(&mas, slots, node->type);
+		node->slot_len = mte_dead_leaves(enode, mt, slots);
 		if (free)
 			mt_free_bulk(node->slot_len, slots);
 		offset = node->parent_slot + 1;
-		mas.node = node->piv_parent;
-		if (mas_mn(&mas) == node)
-			goto start_slots_free;
+		enode = node->piv_parent;
+		if (mte_to_node(enode) == node)
+			goto free_leaf;
 
-		type = mte_node_type(mas.node);
-		slots = ma_slots(mte_to_node(mas.node), type);
+		type = mte_node_type(enode);
+		slots = ma_slots(mte_to_node(enode), type);
 		if (offset >= mt_slots[type])
 			goto next;
 
-		tmp = mas_slot_locked(&mas, slots, offset);
+		tmp = mt_slot_locked(mt, slots, offset);
 		if (mte_node_type(tmp) && mte_to_node(tmp)) {
-			parent = mas.node;
-			mas.node = tmp;
-			slots = mas_destroy_descend(&mas, parent, offset);
+			parent = enode;
+			enode = tmp;
+			slots = mte_destroy_descend(&enode, mt, parent, offset);
 		}
 next:
-		node = mas_mn(&mas);
-	} while (start != mas.node);
+		node = mte_to_node(enode);
+	} while (start != enode);
 
-	node = mas_mn(&mas);
-	node->type = mte_node_type(mas.node);
-	node->slot_len = mas_dead_leaves(&mas, slots, node->type);
+	node = mte_to_node(enode);
+	node->slot_len = mte_dead_leaves(enode, mt, slots);
 	if (free)
 		mt_free_bulk(node->slot_len, slots);
 
-start_slots_free:
-	mas_unlock(&mas);
-
 free_leaf:
 	if (free)
 		mt_free_rcu(&node->rcu);
 	else
-		mas_clear_meta(&mas, node, node->type);
+		mt_clear_meta(mt, node, node->type);
 }
 
 /*
@@ -5682,10 +5686,10 @@ static inline void mte_destroy_walk(stru
 	struct maple_node *node = mte_to_node(enode);
 
 	if (mt_in_rcu(mt)) {
-		mt_destroy_walk(enode, mt->ma_flags, false);
+		mt_destroy_walk(enode, mt, false);
 		call_rcu(&node->rcu, mt_free_walk);
 	} else {
-		mt_destroy_walk(enode, mt->ma_flags, true);
+		mt_destroy_walk(enode, mt, true);
 	}
 }
 



  parent reply	other threads:[~2023-04-12  8:54 UTC|newest]

Thread overview: 184+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-12  8:32 [PATCH 6.2 000/173] 6.2.11-rc1 review Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 001/173] dm cache: Add some documentation to dm-cache-background-tracker.h Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 002/173] dm integrity: Remove bi_sector thats only used by commented debug code Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 003/173] dm: change "unsigned" to "unsigned int" Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 004/173] dm: fix improper splitting for abnormal bios Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 005/173] drm/i915: Move the DSB setup/cleaup into the color code Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 006/173] drm/i915: Add a .color_post_update() hook Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 007/173] gpio: GPIO_REGMAP: select REGMAP instead of depending on it Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 008/173] Drivers: vmbus: Check for channel allocation before looking up relids Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 009/173] ASoC: SOF: ipc4: Ensure DSP is in D0I0 during sof_ipc4_set_get_data() Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 010/173] pwm: hibvt: Explicitly set .polarity in .get_state() Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 011/173] pwm: cros-ec: " Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 012/173] pwm: iqs620a: " Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 013/173] pwm: sprd: " Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 014/173] pwm: meson: " Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 015/173] ASoC: codecs: lpass: fix the order or clks turn off during suspend Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 016/173] KVM: s390: pv: fix external interruption loop not always detected Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 017/173] wifi: mac80211: fix the size calculation of ieee80211_ie_len_eht_cap() Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 018/173] wifi: mac80211: fix invalid drv_sta_pre_rcu_remove calls for non-uploaded sta Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 019/173] net: qrtr: Fix a refcount bug in qrtr_recvmsg() Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 020/173] net: phylink: add phylink_expects_phy() method Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 021/173] net: stmmac: check if MAC needs to attach to a PHY Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 022/173] net: stmmac: remove redundant fixup to support fixed-link mode Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 023/173] l2tp: generate correct module alias strings Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 024/173] wifi: brcmfmac: Fix SDIO suspend/resume regression Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 025/173] NFSD: Avoid calling OPDESC() with ops->opnum == OP_ILLEGAL Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 026/173] nfsd: call op_release, even when op_func returns an error Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 027/173] icmp: guard against too small mtu Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 028/173] ALSA: hda/hdmi: Preserve the previous PCM device upon re-enablement Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 029/173] net: dont let netpoll invoke NAPI if in xmit context Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 030/173] net: dsa: mv88e6xxx: Reset mv88e6393x force WD event bit Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 031/173] net: ethernet: mtk_eth_soc: fix remaining throughput regression Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 032/173] sctp: check send stream number after wait_for_sndbuf Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 033/173] drm/i915/huc: Cancel HuC delayed load timer on reset Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 034/173] net: qrtr: Do not do DEL_SERVER broadcast after DEL_CLIENT Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 035/173] ipv6: Fix an uninit variable access bug in __ip6_make_skb() Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 036/173] platform/x86: think-lmi: Fix memory leak when showing current settings Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 037/173] platform/x86: think-lmi: Fix memory leaks when parsing ThinkStation WMI strings Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 038/173] platform/x86: think-lmi: Clean up display of current_value on Thinkstation Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 039/173] gpio: davinci: Do not clear the bank intr enable bit in save_context Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 040/173] gpio: davinci: Add irq chip flag to skip set wake Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 041/173] net: ethernet: ti: am65-cpsw: Fix mdio cleanup in probe Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 042/173] net: stmmac: fix up RX flow hash indirection table when setting channels Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 043/173] sunrpc: only free unix grouplist after RCU settles Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 044/173] NFSD: callback request does not use correct credential for AUTH_SYS Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 045/173] ice: fix wrong fallback logic for FDIR Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 046/173] ice: Reset FDIR counter in FDIR init stage Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 047/173] raw: use net_hash_mix() in hash function Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 048/173] raw: Fix NULL deref in raw_get_next() Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 049/173] ping: Fix potentail NULL deref for /proc/net/icmp Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 050/173] ethtool: reset #lanes when lanes is omitted Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 051/173] netlink: annotate lockless accesses to nlk->max_recvmsg_len Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 052/173] gve: Secure enough bytes in the first TX desc for all TCP pkts Greg Kroah-Hartman
2023-04-12  8:32 ` [PATCH 6.2 053/173] arm64: compat: Work around uninitialized variable warning Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 054/173] net: stmmac: check fwnode for phy device before scanning for phy Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 055/173] cxl/pci: Fix CDAT retrieval on big endian Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 056/173] cxl/pci: Handle truncated CDAT header Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 057/173] cxl/pci: Handle truncated CDAT entries Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 058/173] cxl/pci: Handle excessive CDAT length Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 059/173] PCI/DOE: Silence WARN splat with CONFIG_DEBUG_OBJECTS=y Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 060/173] PCI/DOE: Fix memory leak " Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 061/173] Revert "usb: xhci-pci: Set PROBE_PREFER_ASYNCHRONOUS" Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 062/173] usb: xhci: tegra: fix sleep in atomic call Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 063/173] xhci: Free the command allocated for setting LPM if we return early Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 064/173] xhci: also avoid the XHCI_ZERO_64B_REGS quirk with a passthrough iommu Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 065/173] usb: cdnsp: Fixes error: uninitialized symbol len Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 066/173] usb: dwc3: pci: add support for the Intel Meteor Lake-S Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 067/173] USB: serial: cp210x: add Silicon Labs IFS-USB-DATACABLE IDs Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 068/173] usb: typec: altmodes/displayport: Fix configure initial pin assignment Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 069/173] USB: serial: option: add Telit FE990 compositions Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 070/173] USB: serial: option: add Quectel RM500U-CN modem Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 071/173] drivers: iio: adc: ltc2497: fix LSB shift Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 072/173] iio: adis16480: select CONFIG_CRC32 Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 073/173] iio: adc: qcom-spmi-adc5: Fix the channel name Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 074/173] iio: adc: ti-ads7950: Set `can_sleep` flag for GPIO chip Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 075/173] iio: dac: cio-dac: Fix max DAC write value check for 12-bit Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 076/173] iio: adc: max11410: fix read_poll_timeout() usage Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 077/173] iio: accel: kionix-kx022a: Get the timestamp from the drivers private data in the trigger_handler Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 078/173] iio: buffer: correctly return bytes written in output buffers Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 079/173] iio: buffer: make sure O_NONBLOCK is respected Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 080/173] iio: light: cm32181: Unregister second I2C client if present Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 081/173] iio: light: vcnl4000: Fix WARN_ON on uninitialized lock Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 082/173] tty: serial: sh-sci: Fix transmit end interrupt handler Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 083/173] tty: serial: sh-sci: Fix Rx on RZ/G2L SCI Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 084/173] tty: serial: fsl_lpuart: avoid checking for transfer complete when UARTCTRL_SBK is asserted in lpuart32_tx_empty Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 085/173] tty: serial: fsl_lpuart: fix crash in lpuart_uport_is_active Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 086/173] nilfs2: fix potential UAF of struct nilfs_sc_info in nilfs_segctor_thread() Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 087/173] nilfs2: fix sysfs interface lifetime Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 088/173] fsdax: dedupe should compare the min of two iters length Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 089/173] fsdax: unshare: zero destination if srcmap is HOLE or UNWRITTEN Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 090/173] fsdax: force clear dirty mark if CoW Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 091/173] dt-bindings: serial: renesas,scif: Fix 4th IRQ for 4-IRQ SCIFs Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 092/173] serial: 8250: Prevent starting up DMA Rx on THRI interrupt Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 093/173] ksmbd: do not call kvmalloc() with __GFP_NORETRY | __GFP_NO_WARN Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 094/173] ksmbd: fix slab-out-of-bounds in init_smb2_rsp_hdr Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 095/173] ALSA: hda/realtek: Add quirk for Clevo X370SNW Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 096/173] ALSA: hda/realtek: fix mute/micmute LEDs for a HP ProBook Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 097/173] x86/acpi/boot: Correct acpi_is_processor_usable() check Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 098/173] x86/ACPI/boot: Use FADT version to check support for online capable Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 099/173] KVM: x86: Clear "has_error_code", not "error_code", for RM exception injection Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 100/173] KVM: nVMX: Do not report error code when synthesizing VM-Exit from Real Mode Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 101/173] KVM: SVM: Flush Hyper-V TLB when required Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 102/173] mm: kfence: fix PG_slab and memcg_data clearing Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 103/173] mm: kfence: fix handling discontiguous page Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 104/173] coresight: etm4x: Do not access TRCIDR1 for identification Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 105/173] coresight-etm4: Fix for() loop drvdata->nr_addr_cmp range bug Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 106/173] counter: 104-quad-8: Fix race condition between FLAG and CNTR reads Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 107/173] counter: 104-quad-8: Fix Synapse action reported for Index signals Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 108/173] blk-mq: directly poll requests Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 109/173] ftrace: Mark get_lock_parent_ip() __always_inline Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 110/173] ftrace: Fix issue that direct->addr not restored in modify_ftrace_direct() Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 111/173] fs: drop peer group ids under namespace lock Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 112/173] can: j1939: j1939_tp_tx_dat_new(): fix out-of-bounds memory access Greg Kroah-Hartman
2023-04-12  8:33 ` [PATCH 6.2 113/173] can: isotp: fix race between isotp_sendsmg() and isotp_release() Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 114/173] can: isotp: isotp_ops: fix poll() to not report false EPOLLOUT events Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 115/173] can: isotp: isotp_recvmsg(): use sock_recv_cmsgs() to get SOCK_RXQ_OVFL infos Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 116/173] ACPI: video: Add auto_detect arg to __acpi_video_get_backlight_type() Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 117/173] ACPI: video: Make acpi_backlight=video work independent from GPU driver Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 118/173] ACPI: video: Add acpi_backlight=video quirk for Apple iMac14,1 and iMac14,2 Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 119/173] ACPI: video: Add acpi_backlight=video quirk for Lenovo ThinkPad W530 Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 120/173] net: stmmac: Add queue reset into stmmac_xdp_open() function Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 121/173] tracing/synthetic: Fix races on freeing last_cmd Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 122/173] tracing/timerlat: Notify new max thread latency Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 123/173] tracing/osnoise: Fix notify new tracing_max_latency Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 124/173] tracing: Free error logs of tracing instances Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 125/173] iommufd: Check for uptr overflow Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 126/173] iommufd: Fix unpinning of pages when an access is present Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 127/173] iommufd: Do not corrupt the pfn list when doing batch carry Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 128/173] ASoC: hdac_hdmi: use set_stream() instead of set_tdm_slots() Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 129/173] ASoC: SOF: avoid a NULL dereference with unsupported widgets Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 130/173] iio: adc: ad7791: fix IRQ flags Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 131/173] io_uring: fix return value when removing provided buffers Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 132/173] io_uring: fix memory leak " Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 133/173] scsi: qla2xxx: Fix memory leak in qla2x00_probe_one() Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 134/173] scsi: iscsi_tcp: Check that sock is valid before iscsi_set_param() Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 135/173] nvme: fix discard support without oncs Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 136/173] cifs: sanitize paths in cifs_update_super_prepath Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 137/173] block: ublk: make sure that block size is set correctly Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 138/173] block: dont set GD_NEED_PART_SCAN if scan partition failed Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 139/173] perf: Optimize perf_pmu_migrate_context() Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 140/173] perf/core: Fix the same task check in perf_event_set_output Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 141/173] tracing/synthetic: Make lastcmd_mutex static Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 142/173] zsmalloc: document freeable stats Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 143/173] mm: vmalloc: avoid warn_alloc noise caused by fatal signal Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 144/173] wifi: mt76: mt7921: fix fw used for offload check for mt7922 Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 145/173] wifi: mt76: ignore key disable commands Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 146/173] ublk: read any SQE values upfront Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 147/173] drm/panfrost: Fix the panfrost_mmu_map_fault_addr() error path Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 148/173] drm/nouveau/disp: Support more modes by checking with lower bpc Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 149/173] drm/i915: Fix context runtime accounting Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 150/173] drm/i915: fix race condition UAF in i915_perf_add_config_ioctl Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 151/173] ring-buffer: Fix race while reader and writer are on the same page Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 152/173] mm/swap: fix swap_info_struct race between swapoff and get_swap_pages() Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 153/173] mm/hugetlb: fix uffd wr-protection for CoW optimization path Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 154/173] maple_tree: fix get wrong data_end in mtree_lookup_walk() Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 155/173] maple_tree: fix a potential concurrency bug in RCU mode Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 156/173] drm/amd/display: Clear MST topology if it fails to resume Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 157/173] drm/amdgpu: for S0ix, skip SDMA 5.x+ suspend/resume Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 158/173] drm/amdgpu: skip psp suspend for IMU enabled ASICs mode2 reset Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 159/173] drm/bridge: lt9611: Fix PLL being unable to lock Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 160/173] mm: take a page reference when removing device exclusive entries Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 161/173] maple_tree: remove GFP_ZERO from kmem_cache_alloc() and kmem_cache_alloc_bulk() Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 162/173] maple_tree: fix potential rcu issue Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 163/173] maple_tree: reduce user error potential Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 164/173] maple_tree: fix handle of invalidated state in mas_wr_store_setup() Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 165/173] maple_tree: fix mas_prev() and mas_find() state handling Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 166/173] maple_tree: be more cautious about dead nodes Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 167/173] maple_tree: refine ma_state init from mas_start() Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 168/173] maple_tree: detect dead nodes in mas_start() Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 169/173] maple_tree: fix freeing of nodes in rcu mode Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 170/173] maple_tree: remove extra smp_wmb() from mas_dead_leaves() Greg Kroah-Hartman
2023-04-12  8:34 ` [PATCH 6.2 171/173] maple_tree: add smp_rmb() to dead node detection Greg Kroah-Hartman
2023-04-12  8:34 ` Greg Kroah-Hartman [this message]
2023-04-12  8:34 ` [PATCH 6.2 173/173] mm: enable maple tree RCU mode by default Greg Kroah-Hartman
2023-04-12 12:51 ` [PATCH 6.2 000/173] 6.2.11-rc1 review Conor Dooley
2023-04-12 14:50 ` Markus Reichelt
2023-04-12 18:16 ` Justin Forbes
2023-04-12 18:49 ` Florian Fainelli
2023-04-12 19:37 ` Shuah Khan
2023-04-12 20:42 ` Guenter Roeck
2023-04-12 23:59 ` Ron Economos
2023-04-13  2:18 ` Slade Watkins
2023-04-13  4:07 ` Bagas Sanjaya
2023-04-13  8:55 ` Naresh Kamboju

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=20230412082845.130475784@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=Liam.Howlett@oracle.com \
    --cc=patches@lists.linux.dev \
    --cc=stable@vger.kernel.org \
    --cc=surenb@google.com \
    /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;
as well as URLs for NNTP newsgroup(s).