Skip to content

Commit ffb7aa9

Browse files
committed
Merge tag 'wireless-2024-06-27' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless
Johannes Berg says: ==================== Just a few changes: - maintainers: Larry Finger sadly passed away - maintainers: ath trees are in their group now - TXQ FQ quantum configuration fix - TI wl driver: work around stuck FW in AP mode - mac80211: disable softirqs in some new code needing that * tag 'wireless-2024-06-27' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless: MAINTAINERS: wifi: update ath.git location MAINTAINERS: Remembering Larry Finger wifi: mac80211: disable softirqs for queued frame handling wifi: cfg80211: restrict NL80211_ATTR_TXQ_QUANTUM values wifi: wlcore: fix wlcore AP mode ==================== Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
2 parents fd19d4a + c40ff9b commit ffb7aa9

File tree

9 files changed

+33
-30
lines changed

9 files changed

+33
-30
lines changed

CREDITS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1214,6 +1214,10 @@ D: UDF filesystem
12141214
S: (ask for current address)
12151215
S: USA
12161216

1217+
N: Larry Finger
1218+
1219+
D: Maintainer of wireless drivers, too many to list here
1220+
12171221
N: Jürgen Fischer
12181222
12191223
D: Author of Adaptec AHA-152x SCSI driver

MAINTAINERS

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3601,10 +3601,9 @@ W: https://wireless.wiki.kernel.org/en/users/Drivers/b43
36013601
F: drivers/net/wireless/broadcom/b43/
36023602

36033603
B43LEGACY WIRELESS DRIVER
3604-
M: Larry Finger <[email protected]>
36053604
36063605
3607-
S: Maintained
3606+
S: Orphan
36083607
W: https://wireless.wiki.kernel.org/en/users/Drivers/b43
36093608
F: drivers/net/wireless/broadcom/b43legacy/
36103609

@@ -18374,7 +18373,7 @@ M: Jeff Johnson <[email protected]>
1837418373
1837518374
S: Supported
1837618375
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath12k
18377-
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
18376+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git
1837818377
F: drivers/net/wireless/ath/ath12k/
1837918378
N: ath12k
1838018379

@@ -18384,7 +18383,7 @@ M: Jeff Johnson <[email protected]>
1838418383
1838518384
S: Supported
1838618385
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
18387-
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
18386+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git
1838818387
F: drivers/net/wireless/ath/ath10k/
1838918388
N: ath10k
1839018389

@@ -18395,7 +18394,7 @@ L: [email protected]
1839518394
S: Supported
1839618395
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath11k
1839718396
B: https://wireless.wiki.kernel.org/en/users/Drivers/ath11k/bugreport
18398-
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
18397+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git
1839918398
F: drivers/net/wireless/ath/ath11k/
1840018399
N: ath11k
1840118400

@@ -18404,7 +18403,7 @@ M: Toke Høiland-Jørgensen <[email protected]>
1840418403
1840518404
S: Maintained
1840618405
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath9k
18407-
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
18406+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git
1840818407
F: Documentation/devicetree/bindings/net/wireless/qca,ath9k.yaml
1840918408
F: drivers/net/wireless/ath/ath9k/
1841018409

@@ -19509,7 +19508,6 @@ F: drivers/net/wireless/realtek/rtl818x/rtl8180/
1950919508

1951019509
RTL8187 WIRELESS DRIVER
1951119510
M: Hin-Tak Leung <[email protected]>
19512-
M: Larry Finger <[email protected]>
1951319511
1951419512
S: Maintained
1951519513
T: git https://github.com/pkshih/rtw.git
@@ -21247,7 +21245,6 @@ W: http://wiki.laptop.org/go/DCON
2124721245
F: drivers/staging/olpc_dcon/
2124821246

2124921247
STAGING - REALTEK RTL8712U DRIVERS
21250-
M: Larry Finger <[email protected]>
2125121248
M: Florian Schilhabel <[email protected]>.
2125221249
S: Odd Fixes
2125321250
F: drivers/staging/rtl8712/

drivers/net/wireless/ti/wlcore/cmd.c

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1566,13 +1566,6 @@ int wl12xx_cmd_add_peer(struct wl1271 *wl, struct wl12xx_vif *wlvif,
15661566
cpu_to_le32(wl1271_tx_enabled_rates_get(wl, sta_rates,
15671567
wlvif->band));
15681568

1569-
if (!cmd->supported_rates) {
1570-
wl1271_debug(DEBUG_CMD,
1571-
"peer has no supported rates yet, configuring basic rates: 0x%x",
1572-
wlvif->basic_rate_set);
1573-
cmd->supported_rates = cpu_to_le32(wlvif->basic_rate_set);
1574-
}
1575-
15761569
wl1271_debug(DEBUG_CMD, "new peer rates=0x%x queues=0x%x",
15771570
cmd->supported_rates, sta->uapsd_queues);
15781571

drivers/net/wireless/ti/wlcore/main.c

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5139,19 +5139,23 @@ static int wl12xx_update_sta_state(struct wl1271 *wl,
51395139

51405140
/* Add station (AP mode) */
51415141
if (is_ap &&
5142-
old_state == IEEE80211_STA_NOTEXIST &&
5143-
new_state == IEEE80211_STA_NONE) {
5142+
old_state == IEEE80211_STA_AUTH &&
5143+
new_state == IEEE80211_STA_ASSOC) {
51445144
ret = wl12xx_sta_add(wl, wlvif, sta);
51455145
if (ret)
51465146
return ret;
51475147

5148+
wl_sta->fw_added = true;
5149+
51485150
wlcore_update_inconn_sta(wl, wlvif, wl_sta, true);
51495151
}
51505152

51515153
/* Remove station (AP mode) */
51525154
if (is_ap &&
5153-
old_state == IEEE80211_STA_NONE &&
5154-
new_state == IEEE80211_STA_NOTEXIST) {
5155+
old_state == IEEE80211_STA_ASSOC &&
5156+
new_state == IEEE80211_STA_AUTH) {
5157+
wl_sta->fw_added = false;
5158+
51555159
/* must not fail */
51565160
wl12xx_sta_remove(wl, wlvif, sta);
51575161

@@ -5165,11 +5169,6 @@ static int wl12xx_update_sta_state(struct wl1271 *wl,
51655169
if (ret < 0)
51665170
return ret;
51675171

5168-
/* reconfigure rates */
5169-
ret = wl12xx_cmd_add_peer(wl, wlvif, sta, wl_sta->hlid);
5170-
if (ret < 0)
5171-
return ret;
5172-
51735172
ret = wl1271_acx_set_ht_capabilities(wl, &sta->deflink.ht_cap,
51745173
true,
51755174
wl_sta->hlid);

drivers/net/wireless/ti/wlcore/tx.c

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -140,11 +140,8 @@ EXPORT_SYMBOL(wl12xx_is_dummy_packet);
140140
static u8 wl12xx_tx_get_hlid_ap(struct wl1271 *wl, struct wl12xx_vif *wlvif,
141141
struct sk_buff *skb, struct ieee80211_sta *sta)
142142
{
143-
if (sta) {
144-
struct wl1271_station *wl_sta;
145-
146-
wl_sta = (struct wl1271_station *)sta->drv_priv;
147-
return wl_sta->hlid;
143+
if (sta && wl1271_station(sta)->fw_added) {
144+
return wl1271_station(sta)->hlid;
148145
} else {
149146
struct ieee80211_hdr *hdr;
150147

drivers/net/wireless/ti/wlcore/wlcore_i.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,7 @@ struct wl12xx_rx_filter {
324324

325325
struct wl1271_station {
326326
u8 hlid;
327+
bool fw_added;
327328
bool in_connection;
328329

329330
/*
@@ -335,6 +336,11 @@ struct wl1271_station {
335336
u64 total_freed_pkts;
336337
};
337338

339+
static inline struct wl1271_station *wl1271_station(struct ieee80211_sta *sta)
340+
{
341+
return (struct wl1271_station *)sta->drv_priv;
342+
}
343+
338344
struct wl12xx_vif {
339345
struct wl1271 *wl;
340346
struct list_head list;

net/mac80211/main.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,7 @@ u64 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata)
423423
BSS_CHANGED_ERP_SLOT;
424424
}
425425

426+
/* context: requires softirqs disabled */
426427
void ieee80211_handle_queued_frames(struct ieee80211_local *local)
427428
{
428429
struct sk_buff *skb;

net/mac80211/util.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1567,7 +1567,9 @@ u32 ieee80211_sta_get_rates(struct ieee80211_sub_if_data *sdata,
15671567

15681568
void ieee80211_stop_device(struct ieee80211_local *local)
15691569
{
1570+
local_bh_disable();
15701571
ieee80211_handle_queued_frames(local);
1572+
local_bh_enable();
15711573

15721574
ieee80211_led_radio(local, false);
15731575
ieee80211_mod_tpt_led_trig(local, 0, IEEE80211_TPT_LEDTRIG_FL_RADIO);

net/wireless/nl80211.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -468,6 +468,10 @@ static const struct netlink_range_validation nl80211_punct_bitmap_range = {
468468
.max = 0xffff,
469469
};
470470

471+
static const struct netlink_range_validation q_range = {
472+
.max = INT_MAX,
473+
};
474+
471475
static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = {
472476
[0] = { .strict_start_type = NL80211_ATTR_HE_OBSS_PD },
473477
[NL80211_ATTR_WIPHY] = { .type = NLA_U32 },
@@ -754,7 +758,7 @@ static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = {
754758

755759
[NL80211_ATTR_TXQ_LIMIT] = { .type = NLA_U32 },
756760
[NL80211_ATTR_TXQ_MEMORY_LIMIT] = { .type = NLA_U32 },
757-
[NL80211_ATTR_TXQ_QUANTUM] = { .type = NLA_U32 },
761+
[NL80211_ATTR_TXQ_QUANTUM] = NLA_POLICY_FULL_RANGE(NLA_U32, &q_range),
758762
[NL80211_ATTR_HE_CAPABILITY] =
759763
NLA_POLICY_VALIDATE_FN(NLA_BINARY, validate_he_capa,
760764
NL80211_HE_MAX_CAPABILITY_LEN),

0 commit comments

Comments
 (0)