public inbox for patches@lists.linux.dev
 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, Felix Fietkau <nbd@nbd.name>,
	Johannes Berg <johannes.berg@intel.com>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.1 066/321] wifi: mac80211: fix receiving A-MSDU frames on mesh interfaces
Date: Tue, 27 Aug 2024 16:36:14 +0200	[thread overview]
Message-ID: <20240827143840.751912761@linuxfoundation.org> (raw)
In-Reply-To: <20240827143838.192435816@linuxfoundation.org>

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

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

From: Felix Fietkau <nbd@nbd.name>

[ Upstream commit 986e43b19ae9176093da35e0a844e65c8bf9ede7 ]

The current mac80211 mesh A-MSDU receive path fails to parse A-MSDU packets
on mesh interfaces, because it assumes that the Mesh Control field is always
directly after the 802.11 header.
802.11-2020 9.3.2.2.2 Figure 9-70 shows that the Mesh Control field is
actually part of the A-MSDU subframe header.
This makes more sense, since it allows packets for multiple different
destinations to be included in the same A-MSDU, as long as RA and TID are
still the same.
Another issue is the fact that the A-MSDU subframe length field was apparently
accidentally defined as little-endian in the standard.

In order to fix this, the mesh forwarding path needs happen at a different
point in the receive path.

ieee80211_data_to_8023_exthdr is changed to ignore the mesh control field
and leave it in after the ethernet header. This also affects the source/dest
MAC address fields, which now in the case of mesh point to the mesh SA/DA.

ieee80211_amsdu_to_8023s is changed to deal with the endian difference and
to add the Mesh Control length to the subframe length, since it's not covered
by the MSDU length field.

With these changes, the mac80211 will get the same packet structure for
converted regular data packets and unpacked A-MSDU subframes.

The mesh forwarding checks are now only performed after the A-MSDU decap.
For locally received packets, the Mesh Control header is stripped away.
For forwarded packets, a new 802.11 header gets added.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Link: https://lore.kernel.org/r/20230213100855.34315-4-nbd@nbd.name
[fix fortify build error]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Stable-dep-of: 9ad797485692 ("wifi: cfg80211: check A-MSDU format more carefully")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 .../wireless/marvell/mwifiex/11n_rxreorder.c  |   2 +-
 include/net/cfg80211.h                        |  27 +-
 net/mac80211/rx.c                             | 350 ++++++++++--------
 net/wireless/util.c                           | 120 +++---
 4 files changed, 297 insertions(+), 202 deletions(-)

diff --git a/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c b/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c
index 54ab8b54369ba..4ab3a14567b65 100644
--- a/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c
+++ b/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c
@@ -33,7 +33,7 @@ static int mwifiex_11n_dispatch_amsdu_pkt(struct mwifiex_private *priv,
 		skb_trim(skb, le16_to_cpu(local_rx_pd->rx_pkt_length));
 
 		ieee80211_amsdu_to_8023s(skb, &list, priv->curr_addr,
-					 priv->wdev.iftype, 0, NULL, NULL);
+					 priv->wdev.iftype, 0, NULL, NULL, false);
 
 		while (!skb_queue_empty(&list)) {
 			struct rx_packet_hdr *rx_hdr;
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 5bf5c1ab542ce..c2f7d01b3a16e 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -6316,11 +6316,36 @@ static inline int ieee80211_data_to_8023(struct sk_buff *skb, const u8 *addr,
  * @extra_headroom: The hardware extra headroom for SKBs in the @list.
  * @check_da: DA to check in the inner ethernet header, or NULL
  * @check_sa: SA to check in the inner ethernet header, or NULL
+ * @mesh_control: A-MSDU subframe header includes the mesh control field
  */
 void ieee80211_amsdu_to_8023s(struct sk_buff *skb, struct sk_buff_head *list,
 			      const u8 *addr, enum nl80211_iftype iftype,
 			      const unsigned int extra_headroom,
-			      const u8 *check_da, const u8 *check_sa);
+			      const u8 *check_da, const u8 *check_sa,
+			      bool mesh_control);
+
+/**
+ * ieee80211_get_8023_tunnel_proto - get RFC1042 or bridge tunnel encap protocol
+ *
+ * Check for RFC1042 or bridge tunnel header and fetch the encapsulated
+ * protocol.
+ *
+ * @hdr: pointer to the MSDU payload
+ * @proto: destination pointer to store the protocol
+ * Return: true if encapsulation was found
+ */
+bool ieee80211_get_8023_tunnel_proto(const void *hdr, __be16 *proto);
+
+/**
+ * ieee80211_strip_8023_mesh_hdr - strip mesh header from converted 802.3 frames
+ *
+ * Strip the mesh header, which was left in by ieee80211_data_to_8023 as part
+ * of the MSDU data. Also move any source/destination addresses from the mesh
+ * header to the ethernet header (if present).
+ *
+ * @skb: The 802.3 frame with embedded mesh header
+ */
+int ieee80211_strip_8023_mesh_hdr(struct sk_buff *skb);
 
 /**
  * cfg80211_classify8021d - determine the 802.1p/1d tag for a data frame
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 1d50126aebbc8..8d2379944f3de 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -2725,6 +2725,174 @@ ieee80211_deliver_skb(struct ieee80211_rx_data *rx)
 	}
 }
 
+static ieee80211_rx_result
+ieee80211_rx_mesh_data(struct ieee80211_sub_if_data *sdata, struct sta_info *sta,
+		       struct sk_buff *skb)
+{
+#ifdef CONFIG_MAC80211_MESH
+	struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
+	struct ieee80211_local *local = sdata->local;
+	uint16_t fc = IEEE80211_FTYPE_DATA | IEEE80211_STYPE_QOS_DATA;
+	struct ieee80211_hdr hdr = {
+		.frame_control = cpu_to_le16(fc)
+	};
+	struct ieee80211_hdr *fwd_hdr;
+	struct ieee80211s_hdr *mesh_hdr;
+	struct ieee80211_tx_info *info;
+	struct sk_buff *fwd_skb;
+	struct ethhdr *eth;
+	bool multicast;
+	int tailroom = 0;
+	int hdrlen, mesh_hdrlen;
+	u8 *qos;
+
+	if (!ieee80211_vif_is_mesh(&sdata->vif))
+		return RX_CONTINUE;
+
+	if (!pskb_may_pull(skb, sizeof(*eth) + 6))
+		return RX_DROP_MONITOR;
+
+	mesh_hdr = (struct ieee80211s_hdr *)(skb->data + sizeof(*eth));
+	mesh_hdrlen = ieee80211_get_mesh_hdrlen(mesh_hdr);
+
+	if (!pskb_may_pull(skb, sizeof(*eth) + mesh_hdrlen))
+		return RX_DROP_MONITOR;
+
+	eth = (struct ethhdr *)skb->data;
+	multicast = is_multicast_ether_addr(eth->h_dest);
+
+	mesh_hdr = (struct ieee80211s_hdr *)(eth + 1);
+	if (!mesh_hdr->ttl)
+		return RX_DROP_MONITOR;
+
+	/* frame is in RMC, don't forward */
+	if (is_multicast_ether_addr(eth->h_dest) &&
+	    mesh_rmc_check(sdata, eth->h_source, mesh_hdr))
+		return RX_DROP_MONITOR;
+
+	/* Frame has reached destination.  Don't forward */
+	if (ether_addr_equal(sdata->vif.addr, eth->h_dest))
+		goto rx_accept;
+
+	if (!ifmsh->mshcfg.dot11MeshForwarding) {
+		if (is_multicast_ether_addr(eth->h_dest))
+			goto rx_accept;
+
+		return RX_DROP_MONITOR;
+	}
+
+	/* forward packet */
+	if (sdata->crypto_tx_tailroom_needed_cnt)
+		tailroom = IEEE80211_ENCRYPT_TAILROOM;
+
+	if (!--mesh_hdr->ttl) {
+		if (multicast)
+			goto rx_accept;
+
+		IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, dropped_frames_ttl);
+		return RX_DROP_MONITOR;
+	}
+
+	if (mesh_hdr->flags & MESH_FLAGS_AE) {
+		struct mesh_path *mppath;
+		char *proxied_addr;
+
+		if (multicast)
+			proxied_addr = mesh_hdr->eaddr1;
+		else if ((mesh_hdr->flags & MESH_FLAGS_AE) == MESH_FLAGS_AE_A5_A6)
+			/* has_a4 already checked in ieee80211_rx_mesh_check */
+			proxied_addr = mesh_hdr->eaddr2;
+		else
+			return RX_DROP_MONITOR;
+
+		rcu_read_lock();
+		mppath = mpp_path_lookup(sdata, proxied_addr);
+		if (!mppath) {
+			mpp_path_add(sdata, proxied_addr, eth->h_source);
+		} else {
+			spin_lock_bh(&mppath->state_lock);
+			if (!ether_addr_equal(mppath->mpp, eth->h_source))
+				memcpy(mppath->mpp, eth->h_source, ETH_ALEN);
+			mppath->exp_time = jiffies;
+			spin_unlock_bh(&mppath->state_lock);
+		}
+		rcu_read_unlock();
+	}
+
+	skb_set_queue_mapping(skb, ieee802_1d_to_ac[skb->priority]);
+
+	ieee80211_fill_mesh_addresses(&hdr, &hdr.frame_control,
+				      eth->h_dest, eth->h_source);
+	hdrlen = ieee80211_hdrlen(hdr.frame_control);
+	if (multicast) {
+		int extra_head = sizeof(struct ieee80211_hdr) - sizeof(*eth);
+
+		fwd_skb = skb_copy_expand(skb, local->tx_headroom + extra_head +
+					       IEEE80211_ENCRYPT_HEADROOM,
+					  tailroom, GFP_ATOMIC);
+		if (!fwd_skb)
+			goto rx_accept;
+	} else {
+		fwd_skb = skb;
+		skb = NULL;
+
+		if (skb_cow_head(fwd_skb, hdrlen - sizeof(struct ethhdr)))
+			return RX_DROP_UNUSABLE;
+	}
+
+	fwd_hdr = skb_push(fwd_skb, hdrlen - sizeof(struct ethhdr));
+	memcpy(fwd_hdr, &hdr, hdrlen - 2);
+	qos = ieee80211_get_qos_ctl(fwd_hdr);
+	qos[0] = qos[1] = 0;
+
+	skb_reset_mac_header(fwd_skb);
+	hdrlen += mesh_hdrlen;
+	if (ieee80211_get_8023_tunnel_proto(fwd_skb->data + hdrlen,
+					    &fwd_skb->protocol))
+		hdrlen += ETH_ALEN;
+	else
+		fwd_skb->protocol = htons(fwd_skb->len - hdrlen);
+	skb_set_network_header(fwd_skb, hdrlen);
+
+	info = IEEE80211_SKB_CB(fwd_skb);
+	memset(info, 0, sizeof(*info));
+	info->control.flags |= IEEE80211_TX_INTCFL_NEED_TXPROCESSING;
+	info->control.vif = &sdata->vif;
+	info->control.jiffies = jiffies;
+	if (multicast) {
+		IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, fwded_mcast);
+		memcpy(fwd_hdr->addr2, sdata->vif.addr, ETH_ALEN);
+		/* update power mode indication when forwarding */
+		ieee80211_mps_set_frame_flags(sdata, NULL, fwd_hdr);
+	} else if (!mesh_nexthop_lookup(sdata, fwd_skb)) {
+		/* mesh power mode flags updated in mesh_nexthop_lookup */
+		IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, fwded_unicast);
+	} else {
+		/* unable to resolve next hop */
+		if (sta)
+			mesh_path_error_tx(sdata, ifmsh->mshcfg.element_ttl,
+					   hdr.addr3, 0,
+					   WLAN_REASON_MESH_PATH_NOFORWARD,
+					   sta->sta.addr);
+		IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, dropped_frames_no_route);
+		kfree_skb(fwd_skb);
+		goto rx_accept;
+	}
+
+	IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, fwded_frames);
+	fwd_skb->dev = sdata->dev;
+	ieee80211_add_pending_skb(local, fwd_skb);
+
+rx_accept:
+	if (!skb)
+		return RX_QUEUED;
+
+	ieee80211_strip_8023_mesh_hdr(skb);
+#endif
+
+	return RX_CONTINUE;
+}
+
 static ieee80211_rx_result debug_noinline
 __ieee80211_rx_h_amsdu(struct ieee80211_rx_data *rx, u8 data_offset)
 {
@@ -2733,8 +2901,10 @@ __ieee80211_rx_h_amsdu(struct ieee80211_rx_data *rx, u8 data_offset)
 	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
 	__le16 fc = hdr->frame_control;
 	struct sk_buff_head frame_list;
+	static ieee80211_rx_result res;
 	struct ethhdr ethhdr;
 	const u8 *check_da = ethhdr.h_dest, *check_sa = ethhdr.h_source;
+	bool mesh = false;
 
 	if (unlikely(ieee80211_has_a4(hdr->frame_control))) {
 		check_da = NULL;
@@ -2751,6 +2921,8 @@ __ieee80211_rx_h_amsdu(struct ieee80211_rx_data *rx, u8 data_offset)
 			break;
 		case NL80211_IFTYPE_MESH_POINT:
 			check_sa = NULL;
+			check_da = NULL;
+			mesh = true;
 			break;
 		default:
 			break;
@@ -2768,17 +2940,29 @@ __ieee80211_rx_h_amsdu(struct ieee80211_rx_data *rx, u8 data_offset)
 	ieee80211_amsdu_to_8023s(skb, &frame_list, dev->dev_addr,
 				 rx->sdata->vif.type,
 				 rx->local->hw.extra_tx_headroom,
-				 check_da, check_sa);
+				 check_da, check_sa, mesh);
 
 	while (!skb_queue_empty(&frame_list)) {
 		rx->skb = __skb_dequeue(&frame_list);
 
-		if (!ieee80211_frame_allowed(rx, fc)) {
-			dev_kfree_skb(rx->skb);
+		res = ieee80211_rx_mesh_data(rx->sdata, rx->sta, rx->skb);
+		switch (res) {
+		case RX_QUEUED:
 			continue;
+		case RX_CONTINUE:
+			break;
+		default:
+			goto free;
 		}
 
+		if (!ieee80211_frame_allowed(rx, fc))
+			goto free;
+
 		ieee80211_deliver_skb(rx);
+		continue;
+
+free:
+		dev_kfree_skb(rx->skb);
 	}
 
 	return RX_QUEUED;
@@ -2811,6 +2995,8 @@ ieee80211_rx_h_amsdu(struct ieee80211_rx_data *rx)
 			if (!rx->sdata->u.mgd.use_4addr)
 				return RX_DROP_UNUSABLE;
 			break;
+		case NL80211_IFTYPE_MESH_POINT:
+			break;
 		default:
 			return RX_DROP_UNUSABLE;
 		}
@@ -2839,155 +3025,6 @@ ieee80211_rx_h_amsdu(struct ieee80211_rx_data *rx)
 	return __ieee80211_rx_h_amsdu(rx, 0);
 }
 
-#ifdef CONFIG_MAC80211_MESH
-static ieee80211_rx_result
-ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
-{
-	struct ieee80211_hdr *fwd_hdr, *hdr;
-	struct ieee80211_tx_info *info;
-	struct ieee80211s_hdr *mesh_hdr;
-	struct sk_buff *skb = rx->skb, *fwd_skb;
-	struct ieee80211_local *local = rx->local;
-	struct ieee80211_sub_if_data *sdata = rx->sdata;
-	struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
-	u16 ac, q, hdrlen;
-	int tailroom = 0;
-
-	hdr = (struct ieee80211_hdr *) skb->data;
-	hdrlen = ieee80211_hdrlen(hdr->frame_control);
-
-	/* make sure fixed part of mesh header is there, also checks skb len */
-	if (!pskb_may_pull(rx->skb, hdrlen + 6))
-		return RX_DROP_MONITOR;
-
-	mesh_hdr = (struct ieee80211s_hdr *) (skb->data + hdrlen);
-
-	/* make sure full mesh header is there, also checks skb len */
-	if (!pskb_may_pull(rx->skb,
-			   hdrlen + ieee80211_get_mesh_hdrlen(mesh_hdr)))
-		return RX_DROP_MONITOR;
-
-	/* reload pointers */
-	hdr = (struct ieee80211_hdr *) skb->data;
-	mesh_hdr = (struct ieee80211s_hdr *) (skb->data + hdrlen);
-
-	if (ieee80211_drop_unencrypted(rx, hdr->frame_control)) {
-		int offset = hdrlen + ieee80211_get_mesh_hdrlen(mesh_hdr) +
-			     sizeof(rfc1042_header);
-		__be16 ethertype;
-
-		if (!ether_addr_equal(hdr->addr1, rx->sdata->vif.addr) ||
-		    skb_copy_bits(rx->skb, offset, &ethertype, 2) != 0 ||
-		    ethertype != rx->sdata->control_port_protocol)
-			return RX_DROP_MONITOR;
-	}
-
-	/* frame is in RMC, don't forward */
-	if (ieee80211_is_data(hdr->frame_control) &&
-	    is_multicast_ether_addr(hdr->addr1) &&
-	    mesh_rmc_check(rx->sdata, hdr->addr3, mesh_hdr))
-		return RX_DROP_MONITOR;
-
-	if (!ieee80211_is_data(hdr->frame_control))
-		return RX_CONTINUE;
-
-	if (!mesh_hdr->ttl)
-		return RX_DROP_MONITOR;
-
-	if (mesh_hdr->flags & MESH_FLAGS_AE) {
-		struct mesh_path *mppath;
-		char *proxied_addr;
-		char *mpp_addr;
-
-		if (is_multicast_ether_addr(hdr->addr1)) {
-			mpp_addr = hdr->addr3;
-			proxied_addr = mesh_hdr->eaddr1;
-		} else if ((mesh_hdr->flags & MESH_FLAGS_AE) ==
-			    MESH_FLAGS_AE_A5_A6) {
-			/* has_a4 already checked in ieee80211_rx_mesh_check */
-			mpp_addr = hdr->addr4;
-			proxied_addr = mesh_hdr->eaddr2;
-		} else {
-			return RX_DROP_MONITOR;
-		}
-
-		rcu_read_lock();
-		mppath = mpp_path_lookup(sdata, proxied_addr);
-		if (!mppath) {
-			mpp_path_add(sdata, proxied_addr, mpp_addr);
-		} else {
-			spin_lock_bh(&mppath->state_lock);
-			if (!ether_addr_equal(mppath->mpp, mpp_addr))
-				memcpy(mppath->mpp, mpp_addr, ETH_ALEN);
-			mppath->exp_time = jiffies;
-			spin_unlock_bh(&mppath->state_lock);
-		}
-		rcu_read_unlock();
-	}
-
-	/* Frame has reached destination.  Don't forward */
-	if (!is_multicast_ether_addr(hdr->addr1) &&
-	    ether_addr_equal(sdata->vif.addr, hdr->addr3))
-		return RX_CONTINUE;
-
-	ac = ieee802_1d_to_ac[skb->priority];
-	skb_set_queue_mapping(skb, ac);
-
-	if (!--mesh_hdr->ttl) {
-		if (!is_multicast_ether_addr(hdr->addr1))
-			IEEE80211_IFSTA_MESH_CTR_INC(ifmsh,
-						     dropped_frames_ttl);
-		goto out;
-	}
-
-	if (!ifmsh->mshcfg.dot11MeshForwarding)
-		goto out;
-
-	if (sdata->crypto_tx_tailroom_needed_cnt)
-		tailroom = IEEE80211_ENCRYPT_TAILROOM;
-
-	fwd_skb = skb_copy_expand(skb, local->tx_headroom +
-				       IEEE80211_ENCRYPT_HEADROOM,
-				  tailroom, GFP_ATOMIC);
-	if (!fwd_skb)
-		goto out;
-
-	fwd_skb->dev = sdata->dev;
-	fwd_hdr =  (struct ieee80211_hdr *) fwd_skb->data;
-	fwd_hdr->frame_control &= ~cpu_to_le16(IEEE80211_FCTL_RETRY);
-	info = IEEE80211_SKB_CB(fwd_skb);
-	memset(info, 0, sizeof(*info));
-	info->control.flags |= IEEE80211_TX_INTCFL_NEED_TXPROCESSING;
-	info->control.vif = &rx->sdata->vif;
-	info->control.jiffies = jiffies;
-	if (is_multicast_ether_addr(fwd_hdr->addr1)) {
-		IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, fwded_mcast);
-		memcpy(fwd_hdr->addr2, sdata->vif.addr, ETH_ALEN);
-		/* update power mode indication when forwarding */
-		ieee80211_mps_set_frame_flags(sdata, NULL, fwd_hdr);
-	} else if (!mesh_nexthop_lookup(sdata, fwd_skb)) {
-		/* mesh power mode flags updated in mesh_nexthop_lookup */
-		IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, fwded_unicast);
-	} else {
-		/* unable to resolve next hop */
-		mesh_path_error_tx(sdata, ifmsh->mshcfg.element_ttl,
-				   fwd_hdr->addr3, 0,
-				   WLAN_REASON_MESH_PATH_NOFORWARD,
-				   fwd_hdr->addr2);
-		IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, dropped_frames_no_route);
-		kfree_skb(fwd_skb);
-		return RX_DROP_MONITOR;
-	}
-
-	IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, fwded_frames);
-	ieee80211_add_pending_skb(local, fwd_skb);
- out:
-	if (is_multicast_ether_addr(hdr->addr1))
-		return RX_CONTINUE;
-	return RX_DROP_MONITOR;
-}
-#endif
-
 static ieee80211_rx_result debug_noinline
 ieee80211_rx_h_data(struct ieee80211_rx_data *rx)
 {
@@ -2996,6 +3033,7 @@ ieee80211_rx_h_data(struct ieee80211_rx_data *rx)
 	struct net_device *dev = sdata->dev;
 	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)rx->skb->data;
 	__le16 fc = hdr->frame_control;
+	static ieee80211_rx_result res;
 	bool port_control;
 	int err;
 
@@ -3022,6 +3060,10 @@ ieee80211_rx_h_data(struct ieee80211_rx_data *rx)
 	if (unlikely(err))
 		return RX_DROP_UNUSABLE;
 
+	res = ieee80211_rx_mesh_data(rx->sdata, rx->sta, rx->skb);
+	if (res != RX_CONTINUE)
+		return res;
+
 	if (!ieee80211_frame_allowed(rx, fc))
 		return RX_DROP_MONITOR;
 
@@ -3996,10 +4038,6 @@ static void ieee80211_rx_handlers(struct ieee80211_rx_data *rx,
 		CALL_RXH(ieee80211_rx_h_defragment);
 		CALL_RXH(ieee80211_rx_h_michael_mic_verify);
 		/* must be after MMIC verify so header is counted in MPDU mic */
-#ifdef CONFIG_MAC80211_MESH
-		if (ieee80211_vif_is_mesh(&rx->sdata->vif))
-			CALL_RXH(ieee80211_rx_h_mesh_fwding);
-#endif
 		CALL_RXH(ieee80211_rx_h_amsdu);
 		CALL_RXH(ieee80211_rx_h_data);
 
diff --git a/net/wireless/util.c b/net/wireless/util.c
index 8597694a0cfdb..61a76f31fac89 100644
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
@@ -542,7 +542,7 @@ unsigned int ieee80211_get_mesh_hdrlen(struct ieee80211s_hdr *meshhdr)
 }
 EXPORT_SYMBOL(ieee80211_get_mesh_hdrlen);
 
-static bool ieee80211_get_8023_tunnel_proto(const void *hdr, __be16 *proto)
+bool ieee80211_get_8023_tunnel_proto(const void *hdr, __be16 *proto)
 {
 	const __be16 *hdr_proto = hdr + ETH_ALEN;
 
@@ -556,6 +556,49 @@ static bool ieee80211_get_8023_tunnel_proto(const void *hdr, __be16 *proto)
 
 	return true;
 }
+EXPORT_SYMBOL(ieee80211_get_8023_tunnel_proto);
+
+int ieee80211_strip_8023_mesh_hdr(struct sk_buff *skb)
+{
+	const void *mesh_addr;
+	struct {
+		struct ethhdr eth;
+		u8 flags;
+	} payload;
+	int hdrlen;
+	int ret;
+
+	ret = skb_copy_bits(skb, 0, &payload, sizeof(payload));
+	if (ret)
+		return ret;
+
+	hdrlen = sizeof(payload.eth) + __ieee80211_get_mesh_hdrlen(payload.flags);
+
+	if (likely(pskb_may_pull(skb, hdrlen + 8) &&
+		   ieee80211_get_8023_tunnel_proto(skb->data + hdrlen,
+						   &payload.eth.h_proto)))
+		hdrlen += ETH_ALEN + 2;
+	else if (!pskb_may_pull(skb, hdrlen))
+		return -EINVAL;
+
+	mesh_addr = skb->data + sizeof(payload.eth) + ETH_ALEN;
+	switch (payload.flags & MESH_FLAGS_AE) {
+	case MESH_FLAGS_AE_A4:
+		memcpy(&payload.eth.h_source, mesh_addr, ETH_ALEN);
+		break;
+	case MESH_FLAGS_AE_A5_A6:
+		memcpy(&payload.eth, mesh_addr, 2 * ETH_ALEN);
+		break;
+	default:
+		break;
+	}
+
+	pskb_pull(skb, hdrlen - sizeof(payload.eth));
+	memcpy(skb->data, &payload.eth, sizeof(payload.eth));
+
+	return 0;
+}
+EXPORT_SYMBOL(ieee80211_strip_8023_mesh_hdr);
 
 int ieee80211_data_to_8023_exthdr(struct sk_buff *skb, struct ethhdr *ehdr,
 				  const u8 *addr, enum nl80211_iftype iftype,
@@ -568,7 +611,6 @@ int ieee80211_data_to_8023_exthdr(struct sk_buff *skb, struct ethhdr *ehdr,
 	} payload;
 	struct ethhdr tmp;
 	u16 hdrlen;
-	u8 mesh_flags = 0;
 
 	if (unlikely(!ieee80211_is_data_present(hdr->frame_control)))
 		return -1;
@@ -589,12 +631,6 @@ int ieee80211_data_to_8023_exthdr(struct sk_buff *skb, struct ethhdr *ehdr,
 	memcpy(tmp.h_dest, ieee80211_get_DA(hdr), ETH_ALEN);
 	memcpy(tmp.h_source, ieee80211_get_SA(hdr), ETH_ALEN);
 
-	if (iftype == NL80211_IFTYPE_MESH_POINT &&
-	    skb_copy_bits(skb, hdrlen, &mesh_flags, 1) < 0)
-		return -1;
-
-	mesh_flags &= MESH_FLAGS_AE;
-
 	switch (hdr->frame_control &
 		cpu_to_le16(IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS)) {
 	case cpu_to_le16(IEEE80211_FCTL_TODS):
@@ -608,17 +644,6 @@ int ieee80211_data_to_8023_exthdr(struct sk_buff *skb, struct ethhdr *ehdr,
 			     iftype != NL80211_IFTYPE_AP_VLAN &&
 			     iftype != NL80211_IFTYPE_STATION))
 			return -1;
-		if (iftype == NL80211_IFTYPE_MESH_POINT) {
-			if (mesh_flags == MESH_FLAGS_AE_A4)
-				return -1;
-			if (mesh_flags == MESH_FLAGS_AE_A5_A6 &&
-			    skb_copy_bits(skb, hdrlen +
-					  offsetof(struct ieee80211s_hdr, eaddr1),
-					  tmp.h_dest, 2 * ETH_ALEN) < 0)
-				return -1;
-
-			hdrlen += __ieee80211_get_mesh_hdrlen(mesh_flags);
-		}
 		break;
 	case cpu_to_le16(IEEE80211_FCTL_FROMDS):
 		if ((iftype != NL80211_IFTYPE_STATION &&
@@ -627,16 +652,6 @@ int ieee80211_data_to_8023_exthdr(struct sk_buff *skb, struct ethhdr *ehdr,
 		    (is_multicast_ether_addr(tmp.h_dest) &&
 		     ether_addr_equal(tmp.h_source, addr)))
 			return -1;
-		if (iftype == NL80211_IFTYPE_MESH_POINT) {
-			if (mesh_flags == MESH_FLAGS_AE_A5_A6)
-				return -1;
-			if (mesh_flags == MESH_FLAGS_AE_A4 &&
-			    skb_copy_bits(skb, hdrlen +
-					  offsetof(struct ieee80211s_hdr, eaddr1),
-					  tmp.h_source, ETH_ALEN) < 0)
-				return -1;
-			hdrlen += __ieee80211_get_mesh_hdrlen(mesh_flags);
-		}
 		break;
 	case cpu_to_le16(0):
 		if (iftype != NL80211_IFTYPE_ADHOC &&
@@ -646,7 +661,7 @@ int ieee80211_data_to_8023_exthdr(struct sk_buff *skb, struct ethhdr *ehdr,
 		break;
 	}
 
-	if (likely(!is_amsdu &&
+	if (likely(!is_amsdu && iftype != NL80211_IFTYPE_MESH_POINT &&
 		   skb_copy_bits(skb, hdrlen, &payload, sizeof(payload)) == 0 &&
 		   ieee80211_get_8023_tunnel_proto(&payload, &tmp.h_proto))) {
 		/* remove RFC1042 or Bridge-Tunnel encapsulation */
@@ -722,7 +737,8 @@ __ieee80211_amsdu_copy_frag(struct sk_buff *skb, struct sk_buff *frame,
 
 static struct sk_buff *
 __ieee80211_amsdu_copy(struct sk_buff *skb, unsigned int hlen,
-		       int offset, int len, bool reuse_frag)
+		       int offset, int len, bool reuse_frag,
+		       int min_len)
 {
 	struct sk_buff *frame;
 	int cur_len = len;
@@ -736,7 +752,7 @@ __ieee80211_amsdu_copy(struct sk_buff *skb, unsigned int hlen,
 	 * in the stack later.
 	 */
 	if (reuse_frag)
-		cur_len = min_t(int, len, 32);
+		cur_len = min_t(int, len, min_len);
 
 	/*
 	 * Allocate and reserve two bytes more for payload
@@ -746,6 +762,7 @@ __ieee80211_amsdu_copy(struct sk_buff *skb, unsigned int hlen,
 	if (!frame)
 		return NULL;
 
+	frame->priority = skb->priority;
 	skb_reserve(frame, hlen + sizeof(struct ethhdr) + 2);
 	skb_copy_bits(skb, offset, skb_put(frame, cur_len), cur_len);
 
@@ -762,23 +779,37 @@ __ieee80211_amsdu_copy(struct sk_buff *skb, unsigned int hlen,
 void ieee80211_amsdu_to_8023s(struct sk_buff *skb, struct sk_buff_head *list,
 			      const u8 *addr, enum nl80211_iftype iftype,
 			      const unsigned int extra_headroom,
-			      const u8 *check_da, const u8 *check_sa)
+			      const u8 *check_da, const u8 *check_sa,
+			      bool mesh_control)
 {
 	unsigned int hlen = ALIGN(extra_headroom, 4);
 	struct sk_buff *frame = NULL;
 	int offset = 0, remaining;
-	struct ethhdr eth;
+	struct {
+		struct ethhdr eth;
+		uint8_t flags;
+	} hdr;
 	bool reuse_frag = skb->head_frag && !skb_has_frag_list(skb);
 	bool reuse_skb = false;
 	bool last = false;
+	int copy_len = sizeof(hdr.eth);
+
+	if (iftype == NL80211_IFTYPE_MESH_POINT)
+		copy_len = sizeof(hdr);
 
 	while (!last) {
 		unsigned int subframe_len;
-		int len;
+		int len, mesh_len = 0;
 		u8 padding;
 
-		skb_copy_bits(skb, offset, &eth, sizeof(eth));
-		len = ntohs(eth.h_proto);
+		skb_copy_bits(skb, offset, &hdr, copy_len);
+		if (iftype == NL80211_IFTYPE_MESH_POINT)
+			mesh_len = __ieee80211_get_mesh_hdrlen(hdr.flags);
+		if (mesh_control)
+			len = le16_to_cpu(*(__le16 *)&hdr.eth.h_proto) + mesh_len;
+		else
+			len = ntohs(hdr.eth.h_proto);
+
 		subframe_len = sizeof(struct ethhdr) + len;
 		padding = (4 - subframe_len) & 0x3;
 
@@ -787,16 +818,16 @@ void ieee80211_amsdu_to_8023s(struct sk_buff *skb, struct sk_buff_head *list,
 		if (subframe_len > remaining)
 			goto purge;
 		/* mitigate A-MSDU aggregation injection attacks */
-		if (ether_addr_equal(eth.h_dest, rfc1042_header))
+		if (ether_addr_equal(hdr.eth.h_dest, rfc1042_header))
 			goto purge;
 
 		offset += sizeof(struct ethhdr);
 		last = remaining <= subframe_len + padding;
 
 		/* FIXME: should we really accept multicast DA? */
-		if ((check_da && !is_multicast_ether_addr(eth.h_dest) &&
-		     !ether_addr_equal(check_da, eth.h_dest)) ||
-		    (check_sa && !ether_addr_equal(check_sa, eth.h_source))) {
+		if ((check_da && !is_multicast_ether_addr(hdr.eth.h_dest) &&
+		     !ether_addr_equal(check_da, hdr.eth.h_dest)) ||
+		    (check_sa && !ether_addr_equal(check_sa, hdr.eth.h_source))) {
 			offset += len + padding;
 			continue;
 		}
@@ -808,7 +839,7 @@ void ieee80211_amsdu_to_8023s(struct sk_buff *skb, struct sk_buff_head *list,
 			reuse_skb = true;
 		} else {
 			frame = __ieee80211_amsdu_copy(skb, hlen, offset, len,
-						       reuse_frag);
+						       reuse_frag, 32 + mesh_len);
 			if (!frame)
 				goto purge;
 
@@ -819,10 +850,11 @@ void ieee80211_amsdu_to_8023s(struct sk_buff *skb, struct sk_buff_head *list,
 		frame->dev = skb->dev;
 		frame->priority = skb->priority;
 
-		if (likely(ieee80211_get_8023_tunnel_proto(frame->data, &eth.h_proto)))
+		if (likely(iftype != NL80211_IFTYPE_MESH_POINT &&
+			   ieee80211_get_8023_tunnel_proto(frame->data, &hdr.eth.h_proto)))
 			skb_pull(frame, ETH_ALEN + 2);
 
-		memcpy(skb_push(frame, sizeof(eth)), &eth, sizeof(eth));
+		memcpy(skb_push(frame, sizeof(hdr.eth)), &hdr.eth, sizeof(hdr.eth));
 		__skb_queue_tail(list, frame);
 	}
 
-- 
2.43.0




  parent reply	other threads:[~2024-08-27 15:20 UTC|newest]

Thread overview: 351+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-27 14:35 [PATCH 6.1 000/321] 6.1.107-rc1 review Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 001/321] tty: atmel_serial: use the correct RTS flag Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 002/321] fuse: Initialize beyond-EOF page contents before setting uptodate Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 003/321] char: xillybus: Dont destroy workqueue from work item running on it Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 004/321] char: xillybus: Refine workqueue handling Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 005/321] char: xillybus: Check USB endpoints when probing device Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 006/321] ALSA: usb-audio: Add delay quirk for VIVO USB-C-XE710 HEADSET Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 007/321] ALSA: usb-audio: Support Yamaha P-125 quirk entry Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 008/321] xhci: Fix Panther point NULL pointer deref at full-speed re-enumeration Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 009/321] thunderbolt: Mark XDomain as unplugged when router is removed Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 010/321] s390/dasd: fix error recovery leading to data corruption on ESE devices Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 011/321] riscv: change XIPs kernel_map.size to be size of the entire kernel Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 012/321] arm64: ACPI: NUMA: initialize all values of acpi_early_node_map to NUMA_NO_NODE Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 013/321] dm resume: dont return EINVAL when signalled Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 014/321] dm persistent data: fix memory allocation failure Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 015/321] vfs: Dont evict inode under the inode lru traversing context Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 016/321] fs/ntfs3: add prefix to bitmap_size() and use BITS_TO_U64() Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 017/321] s390/cio: rename bitmap_size() -> idset_bitmap_size() Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 018/321] btrfs: rename bitmap_set_bits() -> btrfs_bitmap_set_bits() Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 019/321] bitmap: introduce generic optimized bitmap_size() Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 020/321] fix bitmap corruption on close_range() with CLOSE_RANGE_UNSHARE Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 021/321] i2c: qcom-geni: Add missing geni_icc_disable in geni_i2c_runtime_resume Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 022/321] rtla/osnoise: Prevent NULL dereference in error handling Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 023/321] fs/netfs/fscache_cookie: add missing "n_accesses" check Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 024/321] selinux: fix potential counting error in avc_add_xperms_decision() Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 025/321] mm/memory-failure: use raw_spinlock_t in struct memory_failure_cpu Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 026/321] btrfs: zoned: properly take lock to read/update block groups zoned variables Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 027/321] btrfs: tree-checker: add dev extent item checks Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 028/321] drm/amdgpu: Actually check flags for all context ops Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 029/321] memcg_write_event_control(): fix a user-triggerable oops Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 030/321] drm/amdgpu/jpeg2: properly set atomics vmid field Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 031/321] s390/uv: Panic for set and remove shared access UVC errors Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 032/321] bpf: Fix updating attached freplace prog in prog_array map Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 033/321] nilfs2: prevent WARNING in nilfs_dat_commit_end() Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 034/321] ext4, jbd2: add an optimized bmap for the journal inode Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 035/321] 9P FS: Fix wild-memory-access write in v9fs_get_acl Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 036/321] nilfs2: initialize "struct nilfs_binfo_dat"->bi_pad field Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 037/321] mm: khugepaged: fix kernel BUG in hpage_collapse_scan_file() Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 038/321] bpf: Split off basic BPF verifier log into separate file Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 039/321] bpf: drop unnecessary user-triggerable WARN_ONCE in verifierl log Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 040/321] posix-timers: Ensure timer ID search-loop limit is valid Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 041/321] pid: Replace struct pid 1-element array with flex-array Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 042/321] gfs2: Rename remaining "transaction" glock references Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 043/321] gfs2: Rename the {freeze,thaw}_super callbacks Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 044/321] gfs2: Rename gfs2_freeze_lock{ => _shared } Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 045/321] gfs2: Rename SDF_{FS_FROZEN => FREEZE_INITIATOR} Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 046/321] gfs2: Rework freeze / thaw logic Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 047/321] gfs2: Stop using gfs2_make_fs_ro for withdraw Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 048/321] Bluetooth: Fix hci_link_tx_to RCU lock usage Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 049/321] wifi: mac80211: take wiphy lock for MAC addr change Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 050/321] wifi: mac80211: fix change_address deadlock during unregister Greg Kroah-Hartman
2024-08-27 14:35 ` [PATCH 6.1 051/321] net: sched: Print msecs when transmit queue time out Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 052/321] net: dont dump stack on queue timeout Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 053/321] jfs: fix shift-out-of-bounds in dbJoin Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 054/321] squashfs: squashfs_read_data need to check if the length is 0 Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 055/321] Squashfs: fix variable overflow triggered by sysbot Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 056/321] reiserfs: fix uninit-value in comp_keys Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 057/321] erofs: avoid debugging output for (de)compressed data Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 058/321] quota: Detect loops in quota tree Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 059/321] net:rds: Fix possible deadlock in rds_message_put Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 060/321] net: sctp: fix skb leak in sctp_inq_free() Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 061/321] pppoe: Fix memory leak in pppoe_sendmsg() Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 062/321] wifi: mac80211: fix and simplify unencrypted drop check for mesh Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 063/321] wifi: cfg80211: move A-MSDU check in ieee80211_data_to_8023_exthdr Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 064/321] wifi: cfg80211: factor out bridge tunnel / RFC1042 header check Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 065/321] wifi: mac80211: remove mesh forwarding congestion check Greg Kroah-Hartman
2024-08-27 14:36 ` Greg Kroah-Hartman [this message]
2024-08-27 14:36 ` [PATCH 6.1 067/321] wifi: mac80211: add a workaround for receiving non-standard mesh A-MSDU Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 068/321] wifi: cfg80211: check A-MSDU format more carefully Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 069/321] docs/bpf: Document BPF_MAP_TYPE_LPM_TRIE map Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 070/321] bpf: Replace bpf_lpm_trie_key 0-length array with flexible array Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 071/321] bpf: Avoid kfree_rcu() under lock in bpf_lpm_trie Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 072/321] Bluetooth: RFCOMM: Fix not validating setsockopt user input Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 073/321] ext4: check the return value of ext4_xattr_inode_dec_ref() Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 074/321] ext4: fold quota accounting into ext4_xattr_inode_lookup_create() Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 075/321] ext4: do not create EA inode under buffer lock Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 076/321] udf: Fix bogus checksum computation in udf_rename() Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 077/321] bpf, net: Use DEV_STAT_INC() Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 078/321] fou: remove warn in gue_gro_receive on unsupported protocol Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 079/321] jfs: fix null ptr deref in dtInsertEntry Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 080/321] jfs: Fix shift-out-of-bounds in dbDiscardAG Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 081/321] fs/ntfs3: Do copy_to_user out of run_lock Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 082/321] ALSA: usb: Fix UBSAN warning in parse_audio_unit() Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 083/321] igc: Correct the launchtime offset Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 084/321] igc: Fix packet still tx after gate close by reducing i226 MAC retry buffer Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 085/321] net/mlx5e: Take state lock during tx timeout reporter Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 086/321] net/mlx5e: Correctly report errors for ethtool rx flows Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 087/321] atm: idt77252: prevent use after free in dequeue_rx() Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 088/321] net: axienet: Fix register defines comment description Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 089/321] net: dsa: vsc73xx: pass value in phy_write operation Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 090/321] net: dsa: vsc73xx: use read_poll_timeout instead delay loop Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 091/321] net: dsa: vsc73xx: check busy flag in MDIO operations Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 092/321] mlxbf_gige: Remove two unused function declarations Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 093/321] mlxbf_gige: disable RX filters until RX path initialized Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 094/321] mptcp: correct MPTCP_SUBFLOW_ATTR_SSN_OFFSET reserved size Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 095/321] netfilter: allow ipv6 fragments to arrive on different devices Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 096/321] netfilter: flowtable: initialise extack before use Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 097/321] netfilter: nf_queue: drop packets with cloned unconfirmed conntracks Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 098/321] netfilter: nf_tables: Audit log dump reset after the fact Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 099/321] netfilter: nf_tables: Drop pointless memset in nf_tables_dump_obj Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 100/321] netfilter: nf_tables: Unconditionally allocate nft_obj_filter Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 101/321] netfilter: nf_tables: A better name for nft_obj_filter Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 102/321] netfilter: nf_tables: Carry s_idx in nft_obj_dump_ctx Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 103/321] netfilter: nf_tables: nft_obj_filter fits into cb->ctx Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 104/321] netfilter: nf_tables: Carry reset boolean in nft_obj_dump_ctx Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 105/321] netfilter: nf_tables: Introduce nf_tables_getobj_single Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 106/321] netfilter: nf_tables: Add locking for NFT_MSG_GETOBJ_RESET requests Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 107/321] net: hns3: fix wrong use of semaphore up Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 108/321] net: hns3: use the users cfg after reset Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 109/321] net: hns3: fix a deadlock problem when config TC during resetting Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 110/321] ALSA: hda/realtek: Fix noise from speakers on Lenovo IdeaPad 3 15IAU7 Greg Kroah-Hartman
2024-08-27 14:36 ` [PATCH 6.1 111/321] drm/amd/amdgpu/imu_v11_0: Increase buffer size to ensure all possible values can be stored Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 112/321] ssb: Fix division by zero issue in ssb_calc_clock_rate Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 113/321] wifi: cfg80211: check wiphy mutex is held for wdev mutex Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 114/321] wifi: mac80211: fix BA session teardown race Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 115/321] rcu: Dump memory object info if callback function is invalid Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 116/321] rcu: Eliminate rcu_gp_slow_unregister() false positive Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 117/321] wifi: cw1200: Avoid processing an invalid TIM IE Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 118/321] cgroup: Avoid extra dereference in css_populate_dir() Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 119/321] i2c: riic: avoid potential division by zero Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 120/321] RDMA/rtrs: Fix the problem of variable not initialized fully Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 121/321] s390/smp,mcck: fix early IPI handling Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 122/321] drm/bridge: tc358768: Attempt to fix DSI horizontal timings Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 123/321] i3c: mipi-i3c-hci: Remove BUG() when Ring Abort request times out Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 124/321] i3c: mipi-i3c-hci: Do not unmap region not mapped for transfer Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 125/321] drm/amdkfd: Move dma unmapping after TLB flush Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 126/321] media: radio-isa: use dev_name to fill in bus_info Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 127/321] staging: iio: resolver: ad2s1210: fix use before initialization Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 128/321] usb: gadget: uvc: cleanup request when not in correct state Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 129/321] drm/amd/display: Validate hw_points_num before using it Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 130/321] staging: ks7010: disable bh on tx_dev_lock Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 131/321] media: s5p-mfc: Fix potential deadlock on condlock Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 132/321] md/raid5-cache: use READ_ONCE/WRITE_ONCE for conf->log Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 133/321] binfmt_misc: cleanup on filesystem umount Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 134/321] drm/tegra: Zero-initialize iosys_map Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 135/321] media: qcom: venus: fix incorrect return value Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 136/321] scsi: spi: Fix sshdr use Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 137/321] gfs2: setattr_chown: Add missing initialization Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 138/321] wifi: iwlwifi: abort scan when rfkill on but device enabled Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 139/321] wifi: iwlwifi: fw: Fix debugfs command sending Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 140/321] clk: visconti: Add bounds-checking coverage for struct visconti_pll_provider Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 141/321] IB/hfi1: Fix potential deadlock on &irq_src_lock and &dd->uctxt_lock Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 142/321] hwmon: (ltc2992) Avoid division by zero Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 143/321] kbuild: rust_is_available: normalize version matching Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 144/321] kbuild: rust_is_available: handle failures calling `$RUSTC`/`$BINDGEN` Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 145/321] rust: work around `bindgen` 0.69.0 issue Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 146/321] rust: suppress error messages from CONFIG_{RUSTC,BINDGEN}_VERSION_TEXT Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 147/321] rust: fix the default format for CONFIG_{RUSTC,BINDGEN}_VERSION_TEXT Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 148/321] arm64: Fix KASAN random tag seed initialization Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 149/321] block: Fix lockdep warning in blk_mq_mark_tag_wait Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 150/321] drm/msm: Reduce fallout of fence signaling vs reclaim hangs Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 151/321] memory: tegra: Skip SID programming if SID registers arent set Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 152/321] powerpc/xics: Check return value of kasprintf in icp_native_map_one_cpu Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 153/321] ASoC: SOF: ipc4: check return value of snd_sof_ipc_msg_data Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 154/321] hwmon: (pc87360) Bounds check data->innr usage Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 155/321] drm/rockchip: vop2: clear afbc en and transform bit for cluster window at linear mode Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 156/321] Bluetooth: hci_conn: Check non NULL function before calling for HFP offload Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 157/321] gfs2: Refcounting fix in gfs2_thaw_super Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 158/321] nvmet-trace: avoid dereferencing pointer too early Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 159/321] ext4: do not trim the group with corrupted block bitmap Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 160/321] afs: fix __afs_break_callback() / afs_drop_open_mmap() race Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 161/321] fuse: fix UAF in rcu pathwalks Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 162/321] quota: Remove BUG_ON from dqget() Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 163/321] kernfs: fix false-positive WARN(nr_mmapped) in kernfs_drain_open_files Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 164/321] media: pci: cx23885: check cx23885_vdev_init() return Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 165/321] fs: binfmt_elf_efpic: dont use missing interpreters properties Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 166/321] scsi: lpfc: Initialize status local variable in lpfc_sli4_repost_sgl_list() Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 167/321] media: drivers/media/dvb-core: copy user arrays safely Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 168/321] net/sun3_82586: Avoid reading past buffer in debug output Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 169/321] drm/lima: set gp bus_stop bit before hard reset Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 170/321] hrtimer: Select housekeeping CPU during migration Greg Kroah-Hartman
2024-08-27 14:37 ` [PATCH 6.1 171/321] virtiofs: forbid newlines in tags Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 172/321] clocksource/drivers/arm_global_timer: Guard against division by zero Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 173/321] netlink: hold nlk->cb_mutex longer in __netlink_dump_start() Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 174/321] md: clean up invalid BUG_ON in md_ioctl Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 175/321] x86: Increase brk randomness entropy for 64-bit systems Greg Kroah-Hartman
2024-11-20  1:48   ` Dominique Martinet
2024-11-20  7:01     ` Salvatore Bonaccorso
2024-11-20  8:07       ` Dominique Martinet
2024-11-20  8:25         ` AW: " Ulrich Teichert
2024-11-20 18:08           ` Kees Cook
2024-11-20 18:12             ` Jiri Kosina
2024-11-20 21:28             ` Dominique Martinet
2024-08-27 14:38 ` [PATCH 6.1 176/321] memory: stm32-fmc2-ebi: check regmap_read return value Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 177/321] parisc: Use irq_enter_rcu() to fix warning at kernel/context_tracking.c:367 Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 178/321] powerpc/boot: Handle allocation failure in simple_realloc() Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 179/321] powerpc/boot: Only free if realloc() succeeds Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 180/321] btrfs: delayed-inode: drop pointless BUG_ON in __btrfs_remove_delayed_item() Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 181/321] btrfs: change BUG_ON to assertion when checking for delayed_node root Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 182/321] btrfs: tests: allocate dummy fs_info and root in test_find_delalloc() Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 183/321] btrfs: handle invalid root reference found in may_destroy_subvol() Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 184/321] btrfs: send: handle unexpected data in header buffer in begin_cmd() Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 185/321] btrfs: change BUG_ON to assertion in tree_move_down() Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 186/321] btrfs: delete pointless BUG_ON check on quota root in btrfs_qgroup_account_extent() Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 187/321] f2fs: fix to do sanity check in update_sit_entry Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 188/321] usb: gadget: fsl: Increase size of name buffer for endpoints Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 189/321] nvme: clear caller pointer on identify failure Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 190/321] Bluetooth: bnep: Fix out-of-bound access Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 191/321] firmware: cirrus: cs_dsp: Initialize debugfs_root to invalid Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 192/321] rtc: nct3018y: fix possible NULL dereference Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 193/321] net: hns3: add checking for vf id of mailbox Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 194/321] nvmet-tcp: do not continue for invalid icreq Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 195/321] NFS: avoid infinite loop in pnfs_update_layout Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 196/321] openrisc: Call setup_memory() earlier in the init sequence Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 197/321] s390/iucv: fix receive buffer virtual vs physical address confusion Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 198/321] irqchip/renesas-rzg2l: Do not set TIEN and TINT source at the same time Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 199/321] clocksource: Make watchdog and suspend-timing multiplication overflow safe Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 200/321] platform/x86: lg-laptop: fix %s null argument warning Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 201/321] usb: dwc3: core: Skip setting event buffers for host only controllers Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 202/321] fbdev: offb: replace of_node_put with __free(device_node) Greg Kroah-Hartman
2024-08-29 21:11   ` Vitaly Chikunov
2024-08-30  2:52     ` Vitaly Chikunov
2024-08-27 14:38 ` [PATCH 6.1 203/321] irqchip/gic-v3-its: Remove BUG_ON in its_vpe_irq_domain_alloc Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 204/321] ext4: set the type of max_zeroout to unsigned int to avoid overflow Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 205/321] nvmet-rdma: fix possible bad dereference when freeing rsps Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 206/321] drm/amdgpu: fix dereference null return value for the function amdgpu_vm_pt_parent Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 207/321] hrtimer: Prevent queuing of hrtimer without a function callback Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 208/321] gtp: pull network headers in gtp_dev_xmit() Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 209/321] media: solo6x10: replace max(a, min(b, c)) by clamp(b, a, c) Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 210/321] i2c: tegra: allow DVC support to be compiled out Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 211/321] i2c: tegra: allow VI " Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 212/321] i2c: tegra: Do not mark ACPI devices as irq safe Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 213/321] dm suspend: return -ERESTARTSYS instead of -EINTR Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 214/321] net: mana: Fix doorbell out of order violation and avoid unnecessary doorbell rings Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 215/321] btrfs: replace sb::s_blocksize by fs_info::sectorsize Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 216/321] btrfs: send: allow cloning non-aligned extent if it ends at i_size Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 217/321] drm/amd/display: Adjust cursor position Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 218/321] platform/surface: aggregator: Fix warning when controller is destroyed in probe Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 219/321] drm/amdkfd: reserve the BO before validating it Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 220/321] Bluetooth: hci_core: Fix LE quote calculation Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 221/321] Bluetooth: SMP: Fix assumption of Central always being Initiator Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 222/321] net: dsa: tag_ocelot: do not rely on skb_mac_header() for VLAN xmit Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 223/321] net: dsa: tag_ocelot: call only the relevant portion of __skb_vlan_pop() on TX Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 224/321] net: mscc: ocelot: use ocelot_xmit_get_vlan_info() also for FDMA and register injection Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 225/321] net: mscc: ocelot: fix QoS class for injected packets with "ocelot-8021q" Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 226/321] net: mscc: ocelot: serialize access to the injection/extraction groups Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 227/321] tc-testing: dont access non-existent variable on exception Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 228/321] selftests/net: synchronize udpgro tests tx and rx connection Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 229/321] selftests: udpgro: report error when receive failed Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 230/321] tcp/dccp: bypass empty buckets in inet_twsk_purge() Greg Kroah-Hartman
2024-08-27 14:38 ` [PATCH 6.1 231/321] tcp/dccp: do not care about families " Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 232/321] tcp: prevent concurrent execution of tcp_sk_exit_batch Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 233/321] net: mctp: test: Use correct skb for route input check Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 234/321] kcm: Serialise kcm_sendmsg() for the same socket Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 235/321] netfilter: nft_counter: Disable BH in nft_counter_offload_stats() Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 236/321] netfilter: nft_counter: Synchronize nft_counter_reset() against reader Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 237/321] ip6_tunnel: Fix broken GRO Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 238/321] bonding: fix bond_ipsec_offload_ok return type Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 239/321] bonding: fix null pointer deref in bond_ipsec_offload_ok Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 240/321] bonding: fix xfrm real_dev null pointer dereference Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 241/321] bonding: fix xfrm state handling when clearing active slave Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 242/321] ice: Prepare legacy-rx for upcoming XDP multi-buffer support Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 243/321] ice: Add xdp_buff to ice_rx_ring struct Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 244/321] ice: Store page count inside ice_rx_buf Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 245/321] ice: Pull out next_to_clean bump out of ice_put_rx_buf() Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 246/321] ice: fix page reuse when PAGE_SIZE is over 8k Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 247/321] ice: fix ICE_LAST_OFFSET formula Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 248/321] dpaa2-switch: Fix error checking in dpaa2_switch_seed_bp() Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 249/321] net: dsa: mv88e6xxx: Fix out-of-bound access Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 250/321] netem: fix return value if duplicate enqueue fails Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 251/321] ipv6: prevent UAF in ip6_send_skb() Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 252/321] ipv6: fix possible UAF in ip6_finish_output2() Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 253/321] ipv6: prevent possible UAF in ip6_xmit() Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 254/321] netfilter: flowtable: validate vlan header Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 255/321] octeontx2-af: Fix CPT AF register offset calculation Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 256/321] net: xilinx: axienet: Always disable promiscuous mode Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 257/321] net: xilinx: axienet: Fix dangling multicast addresses Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 258/321] drm/msm/dpu: dont play tricks with debug macros Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 259/321] drm/msm/dp: fix the max supported bpp logic Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 260/321] drm/msm/dp: reset the link phy params before link training Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 261/321] drm/msm/dpu: cleanup FB if dpu_format_populate_layout fails Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 262/321] mmc: mmc_test: Fix NULL dereference on allocation failure Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 263/321] Bluetooth: MGMT: Add error handling to pair_device() Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 264/321] scsi: core: Fix the return value of scsi_logical_block_count() Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 265/321] ksmbd: the buffer of smb2 query dir response has at least 1 byte Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 266/321] drm/amdgpu: Validate TA binary size Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 267/321] MIPS: Loongson64: Set timer mode in cpu-probe Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 268/321] HID: wacom: Defer calculation of resolution until resolution_code is known Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 269/321] HID: microsoft: Add rumble support to latest xbox controllers Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 270/321] Input: i8042 - add forcenorestore quirk to leave controller untouched even on s3 Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 271/321] Input: i8042 - use new forcenorestore quirk to replace old buggy quirk combination Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 272/321] cxgb4: add forgotten u64 ivlan cast before shift Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 273/321] KVM: arm64: Make ICC_*SGI*_EL1 undef in the absence of a vGICv3 Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 274/321] mmc: dw_mmc: allow biu and ciu clocks to defer Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 275/321] pmdomain: imx: wait SSAR when i.MX93 power domain on Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 276/321] mptcp: pm: re-using ID of unused removed ADD_ADDR Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 277/321] mptcp: pm: re-using ID of unused removed subflows Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 278/321] mptcp: pm: re-using ID of unused flushed subflows Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 279/321] mptcp: pm: only decrement add_addr_accepted for MPJ req Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 280/321] Revert "usb: gadget: uvc: cleanup request when not in correct state" Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 281/321] Revert "drm/amd/display: Validate hw_points_num before using it" Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 282/321] tcp: do not export tcp_twsk_purge() Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 283/321] hwmon: (ltc2992) Fix memory leak in ltc2992_parse_dt() Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 284/321] ALSA: timer: Relax start tick time check for slave timer elements Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 285/321] mm/vmalloc: fix page mapping if vm_area_alloc_pages() with high order fallback to order 0 Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 286/321] mm/numa: no task_numa_fault() call if PMD is changed Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 287/321] mm/numa: no task_numa_fault() call if PTE " Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 288/321] nfsd: Simplify code around svc_exit_thread() call in nfsd() Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 289/321] nfsd: separate nfsd_last_thread() from nfsd_put() Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 290/321] NFSD: simplify error paths in nfsd_svc() Greg Kroah-Hartman
2024-08-27 14:39 ` [PATCH 6.1 291/321] nfsd: call nfsd_last_thread() before final nfsd_put() Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 292/321] nfsd: drop the nfsd_put helper Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 293/321] nfsd: dont call locks_release_private() twice concurrently Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 294/321] nfsd: Fix a regression in nfsd_setattr() Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 295/321] Bluetooth: hci_ldisc: check HCI_UART_PROTO_READY flag in HCIUARTGETPROTO Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 296/321] drm/amdgpu/vcn: identify unified queue in sw init Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 297/321] drm/amdgpu/vcn: not pause dpg for unified queue Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 298/321] KVM: x86: fire timer when it is migrated and expired, and in oneshot mode Greg Kroah-Hartman
2024-08-27 18:56   ` Sean Christopherson
2024-08-28  7:07     ` Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 299/321] Revert "s390/dasd: Establish DMA alignment" Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 300/321] udp: allow header check for dodgy GSO_UDP_L4 packets Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 301/321] gso: fix dodgy bit handling for GSO_UDP_L4 Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 302/321] net: more strict VIRTIO_NET_HDR_GSO_UDP_L4 validation Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 303/321] net: drop bad gso csum_start and offset in virtio_net_hdr Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 304/321] wifi: mac80211: add documentation for amsdu_mesh_control Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 305/321] wifi: mac80211: fix mesh path discovery based on unicast packets Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 306/321] wifi: mac80211: fix mesh forwarding Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 307/321] wifi: mac80211: fix flow dissection for forwarded packets Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 308/321] wifi: mac80211: fix receiving mesh packets in forwarding=0 networks Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 309/321] wifi: mac80211: drop bogus static keywords in A-MSDU rx Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 310/321] wifi: mac80211: fix potential null pointer dereference Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 311/321] wifi: cfg80211: fix receiving mesh packets without RFC1042 header Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 312/321] gfs2: Fix another freeze/thaw hang Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 313/321] gfs2: dont withdraw if init_threads() got interrupted Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 314/321] gfs2: Remove LM_FLAG_PRIORITY flag Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 315/321] gfs2: Remove freeze_go_demote_ok Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 316/321] udp: fix receiving fraglist GSO packets Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 317/321] ice: fix W=1 headers mismatch Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 318/321] Revert "jfs: fix shift-out-of-bounds in dbJoin" Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 319/321] net: change maximum number of UDP segments to 128 Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 320/321] selftests: net: more strict check in net_helper Greg Kroah-Hartman
2024-08-27 14:40 ` [PATCH 6.1 321/321] Input: MT - limit max slots Greg Kroah-Hartman
2024-08-27 17:46 ` [PATCH 6.1 000/321] 6.1.107-rc1 review Florian Fainelli
2024-08-27 18:07 ` Naresh Kamboju
2024-08-29 14:17   ` Greg Kroah-Hartman
2024-08-28  0:59 ` SeongJae Park
2024-08-28  3:02 ` Peter Schneider
2024-08-28 10:08 ` Pavel Machek
2024-08-28 11:37 ` Mark Brown
2024-08-28 14:34 ` Naresh Kamboju
2024-08-28 16:01 ` Miguel Ojeda
2024-08-28 18:24 ` Ron Economos
2024-08-29 11:37 ` Pavel Machek
2024-08-29 11:52   ` Greg Kroah-Hartman
2024-08-29 12:11     ` Pavel Machek
2024-08-29 13:43       ` Greg Kroah-Hartman
2024-08-29 13:47   ` Greg Kroah-Hartman
2024-08-29 12:07 ` Shreeya Patel
2024-08-31 21:19 ` Guenter Roeck
2024-09-01 16:01   ` Greg Kroah-Hartman

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=20240827143840.751912761@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=johannes.berg@intel.com \
    --cc=nbd@nbd.name \
    --cc=patches@lists.linux.dev \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox