wireless fixes for v6.8-rc7
Few remaining fixes, hopefully the last wireless pull request to v6.8. Two fixes to the stack and two to iwlwifi but no high priority fixes this time. -----BEGIN PGP SIGNATURE----- iQFFBAABCgAvFiEEiBjanGPFTz4PRfLobhckVSbrbZsFAmXd6e8RHGt2YWxvQGtl cm5lbC5vcmcACgkQbhckVSbrbZvZ1Qf9HVcuUzZoWabHq7AlgW1cSM1Qre0vTXIx kuBypruFuStvHaTQ/YR5tFA/lLdbyvS9LfpX3LbiW0W+EgL7I+1eB2h2y6To+jgZ IsbTCf+sHzkBT+EYPJnzTOv86YfN+sbGDKrQsOfAqIop9H9taF8VxVuUZofDgbEB S/uV88e6B1Ot0mpaUNWO3w5/Xv+YBNtUBgPawRUU4IIpGEhluePkRMm3RSVi2wjm 2mxNJHjsI7OLkKivCm1PYMfC177p47/2fMAKMDkOqkhc8//svrOzcyoh0vNBea/a 7OO5GX39lcVgOy97uj7mvNL0qvFAK8396gTi8k1heOmkGhI0mlcKow== =/obR -----END PGP SIGNATURE----- Merge tag 'wireless-2024-02-27' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless Kalle Valo says: ==================== wireless fixes for v6.8-rc7 Few remaining fixes, hopefully the last wireless pull request to v6.8. Two fixes to the stack and two to iwlwifi but no high priority fixes this time. * tag 'wireless-2024-02-27' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless: wifi: mac80211: only call drv_sta_rc_update for uploaded stations MAINTAINERS: wifi: Add N: ath1*k entries to match .yaml files MAINTAINERS: wifi: update Jeff Johnson e-mail address wifi: iwlwifi: mvm: fix the TXF mapping for BZ devices wifi: iwlwifi: mvm: ensure offloading TID queue exists wifi: nl80211: reject iftype change with mesh ID change ==================== Link: https://lore.kernel.org/r/20240227135751.C5EC6C43390@smtp.kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
ed2c0e4cb6
11
MAINTAINERS
11
MAINTAINERS
@ -17984,33 +17984,34 @@ F: drivers/media/tuners/qt1010*
|
||||
|
||||
QUALCOMM ATH12K WIRELESS DRIVER
|
||||
M: Kalle Valo <kvalo@kernel.org>
|
||||
M: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
M: Jeff Johnson <jjohnson@kernel.org>
|
||||
L: ath12k@lists.infradead.org
|
||||
S: Supported
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath12k
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
|
||||
F: drivers/net/wireless/ath/ath12k/
|
||||
N: ath12k
|
||||
|
||||
QUALCOMM ATHEROS ATH10K WIRELESS DRIVER
|
||||
M: Kalle Valo <kvalo@kernel.org>
|
||||
M: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
M: Jeff Johnson <jjohnson@kernel.org>
|
||||
L: ath10k@lists.infradead.org
|
||||
S: Supported
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
|
||||
F: Documentation/devicetree/bindings/net/wireless/qcom,ath10k.yaml
|
||||
F: drivers/net/wireless/ath/ath10k/
|
||||
N: ath10k
|
||||
|
||||
QUALCOMM ATHEROS ATH11K WIRELESS DRIVER
|
||||
M: Kalle Valo <kvalo@kernel.org>
|
||||
M: Jeff Johnson <quic_jjohnson@quicinc.com>
|
||||
M: Jeff Johnson <jjohnson@kernel.org>
|
||||
L: ath11k@lists.infradead.org
|
||||
S: Supported
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath11k
|
||||
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
|
||||
F: Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
|
||||
F: drivers/net/wireless/ath/ath11k/
|
||||
N: ath11k
|
||||
|
||||
QUALCOMM ATHEROS ATH9K WIRELESS DRIVER
|
||||
M: Toke Høiland-Jørgensen <toke@toke.dk>
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
|
||||
/*
|
||||
* Copyright (C) 2005-2014, 2019-2021, 2023 Intel Corporation
|
||||
* Copyright (C) 2005-2014, 2019-2021, 2023-2024 Intel Corporation
|
||||
* Copyright (C) 2013-2015 Intel Mobile Communications GmbH
|
||||
* Copyright (C) 2016-2017 Intel Deutschland GmbH
|
||||
*/
|
||||
@ -66,6 +66,16 @@ enum iwl_gen2_tx_fifo {
|
||||
IWL_GEN2_TRIG_TX_FIFO_VO,
|
||||
};
|
||||
|
||||
enum iwl_bz_tx_fifo {
|
||||
IWL_BZ_EDCA_TX_FIFO_BK,
|
||||
IWL_BZ_EDCA_TX_FIFO_BE,
|
||||
IWL_BZ_EDCA_TX_FIFO_VI,
|
||||
IWL_BZ_EDCA_TX_FIFO_VO,
|
||||
IWL_BZ_TRIG_TX_FIFO_BK,
|
||||
IWL_BZ_TRIG_TX_FIFO_BE,
|
||||
IWL_BZ_TRIG_TX_FIFO_VI,
|
||||
IWL_BZ_TRIG_TX_FIFO_VO,
|
||||
};
|
||||
/**
|
||||
* enum iwl_tx_queue_cfg_actions - TXQ config options
|
||||
* @TX_QUEUE_CFG_ENABLE_QUEUE: enable a queue
|
||||
|
@ -1279,7 +1279,9 @@ static int __iwl_mvm_suspend(struct ieee80211_hw *hw,
|
||||
|
||||
mvm->net_detect = true;
|
||||
} else {
|
||||
struct iwl_wowlan_config_cmd wowlan_config_cmd = {};
|
||||
struct iwl_wowlan_config_cmd wowlan_config_cmd = {
|
||||
.offloading_tid = 0,
|
||||
};
|
||||
|
||||
wowlan_config_cmd.sta_id = mvmvif->deflink.ap_sta_id;
|
||||
|
||||
@ -1291,6 +1293,11 @@ static int __iwl_mvm_suspend(struct ieee80211_hw *hw,
|
||||
goto out_noreset;
|
||||
}
|
||||
|
||||
ret = iwl_mvm_sta_ensure_queue(
|
||||
mvm, ap_sta->txq[wowlan_config_cmd.offloading_tid]);
|
||||
if (ret)
|
||||
goto out_noreset;
|
||||
|
||||
ret = iwl_mvm_get_wowlan_config(mvm, wowlan, &wowlan_config_cmd,
|
||||
vif, mvmvif, ap_sta);
|
||||
if (ret)
|
||||
|
@ -31,6 +31,17 @@ const u8 iwl_mvm_ac_to_gen2_tx_fifo[] = {
|
||||
IWL_GEN2_TRIG_TX_FIFO_BK,
|
||||
};
|
||||
|
||||
const u8 iwl_mvm_ac_to_bz_tx_fifo[] = {
|
||||
IWL_BZ_EDCA_TX_FIFO_VO,
|
||||
IWL_BZ_EDCA_TX_FIFO_VI,
|
||||
IWL_BZ_EDCA_TX_FIFO_BE,
|
||||
IWL_BZ_EDCA_TX_FIFO_BK,
|
||||
IWL_BZ_TRIG_TX_FIFO_VO,
|
||||
IWL_BZ_TRIG_TX_FIFO_VI,
|
||||
IWL_BZ_TRIG_TX_FIFO_BE,
|
||||
IWL_BZ_TRIG_TX_FIFO_BK,
|
||||
};
|
||||
|
||||
struct iwl_mvm_mac_iface_iterator_data {
|
||||
struct iwl_mvm *mvm;
|
||||
struct ieee80211_vif *vif;
|
||||
|
@ -1581,12 +1581,16 @@ static inline int iwl_mvm_max_active_links(struct iwl_mvm *mvm,
|
||||
|
||||
extern const u8 iwl_mvm_ac_to_tx_fifo[];
|
||||
extern const u8 iwl_mvm_ac_to_gen2_tx_fifo[];
|
||||
extern const u8 iwl_mvm_ac_to_bz_tx_fifo[];
|
||||
|
||||
static inline u8 iwl_mvm_mac_ac_to_tx_fifo(struct iwl_mvm *mvm,
|
||||
enum ieee80211_ac_numbers ac)
|
||||
{
|
||||
return iwl_mvm_has_new_tx_api(mvm) ?
|
||||
iwl_mvm_ac_to_gen2_tx_fifo[ac] : iwl_mvm_ac_to_tx_fifo[ac];
|
||||
if (mvm->trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_BZ)
|
||||
return iwl_mvm_ac_to_bz_tx_fifo[ac];
|
||||
if (iwl_mvm_has_new_tx_api(mvm))
|
||||
return iwl_mvm_ac_to_gen2_tx_fifo[ac];
|
||||
return iwl_mvm_ac_to_tx_fifo[ac];
|
||||
}
|
||||
|
||||
struct iwl_rate_info {
|
||||
|
@ -1502,6 +1502,34 @@ out_err:
|
||||
return ret;
|
||||
}
|
||||
|
||||
int iwl_mvm_sta_ensure_queue(struct iwl_mvm *mvm,
|
||||
struct ieee80211_txq *txq)
|
||||
{
|
||||
struct iwl_mvm_txq *mvmtxq = iwl_mvm_txq_from_mac80211(txq);
|
||||
int ret = -EINVAL;
|
||||
|
||||
lockdep_assert_held(&mvm->mutex);
|
||||
|
||||
if (likely(test_bit(IWL_MVM_TXQ_STATE_READY, &mvmtxq->state)) ||
|
||||
!txq->sta) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!iwl_mvm_sta_alloc_queue(mvm, txq->sta, txq->ac, txq->tid)) {
|
||||
set_bit(IWL_MVM_TXQ_STATE_READY, &mvmtxq->state);
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
local_bh_disable();
|
||||
spin_lock(&mvm->add_stream_lock);
|
||||
if (!list_empty(&mvmtxq->list))
|
||||
list_del_init(&mvmtxq->list);
|
||||
spin_unlock(&mvm->add_stream_lock);
|
||||
local_bh_enable();
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void iwl_mvm_add_new_dqa_stream_wk(struct work_struct *wk)
|
||||
{
|
||||
struct iwl_mvm *mvm = container_of(wk, struct iwl_mvm,
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
|
||||
/*
|
||||
* Copyright (C) 2012-2014, 2018-2023 Intel Corporation
|
||||
* Copyright (C) 2012-2014, 2018-2024 Intel Corporation
|
||||
* Copyright (C) 2013-2014 Intel Mobile Communications GmbH
|
||||
* Copyright (C) 2015-2016 Intel Deutschland GmbH
|
||||
*/
|
||||
@ -571,6 +571,7 @@ void iwl_mvm_modify_all_sta_disable_tx(struct iwl_mvm *mvm,
|
||||
bool disable);
|
||||
|
||||
void iwl_mvm_csa_client_absent(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
|
||||
int iwl_mvm_sta_ensure_queue(struct iwl_mvm *mvm, struct ieee80211_txq *txq);
|
||||
void iwl_mvm_add_new_dqa_stream_wk(struct work_struct *wk);
|
||||
int iwl_mvm_add_pasn_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
|
||||
struct iwl_mvm_int_sta *sta, u8 *addr, u32 cipher,
|
||||
|
@ -119,7 +119,8 @@ void rate_control_rate_update(struct ieee80211_local *local,
|
||||
rcu_read_unlock();
|
||||
}
|
||||
|
||||
drv_sta_rc_update(local, sta->sdata, &sta->sta, changed);
|
||||
if (sta->uploaded)
|
||||
drv_sta_rc_update(local, sta->sdata, &sta->sta, changed);
|
||||
}
|
||||
|
||||
int ieee80211_rate_control_register(const struct rate_control_ops *ops)
|
||||
|
@ -4197,6 +4197,8 @@ static int nl80211_set_interface(struct sk_buff *skb, struct genl_info *info)
|
||||
|
||||
if (ntype != NL80211_IFTYPE_MESH_POINT)
|
||||
return -EINVAL;
|
||||
if (otype != NL80211_IFTYPE_MESH_POINT)
|
||||
return -EINVAL;
|
||||
if (netif_running(dev))
|
||||
return -EBUSY;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user