From: Mark Brown <broonie@kernel.org>
To: Johannes Berg <johannes@sipsolutions.net>,
Wireless <linux-wireless@vger.kernel.org>
Cc: Johannes Berg <johannes.berg@intel.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linux Next Mailing List <linux-next@vger.kernel.org>,
Mariano Baragiola <mbaragiola@linux.com>
Subject: linux-next: manual merge of the wireless-next tree with the wireless tree
Date: Wed, 9 Sep 2026 13:12:15 +0100 [thread overview]
Message-ID: <aqFNH9H8J7kSprbT@sirena.org.uk> (raw)
[-- Attachment #1: Type: text/plain, Size: 5202 bytes --]
Hi all,
Today's linux-next merge of the wireless-next tree got conflicts in:
include/net/mac80211.h
net/mac80211/iface.c
net/mac80211/tx.c
between commit:
d4b31f7757d81 ("wifi: mac80211: don't allow injecting frames wider than the chanctx")
from the wireless tree and commits:
9d1365e96a920 ("wifi: mac80211: avoid trimming injected FCS twice")
a64a20fb270f2 ("wifi: mac80211: store the ack skb before building the header")
from the wireless-next tree.
I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging. You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.
diff --cc include/net/mac80211.h
index ed6a5874ff965,7bb4618065b67..0000000000000
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@@ -7638,14 -7630,12 +7630,16 @@@ bool ieee80211_tx_prepare_skb(struct ie
*
* @skb: packet injected by userspace
* @dev: the &struct device of this 802.11 device
+ * @chandef: the channel definition the frame will be transmitted on, or
+ * %NULL to skip the bandwidth checks
+ * @trim_fcs: trim the FCS trailer when present; validate it otherwise
*
* Return: %true if the radiotap header was parsed, %false otherwise
*/
bool ieee80211_parse_tx_radiotap(struct sk_buff *skb,
- struct net_device *dev, bool trim_fcs);
+ struct net_device *dev,
- const struct cfg80211_chan_def *chandef);
++ const struct cfg80211_chan_def *chandef,
++ bool trim_fcs);
/**
* struct ieee80211_noa_data - holds temporary data for tracking P2P NoA state
diff --cc net/mac80211/iface.c
index 889c32fd8de19,fdac729ca580d..0000000000000
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@@ -993,7 -964,7 +993,7 @@@ static u16 ieee80211_monitor_select_que
/* reset flags and info before parsing radiotap header */
memset(info, 0, sizeof(*info));
- if (!ieee80211_parse_tx_radiotap(skb, dev, NULL))
- if (!ieee80211_parse_tx_radiotap(skb, dev, false))
++ if (!ieee80211_parse_tx_radiotap(skb, dev, NULL, false))
return 0; /* doesn't matter, frame will be dropped */
len_rthdr = ieee80211_get_radiotap_len(skb->data);
diff --cc net/mac80211/tx.c
index 814399989b5e4,d85c84a738f79..0000000000000
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@@ -2105,29 -2150,8 +2152,30 @@@ static bool ieee80211_validate_radiotap
return true;
}
+static bool ieee80211_rate_bw_usable(u16 rate_flags,
+ const struct cfg80211_chan_def *chandef)
+{
+ int width;
+
+ if (!chandef)
+ return true;
+
+ if (rate_flags & IEEE80211_TX_RC_160_MHZ_WIDTH)
+ width = 160;
+ else if (rate_flags & IEEE80211_TX_RC_80_MHZ_WIDTH)
+ width = 80;
+ else if (rate_flags & IEEE80211_TX_RC_40_MHZ_WIDTH)
+ width = 40;
+ else
+ return true;
+
+ return width <= cfg80211_chandef_get_width(chandef);
+}
+
bool ieee80211_parse_tx_radiotap(struct sk_buff *skb,
- struct net_device *dev, bool trim_fcs)
+ struct net_device *dev,
- const struct cfg80211_chan_def *chandef)
++ const struct cfg80211_chan_def *chandef,
++ bool trim_fcs)
{
struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
struct ieee80211_radiotap_iterator iterator;
@@@ -2503,7 -2525,7 +2552,7 @@@ netdev_tx_t ieee80211_monitor_start_xmi
* selected chandef above to accurately set injection rates and
* retransmissions.
*/
- if (!ieee80211_parse_tx_radiotap(skb, dev, chandef))
- if (!ieee80211_parse_tx_radiotap(skb, dev, true))
++ if (!ieee80211_parse_tx_radiotap(skb, dev, chandef, true))
goto fail_rcu;
/* remove the injection radiotap header */
@@@ -3064,41 -3050,14 +3077,17 @@@ static struct sk_buff *ieee80211_build_
skb_reset_mac_header(skb);
- if (likely(!cookie)) {
- ctrl_flags |= u32_encode_bits(link_id,
- IEEE80211_TX_CTRL_MLO_LINK);
- } else {
- unsigned int pre_conf_link_id;
-
- /*
- * ctrl_flags already have been set by
- * ieee80211_tx_control_port(), here
- * we just sanity check that
- */
-
- pre_conf_link_id = u32_get_bits(ctrl_flags,
- IEEE80211_TX_CTRL_MLO_LINK);
-
- if (pre_conf_link_id != link_id &&
- link_id != IEEE80211_LINK_UNSPECIFIED) {
- #ifdef CONFIG_MAC80211_VERBOSE_DEBUG
- net_info_ratelimited("%s: dropped frame to %pM with bad link ID request (%d vs. %d)\n",
- sdata->name, hdr.addr1,
- pre_conf_link_id, link_id);
- #endif
- ret = -EINVAL;
- goto free_txskb;
- }
- }
-
- info->control.flags = ctrl_flags;
+ info->band = band;
+ info->control.flags =
+ u32_replace_bits(info->control.flags, link_id,
+ IEEE80211_TX_CTRL_MLO_LINK);
return skb;
+ free_txskb:
+ ieee80211_free_txskb(&local->hw, skb);
+ return ERR_PTR(ret);
free:
- kfree_skb(skb);
+ ieee80211_free_txskb(&local->hw, skb);
return ERR_PTR(ret);
}
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next reply other threads:[~2026-09-09 12:12 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-09 12:12 Mark Brown [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-07-16 3:52 Stephen Rothwell
2025-07-16 8:59 ` Johannes Berg
2025-07-16 11:54 ` Stephen Rothwell
2025-07-16 17:18 ` Jeff Johnson
2024-10-28 1:36 Stephen Rothwell
2024-10-28 6:51 ` Johannes Berg
2024-10-31 2:20 ` Stephen Rothwell
2024-10-24 0:55 Stephen Rothwell
2024-10-24 6:58 ` Johannes Berg
2024-10-31 2:24 ` Stephen Rothwell
2024-06-03 1:01 Stephen Rothwell
2024-06-03 10:01 ` Kalle Valo
2024-06-06 10:09 ` Kalle Valo
2024-06-07 9:44 ` Alexis Lothoré
2024-06-07 10:29 ` Kalle Valo
2024-05-31 2:44 Stephen Rothwell
2024-04-22 0:56 Stephen Rothwell
2024-03-25 23:09 Stephen Rothwell
2024-03-26 7:58 ` Johannes Berg
2024-02-08 23:56 Stephen Rothwell
2024-02-09 7:03 ` Johannes Berg
2023-09-26 2:20 Stephen Rothwell
2023-09-26 2:02 Stephen Rothwell
2023-09-26 2:41 ` Stephen Rothwell
2023-09-26 6:21 ` Johannes Berg
2023-09-12 2:46 Stephen Rothwell
2023-03-30 23:49 Stephen Rothwell
2023-03-31 9:17 ` Johannes Berg
2023-04-03 2:23 ` Stephen Rothwell
2023-04-03 8:43 ` Kalle Valo
2014-11-25 3:36 Stephen Rothwell
2013-12-03 0:20 Stephen Rothwell
2013-12-03 15:52 ` John W. Linville
2013-12-03 16:09 ` Johannes Berg
2013-12-03 18:12 ` Bob Copeland
2013-12-04 1:21 ` Yeoh Chun-Yeow
2013-08-19 2:41 Stephen Rothwell
2013-08-12 1:53 Stephen Rothwell
2013-08-12 15:15 ` John W. Linville
2013-08-12 15:34 ` Berg, Johannes
2013-06-07 2:56 Stephen Rothwell
2013-06-07 6:21 ` Sujith Manoharan
2013-03-26 1:18 Stephen Rothwell
2013-03-12 1:00 Stephen Rothwell
2012-11-15 2:17 Stephen Rothwell
2012-11-15 8:06 ` Arend van Spriel
2012-10-22 0:46 Stephen Rothwell
2012-10-22 0:13 Stephen Rothwell
2011-11-14 0:53 Stephen Rothwell
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=aqFNH9H8J7kSprbT@sirena.org.uk \
--to=broonie@kernel.org \
--cc=johannes.berg@intel.com \
--cc=johannes@sipsolutions.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-next@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=mbaragiola@linux.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
all inboxes | Powered by JetHome®