mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-18 08:35:08 +08:00
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 -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEpeA8sTs3M8SN2hR410qiO8sPaAAFAmZ9Iz4ACgkQ10qiO8sP aADG+hAAl4kOGUfU2URi7zd4iod0NCXo9Hqrn7tGkkj1szcO2GvRc69Mja4AKo3L eeUJe/YuGGAGS7myH6+ZF6yymMdLyq8qrcPKN7YeZATcaO/n6K90Go3Wsaz7jXWC xZcnbGV3qvYrAmraA6fxOJ42Z7bt3+h+VVqUU7h/a1iWvuKB+u5f0zn78LLNwwYq HOw/kbe8oAadUOb1Sj7QHdG0ZBvXNwr3q0oTFMW06Z/TxAITovsHQtQcjmi9uJQV ILXitLCo/Xe+skSnAeyC4wNSJYFGWO5TurgW1d7y9ZR5/xQtM95VIciQSLWoD/tR cbQLbNjML17yxvU7G6U7WYxgMFghhUA476GFIsis3s3/KxvQ5nIzQc403yltVpl3 I4E6mF63M37jvY+O3UyDWhWeYbR1/BBh6MQ2fKz57UZqvgLkzVohRwsK4G0jhF+S HmBALZmVOZFJGYDn/mxZIYwdG1iZoKSE/KMNrjNE/mX7IuE8ax5vvFqJ5yqYF6tq IpBoh/NOh9sa0Jq8gfb6VikM424hZ9tkzf5/+C7mhyW3Dl/pzcEojAjeoG5jMnrN 6r+nwypEt2byOE2GrIAKTcH4XhjQSXeedbC7vZ31Cm2ynT1K1H+cysMKl2wa18xz luweG0L4m9FQDBkT8UUPMlcZKNszye1cp+2F4tbZOKRKbMillXU= =TLwj -----END PGP SIGNATURE----- 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/20240627083627.15312-3-johannes@sipsolutions.net Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
ffb7aa9fed
4
CREDITS
4
CREDITS
@ -1214,6 +1214,10 @@ D: UDF filesystem
|
|||||||
S: (ask for current address)
|
S: (ask for current address)
|
||||||
S: USA
|
S: USA
|
||||||
|
|
||||||
|
N: Larry Finger
|
||||||
|
E: Larry.Finger@lwfinger.net
|
||||||
|
D: Maintainer of wireless drivers, too many to list here
|
||||||
|
|
||||||
N: Jürgen Fischer
|
N: Jürgen Fischer
|
||||||
E: fischer@norbit.de
|
E: fischer@norbit.de
|
||||||
D: Author of Adaptec AHA-152x SCSI driver
|
D: Author of Adaptec AHA-152x SCSI driver
|
||||||
|
13
MAINTAINERS
13
MAINTAINERS
@ -3601,10 +3601,9 @@ W: https://wireless.wiki.kernel.org/en/users/Drivers/b43
|
|||||||
F: drivers/net/wireless/broadcom/b43/
|
F: drivers/net/wireless/broadcom/b43/
|
||||||
|
|
||||||
B43LEGACY WIRELESS DRIVER
|
B43LEGACY WIRELESS DRIVER
|
||||||
M: Larry Finger <Larry.Finger@lwfinger.net>
|
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
L: b43-dev@lists.infradead.org
|
L: b43-dev@lists.infradead.org
|
||||||
S: Maintained
|
S: Orphan
|
||||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/b43
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/b43
|
||||||
F: drivers/net/wireless/broadcom/b43legacy/
|
F: drivers/net/wireless/broadcom/b43legacy/
|
||||||
|
|
||||||
@ -18374,7 +18373,7 @@ M: Jeff Johnson <jjohnson@kernel.org>
|
|||||||
L: ath12k@lists.infradead.org
|
L: ath12k@lists.infradead.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath12k
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath12k
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git
|
||||||
F: drivers/net/wireless/ath/ath12k/
|
F: drivers/net/wireless/ath/ath12k/
|
||||||
N: ath12k
|
N: ath12k
|
||||||
|
|
||||||
@ -18384,7 +18383,7 @@ M: Jeff Johnson <jjohnson@kernel.org>
|
|||||||
L: ath10k@lists.infradead.org
|
L: ath10k@lists.infradead.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git
|
||||||
F: drivers/net/wireless/ath/ath10k/
|
F: drivers/net/wireless/ath/ath10k/
|
||||||
N: ath10k
|
N: ath10k
|
||||||
|
|
||||||
@ -18395,7 +18394,7 @@ L: ath11k@lists.infradead.org
|
|||||||
S: Supported
|
S: Supported
|
||||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath11k
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath11k
|
||||||
B: https://wireless.wiki.kernel.org/en/users/Drivers/ath11k/bugreport
|
B: https://wireless.wiki.kernel.org/en/users/Drivers/ath11k/bugreport
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git
|
||||||
F: drivers/net/wireless/ath/ath11k/
|
F: drivers/net/wireless/ath/ath11k/
|
||||||
N: ath11k
|
N: ath11k
|
||||||
|
|
||||||
@ -18404,7 +18403,7 @@ M: Toke Høiland-Jørgensen <toke@toke.dk>
|
|||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath9k
|
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath9k
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git
|
||||||
F: Documentation/devicetree/bindings/net/wireless/qca,ath9k.yaml
|
F: Documentation/devicetree/bindings/net/wireless/qca,ath9k.yaml
|
||||||
F: drivers/net/wireless/ath/ath9k/
|
F: drivers/net/wireless/ath/ath9k/
|
||||||
|
|
||||||
@ -19509,7 +19508,6 @@ F: drivers/net/wireless/realtek/rtl818x/rtl8180/
|
|||||||
|
|
||||||
RTL8187 WIRELESS DRIVER
|
RTL8187 WIRELESS DRIVER
|
||||||
M: Hin-Tak Leung <hintak.leung@gmail.com>
|
M: Hin-Tak Leung <hintak.leung@gmail.com>
|
||||||
M: Larry Finger <Larry.Finger@lwfinger.net>
|
|
||||||
L: linux-wireless@vger.kernel.org
|
L: linux-wireless@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git https://github.com/pkshih/rtw.git
|
T: git https://github.com/pkshih/rtw.git
|
||||||
@ -21247,7 +21245,6 @@ W: http://wiki.laptop.org/go/DCON
|
|||||||
F: drivers/staging/olpc_dcon/
|
F: drivers/staging/olpc_dcon/
|
||||||
|
|
||||||
STAGING - REALTEK RTL8712U DRIVERS
|
STAGING - REALTEK RTL8712U DRIVERS
|
||||||
M: Larry Finger <Larry.Finger@lwfinger.net>
|
|
||||||
M: Florian Schilhabel <florian.c.schilhabel@googlemail.com>.
|
M: Florian Schilhabel <florian.c.schilhabel@googlemail.com>.
|
||||||
S: Odd Fixes
|
S: Odd Fixes
|
||||||
F: drivers/staging/rtl8712/
|
F: drivers/staging/rtl8712/
|
||||||
|
@ -1566,13 +1566,6 @@ int wl12xx_cmd_add_peer(struct wl1271 *wl, struct wl12xx_vif *wlvif,
|
|||||||
cpu_to_le32(wl1271_tx_enabled_rates_get(wl, sta_rates,
|
cpu_to_le32(wl1271_tx_enabled_rates_get(wl, sta_rates,
|
||||||
wlvif->band));
|
wlvif->band));
|
||||||
|
|
||||||
if (!cmd->supported_rates) {
|
|
||||||
wl1271_debug(DEBUG_CMD,
|
|
||||||
"peer has no supported rates yet, configuring basic rates: 0x%x",
|
|
||||||
wlvif->basic_rate_set);
|
|
||||||
cmd->supported_rates = cpu_to_le32(wlvif->basic_rate_set);
|
|
||||||
}
|
|
||||||
|
|
||||||
wl1271_debug(DEBUG_CMD, "new peer rates=0x%x queues=0x%x",
|
wl1271_debug(DEBUG_CMD, "new peer rates=0x%x queues=0x%x",
|
||||||
cmd->supported_rates, sta->uapsd_queues);
|
cmd->supported_rates, sta->uapsd_queues);
|
||||||
|
|
||||||
|
@ -5139,19 +5139,23 @@ static int wl12xx_update_sta_state(struct wl1271 *wl,
|
|||||||
|
|
||||||
/* Add station (AP mode) */
|
/* Add station (AP mode) */
|
||||||
if (is_ap &&
|
if (is_ap &&
|
||||||
old_state == IEEE80211_STA_NOTEXIST &&
|
old_state == IEEE80211_STA_AUTH &&
|
||||||
new_state == IEEE80211_STA_NONE) {
|
new_state == IEEE80211_STA_ASSOC) {
|
||||||
ret = wl12xx_sta_add(wl, wlvif, sta);
|
ret = wl12xx_sta_add(wl, wlvif, sta);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
wl_sta->fw_added = true;
|
||||||
|
|
||||||
wlcore_update_inconn_sta(wl, wlvif, wl_sta, true);
|
wlcore_update_inconn_sta(wl, wlvif, wl_sta, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Remove station (AP mode) */
|
/* Remove station (AP mode) */
|
||||||
if (is_ap &&
|
if (is_ap &&
|
||||||
old_state == IEEE80211_STA_NONE &&
|
old_state == IEEE80211_STA_ASSOC &&
|
||||||
new_state == IEEE80211_STA_NOTEXIST) {
|
new_state == IEEE80211_STA_AUTH) {
|
||||||
|
wl_sta->fw_added = false;
|
||||||
|
|
||||||
/* must not fail */
|
/* must not fail */
|
||||||
wl12xx_sta_remove(wl, wlvif, sta);
|
wl12xx_sta_remove(wl, wlvif, sta);
|
||||||
|
|
||||||
@ -5165,11 +5169,6 @@ static int wl12xx_update_sta_state(struct wl1271 *wl,
|
|||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
/* reconfigure rates */
|
|
||||||
ret = wl12xx_cmd_add_peer(wl, wlvif, sta, wl_sta->hlid);
|
|
||||||
if (ret < 0)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
ret = wl1271_acx_set_ht_capabilities(wl, &sta->deflink.ht_cap,
|
ret = wl1271_acx_set_ht_capabilities(wl, &sta->deflink.ht_cap,
|
||||||
true,
|
true,
|
||||||
wl_sta->hlid);
|
wl_sta->hlid);
|
||||||
|
@ -140,11 +140,8 @@ EXPORT_SYMBOL(wl12xx_is_dummy_packet);
|
|||||||
static u8 wl12xx_tx_get_hlid_ap(struct wl1271 *wl, struct wl12xx_vif *wlvif,
|
static u8 wl12xx_tx_get_hlid_ap(struct wl1271 *wl, struct wl12xx_vif *wlvif,
|
||||||
struct sk_buff *skb, struct ieee80211_sta *sta)
|
struct sk_buff *skb, struct ieee80211_sta *sta)
|
||||||
{
|
{
|
||||||
if (sta) {
|
if (sta && wl1271_station(sta)->fw_added) {
|
||||||
struct wl1271_station *wl_sta;
|
return wl1271_station(sta)->hlid;
|
||||||
|
|
||||||
wl_sta = (struct wl1271_station *)sta->drv_priv;
|
|
||||||
return wl_sta->hlid;
|
|
||||||
} else {
|
} else {
|
||||||
struct ieee80211_hdr *hdr;
|
struct ieee80211_hdr *hdr;
|
||||||
|
|
||||||
|
@ -324,6 +324,7 @@ struct wl12xx_rx_filter {
|
|||||||
|
|
||||||
struct wl1271_station {
|
struct wl1271_station {
|
||||||
u8 hlid;
|
u8 hlid;
|
||||||
|
bool fw_added;
|
||||||
bool in_connection;
|
bool in_connection;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -335,6 +336,11 @@ struct wl1271_station {
|
|||||||
u64 total_freed_pkts;
|
u64 total_freed_pkts;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static inline struct wl1271_station *wl1271_station(struct ieee80211_sta *sta)
|
||||||
|
{
|
||||||
|
return (struct wl1271_station *)sta->drv_priv;
|
||||||
|
}
|
||||||
|
|
||||||
struct wl12xx_vif {
|
struct wl12xx_vif {
|
||||||
struct wl1271 *wl;
|
struct wl1271 *wl;
|
||||||
struct list_head list;
|
struct list_head list;
|
||||||
|
@ -423,6 +423,7 @@ u64 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata)
|
|||||||
BSS_CHANGED_ERP_SLOT;
|
BSS_CHANGED_ERP_SLOT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* context: requires softirqs disabled */
|
||||||
void ieee80211_handle_queued_frames(struct ieee80211_local *local)
|
void ieee80211_handle_queued_frames(struct ieee80211_local *local)
|
||||||
{
|
{
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
|
@ -1567,7 +1567,9 @@ u32 ieee80211_sta_get_rates(struct ieee80211_sub_if_data *sdata,
|
|||||||
|
|
||||||
void ieee80211_stop_device(struct ieee80211_local *local)
|
void ieee80211_stop_device(struct ieee80211_local *local)
|
||||||
{
|
{
|
||||||
|
local_bh_disable();
|
||||||
ieee80211_handle_queued_frames(local);
|
ieee80211_handle_queued_frames(local);
|
||||||
|
local_bh_enable();
|
||||||
|
|
||||||
ieee80211_led_radio(local, false);
|
ieee80211_led_radio(local, false);
|
||||||
ieee80211_mod_tpt_led_trig(local, 0, IEEE80211_TPT_LEDTRIG_FL_RADIO);
|
ieee80211_mod_tpt_led_trig(local, 0, IEEE80211_TPT_LEDTRIG_FL_RADIO);
|
||||||
|
@ -468,6 +468,10 @@ static const struct netlink_range_validation nl80211_punct_bitmap_range = {
|
|||||||
.max = 0xffff,
|
.max = 0xffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const struct netlink_range_validation q_range = {
|
||||||
|
.max = INT_MAX,
|
||||||
|
};
|
||||||
|
|
||||||
static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = {
|
static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = {
|
||||||
[0] = { .strict_start_type = NL80211_ATTR_HE_OBSS_PD },
|
[0] = { .strict_start_type = NL80211_ATTR_HE_OBSS_PD },
|
||||||
[NL80211_ATTR_WIPHY] = { .type = NLA_U32 },
|
[NL80211_ATTR_WIPHY] = { .type = NLA_U32 },
|
||||||
@ -754,7 +758,7 @@ static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = {
|
|||||||
|
|
||||||
[NL80211_ATTR_TXQ_LIMIT] = { .type = NLA_U32 },
|
[NL80211_ATTR_TXQ_LIMIT] = { .type = NLA_U32 },
|
||||||
[NL80211_ATTR_TXQ_MEMORY_LIMIT] = { .type = NLA_U32 },
|
[NL80211_ATTR_TXQ_MEMORY_LIMIT] = { .type = NLA_U32 },
|
||||||
[NL80211_ATTR_TXQ_QUANTUM] = { .type = NLA_U32 },
|
[NL80211_ATTR_TXQ_QUANTUM] = NLA_POLICY_FULL_RANGE(NLA_U32, &q_range),
|
||||||
[NL80211_ATTR_HE_CAPABILITY] =
|
[NL80211_ATTR_HE_CAPABILITY] =
|
||||||
NLA_POLICY_VALIDATE_FN(NLA_BINARY, validate_he_capa,
|
NLA_POLICY_VALIDATE_FN(NLA_BINARY, validate_he_capa,
|
||||||
NL80211_HE_MAX_CAPABILITY_LEN),
|
NL80211_HE_MAX_CAPABILITY_LEN),
|
||||||
|
Loading…
Reference in New Issue
Block a user