Commit cf08e29d authored by Johannes Berg's avatar Johannes Berg

wifi: mac80211: fix off-by-one link setting

The convention for find_first_bit() is 0-based, while ffs()
is 1-based, so this is now off-by-one. I cannot reproduce the
gcc-9 problem, but since the -1 is now removed, I'm hoping it
will still avoid the original issue.
Reported-by: default avatarAlexander Lobakin <alexandr.lobakin@intel.com>
Fixes: 1d8d4af4 ("wifi: mac80211: avoid u32_encode_bits() warning")
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent e6f5dcb7
......@@ -4434,7 +4434,7 @@ static void ieee80211_mlo_multicast_tx(struct net_device *dev,
u32 ctrl_flags = IEEE80211_TX_CTRL_MCAST_MLO_FIRST_TX;
if (hweight16(links) == 1) {
ctrl_flags |= u32_encode_bits(find_first_bit(&links, 16) - 1,
ctrl_flags |= u32_encode_bits(__ffs(links),
IEEE80211_TX_CTRL_MLO_LINK);
__ieee80211_subif_start_xmit(skb, sdata->dev, 0, ctrl_flags,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment