ath11k_nss: refresh and fixup patches

This commit is contained in:
Qosmio 2024-03-25 13:31:04 -04:00 committed by Sean Khan
parent 0abe35e9ac
commit d0af869c9e
50 changed files with 236 additions and 317 deletions

View File

@ -434,9 +434,9 @@ endef
ifdef CONFIG_ATH11K_NSS_SUPPORT ifdef CONFIG_ATH11K_NSS_SUPPORT
define KernelPackage/ath11k/install define KernelPackage/ath11k/install
$(INSTALL_DIR) $(1)/etc/init.d $(1)/etc/config $(INSTALL_DIR) $(1)/etc/init.d $(1)/etc/config
$(INSTALL_BIN) ./files/qca-nss-pbuf.init $(1)/etc/init.d/qca-nss-pbuf $(INSTALL_BIN) ./files/qca-nss-pbuf.init $(1)/etc/init.d/qca-nss-pbuf
$(INSTALL_BIN) ./files/pbuf.uci $(1)/etc/config/pbuf $(INSTALL_BIN) ./files/pbuf.uci $(1)/etc/config/pbuf
endef endef
endif endif

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath11k/mac.c --- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -9579,6 +9579,8 @@ static int __ath11k_mac_register(struct @@ -9580,6 +9580,8 @@ static int __ath11k_mac_register(struct
wiphy_ext_feature_set(ar->hw->wiphy, wiphy_ext_feature_set(ar->hw->wiphy,
NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT); NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT);

View File

@ -747,7 +747,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
.configure_filter = ath11k_mac_op_configure_filter, .configure_filter = ath11k_mac_op_configure_filter,
.hw_scan = ath11k_mac_op_hw_scan, .hw_scan = ath11k_mac_op_hw_scan,
.cancel_hw_scan = ath11k_mac_op_cancel_hw_scan, .cancel_hw_scan = ath11k_mac_op_cancel_hw_scan,
@@ -9529,7 +9637,8 @@ static int __ath11k_mac_register(struct @@ -9530,7 +9638,8 @@ static int __ath11k_mac_register(struct
ieee80211_hw_set(ar->hw, TX_AMPDU_SETUP_IN_HW); ieee80211_hw_set(ar->hw, TX_AMPDU_SETUP_IN_HW);
ieee80211_hw_set(ar->hw, SUPPORTS_REORDERING_BUFFER); ieee80211_hw_set(ar->hw, SUPPORTS_REORDERING_BUFFER);
ieee80211_hw_set(ar->hw, SUPPORTS_AMSDU_IN_AMPDU); ieee80211_hw_set(ar->hw, SUPPORTS_AMSDU_IN_AMPDU);
@ -757,7 +757,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
} }
ar->hw->wiphy->features |= NL80211_FEATURE_STATIC_SMPS; ar->hw->wiphy->features |= NL80211_FEATURE_STATIC_SMPS;
@@ -9644,6 +9753,9 @@ static int __ath11k_mac_register(struct @@ -9645,6 +9754,9 @@ static int __ath11k_mac_register(struct
ab->hw_params.bios_sar_capa) ab->hw_params.bios_sar_capa)
ar->hw->wiphy->sar_capa = ab->hw_params.bios_sar_capa; ar->hw->wiphy->sar_capa = ab->hw_params.bios_sar_capa;

View File

@ -369,7 +369,7 @@ Signed-off-by: Seevalamuthu Mariappan <seevalam@codeaurora.org>
int ath11k_dp_tx(struct ath11k *ar, struct ath11k_vif *arvif, int ath11k_dp_tx(struct ath11k *ar, struct ath11k_vif *arvif,
--- a/drivers/net/wireless/ath/ath11k/mac.c --- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -9770,6 +9770,9 @@ static int __ath11k_mac_register(struct @@ -9771,6 +9771,9 @@ static int __ath11k_mac_register(struct
*/ */
ar->hw->wiphy->interface_modes &= ~BIT(NL80211_IFTYPE_MONITOR); ar->hw->wiphy->interface_modes &= ~BIT(NL80211_IFTYPE_MONITOR);

View File

@ -43,7 +43,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
struct ath11k_vif_iter { struct ath11k_vif_iter {
--- a/drivers/net/wireless/ath/ath11k/mac.c --- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -4744,6 +4744,11 @@ static void ath11k_sta_rc_update_wk(stru @@ -4739,6 +4739,11 @@ static void ath11k_sta_rc_update_wk(stru
arvif = arsta->arvif; arvif = arsta->arvif;
ar = arvif->ar; ar = arvif->ar;
@ -55,7 +55,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (WARN_ON(ath11k_mac_vif_chan(arvif->vif, &def))) if (WARN_ON(ath11k_mac_vif_chan(arvif->vif, &def)))
return; return;
@@ -4915,17 +4920,28 @@ err_rc_bw_changed: @@ -4910,17 +4915,28 @@ err_rc_bw_changed:
static void ath11k_sta_set_4addr_wk(struct work_struct *wk) static void ath11k_sta_set_4addr_wk(struct work_struct *wk)
{ {
struct ath11k *ar; struct ath11k *ar;
@ -86,7 +86,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
"setting USE_4ADDR for peer %pM\n", sta->addr); "setting USE_4ADDR for peer %pM\n", sta->addr);
ret = ath11k_wmi_set_peer_param(ar, sta->addr, ret = ath11k_wmi_set_peer_param(ar, sta->addr,
@@ -4933,8 +4949,93 @@ static void ath11k_sta_set_4addr_wk(stru @@ -4928,8 +4944,93 @@ static void ath11k_sta_set_4addr_wk(stru
WMI_PEER_USE_4ADDR, 1); WMI_PEER_USE_4ADDR, 1);
if (ret) if (ret)
@ -181,7 +181,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
} }
static int ath11k_mac_inc_num_stations(struct ath11k_vif *arvif, static int ath11k_mac_inc_num_stations(struct ath11k_vif *arvif,
@@ -5264,9 +5365,32 @@ static void ath11k_mac_op_sta_set_4addr( @@ -5259,9 +5360,32 @@ static void ath11k_mac_op_sta_set_4addr(
struct ieee80211_sta *sta, bool enabled) struct ieee80211_sta *sta, bool enabled)
{ {
struct ath11k *ar = hw->priv; struct ath11k *ar = hw->priv;
@ -214,7 +214,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
ieee80211_queue_work(ar->hw, &arsta->set_4addr_wk); ieee80211_queue_work(ar->hw, &arsta->set_4addr_wk);
arsta->use_4addr_set = true; arsta->use_4addr_set = true;
} }
@@ -6646,6 +6770,9 @@ static int ath11k_mac_op_update_vif_offl @@ -6641,6 +6765,9 @@ static int ath11k_mac_op_update_vif_offl
u32 param_id, param_value; u32 param_id, param_value;
int ret; int ret;
@ -224,7 +224,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
param_id = WMI_VDEV_PARAM_TX_ENCAP_TYPE; param_id = WMI_VDEV_PARAM_TX_ENCAP_TYPE;
if (ath11k_frame_mode != ATH11K_HW_TXRX_ETHERNET || if (ath11k_frame_mode != ATH11K_HW_TXRX_ETHERNET ||
(vif->type != NL80211_IFTYPE_STATION && (vif->type != NL80211_IFTYPE_STATION &&
@@ -6866,7 +6993,8 @@ static int ath11k_mac_op_add_interface(s @@ -6861,7 +6988,8 @@ static int ath11k_mac_op_add_interface(s
goto err; goto err;
} }
@ -234,7 +234,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
ath11k_warn(ab, "failed to create vdev %u, reached max vdev limit %d\n", ath11k_warn(ab, "failed to create vdev %u, reached max vdev limit %d\n",
ar->num_created_vdevs, TARGET_NUM_VDEVS(ab)); ar->num_created_vdevs, TARGET_NUM_VDEVS(ab));
ret = -EBUSY; ret = -EBUSY;
@@ -6886,6 +7014,28 @@ static int ath11k_mac_op_add_interface(s @@ -6881,6 +7009,28 @@ static int ath11k_mac_op_add_interface(s
arvif->vif = vif; arvif->vif = vif;
INIT_LIST_HEAD(&arvif->list); INIT_LIST_HEAD(&arvif->list);
@ -263,7 +263,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
INIT_DELAYED_WORK(&arvif->connection_loss_work, INIT_DELAYED_WORK(&arvif->connection_loss_work,
ath11k_mac_vif_sta_connection_loss_work); ath11k_mac_vif_sta_connection_loss_work);
@@ -6915,6 +7065,7 @@ static int ath11k_mac_op_add_interface(s @@ -6910,6 +7060,7 @@ static int ath11k_mac_op_add_interface(s
fallthrough; fallthrough;
case NL80211_IFTYPE_AP: case NL80211_IFTYPE_AP:
arvif->vdev_type = WMI_VDEV_TYPE_AP; arvif->vdev_type = WMI_VDEV_TYPE_AP;
@ -271,7 +271,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
break; break;
case NL80211_IFTYPE_MONITOR: case NL80211_IFTYPE_MONITOR:
arvif->vdev_type = WMI_VDEV_TYPE_MONITOR; arvif->vdev_type = WMI_VDEV_TYPE_MONITOR;
@@ -7137,13 +7288,30 @@ static void ath11k_mac_op_remove_interfa @@ -7132,13 +7283,30 @@ static void ath11k_mac_op_remove_interfa
struct ath11k *ar = hw->priv; struct ath11k *ar = hw->priv;
struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
struct ath11k_base *ab = ar->ab; struct ath11k_base *ab = ar->ab;
@ -304,7 +304,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
ath11k_dbg(ab, ATH11K_DBG_MAC, "remove interface (vdev %d)\n", ath11k_dbg(ab, ATH11K_DBG_MAC, "remove interface (vdev %d)\n",
arvif->vdev_id); arvif->vdev_id);
@@ -7160,6 +7328,14 @@ static void ath11k_mac_op_remove_interfa @@ -7155,6 +7323,14 @@ static void ath11k_mac_op_remove_interfa
if (ret) if (ret)
ath11k_warn(ab, "failed to submit AP self-peer removal on vdev %d: %d\n", ath11k_warn(ab, "failed to submit AP self-peer removal on vdev %d: %d\n",
arvif->vdev_id, ret); arvif->vdev_id, ret);
@ -319,7 +319,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
} }
ret = ath11k_mac_vdev_delete(ar, arvif); ret = ath11k_mac_vdev_delete(ar, arvif);
@@ -7203,8 +7379,7 @@ err_vdev_del: @@ -7198,8 +7374,7 @@ err_vdev_del:
ath11k_debugfs_remove_interface(arvif); ath11k_debugfs_remove_interface(arvif);
@ -329,7 +329,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
mutex_unlock(&ar->conf_mutex); mutex_unlock(&ar->conf_mutex);
} }
@@ -7264,16 +7439,17 @@ static int ath11k_mac_op_ampdu_action(st @@ -7259,16 +7434,17 @@ static int ath11k_mac_op_ampdu_action(st
struct ieee80211_ampdu_params *params) struct ieee80211_ampdu_params *params)
{ {
struct ath11k *ar = hw->priv; struct ath11k *ar = hw->priv;
@ -349,7 +349,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
break; break;
case IEEE80211_AMPDU_TX_START: case IEEE80211_AMPDU_TX_START:
case IEEE80211_AMPDU_TX_STOP_CONT: case IEEE80211_AMPDU_TX_STOP_CONT:
@@ -8796,6 +8972,7 @@ static void ath11k_mac_op_sta_statistics @@ -8791,6 +8967,7 @@ static void ath11k_mac_op_sta_statistics
{ {
struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta);
struct ath11k *ar = arsta->arvif->ar; struct ath11k *ar = arsta->arvif->ar;
@ -357,7 +357,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
s8 signal; s8 signal;
bool db2dbm = test_bit(WMI_TLV_SERVICE_HW_DB2DBM_CONVERSION_SUPPORT, bool db2dbm = test_bit(WMI_TLV_SERVICE_HW_DB2DBM_CONVERSION_SUPPORT,
ar->ab->wmi_ab.svc_map); ar->ab->wmi_ab.svc_map);
@@ -8852,7 +9029,8 @@ static void ath11k_mac_op_sta_statistics @@ -8847,7 +9024,8 @@ static void ath11k_mac_op_sta_statistics
ATH11K_DEFAULT_NOISE_FLOOR; ATH11K_DEFAULT_NOISE_FLOOR;
sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL_AVG); sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL_AVG);

View File

@ -83,7 +83,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
struct ath11k_vif_iter { struct ath11k_vif_iter {
--- a/drivers/net/wireless/ath/ath11k/mac.c --- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -351,6 +351,10 @@ enum nl80211_he_gi ath11k_mac_he_gi_to_n @@ -346,6 +346,10 @@ enum nl80211_he_gi ath11k_mac_he_gi_to_n
return ret; return ret;
} }
@ -94,7 +94,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
u8 ath11k_mac_bw_to_mac80211_bw(u8 bw) u8 ath11k_mac_bw_to_mac80211_bw(u8 bw)
{ {
u8 ret = 0; u8 ret = 0;
@@ -723,6 +727,33 @@ u8 ath11k_mac_get_target_pdev_id(struct @@ -718,6 +722,33 @@ u8 ath11k_mac_get_target_pdev_id(struct
return ar->ab->target_pdev_ids[0].pdev_id; return ar->ab->target_pdev_ids[0].pdev_id;
} }
@ -128,7 +128,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
static void ath11k_pdev_caps_update(struct ath11k *ar) static void ath11k_pdev_caps_update(struct ath11k *ar)
{ {
struct ath11k_base *ab = ar->ab; struct ath11k_base *ab = ar->ab;
@@ -4172,6 +4203,9 @@ static int ath11k_install_key(struct ath @@ -4167,6 +4198,9 @@ static int ath11k_install_key(struct ath
if (test_bit(ATH11K_FLAG_HW_CRYPTO_DISABLED, &ar->ab->dev_flags)) if (test_bit(ATH11K_FLAG_HW_CRYPTO_DISABLED, &ar->ab->dev_flags))
return 0; return 0;
@ -138,7 +138,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (cmd == DISABLE_KEY) { if (cmd == DISABLE_KEY) {
arg.key_cipher = WMI_CIPHER_NONE; arg.key_cipher = WMI_CIPHER_NONE;
arg.key_data = NULL; arg.key_data = NULL;
@@ -4261,15 +4295,40 @@ static int ath11k_clear_peer_keys(struct @@ -4256,15 +4290,40 @@ static int ath11k_clear_peer_keys(struct
return first_errno; return first_errno;
} }
@ -181,7 +181,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
const u8 *peer_addr; const u8 *peer_addr;
int ret = 0; int ret = 0;
u32 flags = 0; u32 flags = 0;
@@ -4287,17 +4346,38 @@ static int ath11k_mac_op_set_key(struct @@ -4282,17 +4341,38 @@ static int ath11k_mac_op_set_key(struct
if (key->keyidx > WMI_MAX_KEY_INDEX) if (key->keyidx > WMI_MAX_KEY_INDEX)
return -ENOSPC; return -ENOSPC;
@ -224,7 +224,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
/* the peer should not disappear in mid-way (unless FW goes awry) since /* the peer should not disappear in mid-way (unless FW goes awry) since
* we already hold conf_mutex. we just make sure its there now. * we already hold conf_mutex. we just make sure its there now.
*/ */
@@ -4342,6 +4422,74 @@ static int ath11k_mac_op_set_key(struct @@ -4337,6 +4417,74 @@ static int ath11k_mac_op_set_key(struct
goto exit; goto exit;
} }
@ -299,7 +299,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
spin_lock_bh(&ab->base_lock); spin_lock_bh(&ab->base_lock);
peer = ath11k_peer_find(ab, arvif->vdev_id, peer_addr); peer = ath11k_peer_find(ab, arvif->vdev_id, peer_addr);
@@ -4364,6 +4512,27 @@ static int ath11k_mac_op_set_key(struct @@ -4359,6 +4507,27 @@ static int ath11k_mac_op_set_key(struct
goto unlock; goto unlock;
} }
@ -327,7 +327,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (peer && cmd == SET_KEY) { if (peer && cmd == SET_KEY) {
peer->keys[key->keyidx] = key; peer->keys[key->keyidx] = key;
if (key->flags & IEEE80211_KEY_FLAG_PAIRWISE) { if (key->flags & IEEE80211_KEY_FLAG_PAIRWISE) {
@@ -4373,18 +4542,23 @@ static int ath11k_mac_op_set_key(struct @@ -4368,18 +4537,23 @@ static int ath11k_mac_op_set_key(struct
peer->mcast_keyidx = key->keyidx; peer->mcast_keyidx = key->keyidx;
peer->sec_type_grp = ath11k_dp_tx_get_encrypt_type(key->cipher); peer->sec_type_grp = ath11k_dp_tx_get_encrypt_type(key->cipher);
} }
@ -354,7 +354,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
switch (key->cipher) { switch (key->cipher) {
case WLAN_CIPHER_SUITE_TKIP: case WLAN_CIPHER_SUITE_TKIP:
@@ -5191,6 +5365,33 @@ static u32 ath11k_mac_ieee80211_sta_bw_t @@ -5186,6 +5360,33 @@ static u32 ath11k_mac_ieee80211_sta_bw_t
return bw; return bw;
} }
@ -388,7 +388,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
static int ath11k_mac_op_sta_state(struct ieee80211_hw *hw, static int ath11k_mac_op_sta_state(struct ieee80211_hw *hw,
struct ieee80211_vif *vif, struct ieee80211_vif *vif,
struct ieee80211_sta *sta, struct ieee80211_sta *sta,
@@ -5300,6 +5501,34 @@ static int ath11k_mac_op_sta_state(struc @@ -5295,6 +5496,34 @@ static int ath11k_mac_op_sta_state(struc
if (ret) if (ret)
ath11k_warn(ar->ab, "Unable to authorize peer %pM vdev %d: %d\n", ath11k_warn(ar->ab, "Unable to authorize peer %pM vdev %d: %d\n",
sta->addr, arvif->vdev_id, ret); sta->addr, arvif->vdev_id, ret);
@ -423,7 +423,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
} }
} else if (old_state == IEEE80211_STA_AUTHORIZED && } else if (old_state == IEEE80211_STA_AUTHORIZED &&
new_state == IEEE80211_STA_ASSOC) { new_state == IEEE80211_STA_ASSOC) {
@@ -7018,7 +7247,7 @@ static int ath11k_mac_op_add_interface(s @@ -7013,7 +7242,7 @@ static int ath11k_mac_op_add_interface(s
if ((vif->type == NL80211_IFTYPE_AP_VLAN || if ((vif->type == NL80211_IFTYPE_AP_VLAN ||
vif->type == NL80211_IFTYPE_STATION) && ab->nss.enabled) { vif->type == NL80211_IFTYPE_STATION) && ab->nss.enabled) {
if (ath11k_frame_mode == ATH11K_HW_TXRX_ETHERNET && if (ath11k_frame_mode == ATH11K_HW_TXRX_ETHERNET &&
@ -432,7 +432,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
vif->offload_flags |= IEEE80211_OFFLOAD_ENCAP_4ADDR; vif->offload_flags |= IEEE80211_OFFLOAD_ENCAP_4ADDR;
arvif->nss.encap = ATH11K_HW_TXRX_ETHERNET; arvif->nss.encap = ATH11K_HW_TXRX_ETHERNET;
arvif->nss.decap = ATH11K_HW_TXRX_ETHERNET; arvif->nss.decap = ATH11K_HW_TXRX_ETHERNET;
@@ -7031,6 +7260,7 @@ static int ath11k_mac_op_add_interface(s @@ -7026,6 +7255,7 @@ static int ath11k_mac_op_add_interface(s
vif->addr, ret); vif->addr, ret);
goto err; goto err;
} }
@ -440,7 +440,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
mutex_unlock(&ar->conf_mutex); mutex_unlock(&ar->conf_mutex);
return ret; return ret;
} }
@@ -7055,6 +7285,20 @@ static int ath11k_mac_op_add_interface(s @@ -7050,6 +7280,20 @@ static int ath11k_mac_op_add_interface(s
arvif->vdev_id = bit; arvif->vdev_id = bit;
arvif->vdev_subtype = WMI_VDEV_SUBTYPE_NONE; arvif->vdev_subtype = WMI_VDEV_SUBTYPE_NONE;
@ -461,7 +461,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
switch (vif->type) { switch (vif->type) {
case NL80211_IFTYPE_UNSPECIFIED: case NL80211_IFTYPE_UNSPECIFIED:
case NL80211_IFTYPE_STATION: case NL80211_IFTYPE_STATION:
@@ -7095,7 +7339,7 @@ static int ath11k_mac_op_add_interface(s @@ -7090,7 +7334,7 @@ static int ath11k_mac_op_add_interface(s
if (ret) { if (ret) {
ath11k_warn(ab, "failed to create WMI vdev %d: %d\n", ath11k_warn(ab, "failed to create WMI vdev %d: %d\n",
arvif->vdev_id, ret); arvif->vdev_id, ret);
@ -470,7 +470,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
} }
ar->num_created_vdevs++; ar->num_created_vdevs++;
@@ -7254,7 +7498,7 @@ err_peer_del: @@ -7249,7 +7493,7 @@ err_peer_del:
if (fbret) { if (fbret) {
ath11k_warn(ar->ab, "fallback fail to delete peer addr %pM vdev_id %d ret %d\n", ath11k_warn(ar->ab, "fallback fail to delete peer addr %pM vdev_id %d ret %d\n",
vif->addr, arvif->vdev_id, fbret); vif->addr, arvif->vdev_id, fbret);
@ -479,7 +479,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
} }
} }
@@ -7265,6 +7509,8 @@ err_vdev_del: @@ -7260,6 +7504,8 @@ err_vdev_del:
list_del(&arvif->list); list_del(&arvif->list);
spin_unlock_bh(&ar->data_lock); spin_unlock_bh(&ar->data_lock);
@ -488,7 +488,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
err: err:
mutex_unlock(&ar->conf_mutex); mutex_unlock(&ar->conf_mutex);
@@ -7362,6 +7608,7 @@ err_vdev_del: @@ -7357,6 +7603,7 @@ err_vdev_del:
list_del(&arvif->list); list_del(&arvif->list);
spin_unlock_bh(&ar->data_lock); spin_unlock_bh(&ar->data_lock);
@ -496,7 +496,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
ath11k_peer_cleanup(ar, arvif->vdev_id); ath11k_peer_cleanup(ar, arvif->vdev_id);
idr_for_each(&ar->txmgmt_idr, idr_for_each(&ar->txmgmt_idr,
@@ -9960,8 +10207,11 @@ static int __ath11k_mac_register(struct @@ -9956,8 +10203,11 @@ static int __ath11k_mac_register(struct
ab->hw_params.bios_sar_capa) ab->hw_params.bios_sar_capa)
ar->hw->wiphy->sar_capa = ab->hw_params.bios_sar_capa; ar->hw->wiphy->sar_capa = ab->hw_params.bios_sar_capa;

View File

@ -328,7 +328,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
bool (*rx_desc_get_mpdu_fc_valid)(struct hal_rx_desc *desc); bool (*rx_desc_get_mpdu_fc_valid)(struct hal_rx_desc *desc);
--- a/drivers/net/wireless/ath/ath11k/mac.c --- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -5532,6 +5532,14 @@ static int ath11k_mac_op_sta_state(struc @@ -5527,6 +5527,14 @@ static int ath11k_mac_op_sta_state(struc
} }
} else if (old_state == IEEE80211_STA_AUTHORIZED && } else if (old_state == IEEE80211_STA_AUTHORIZED &&
new_state == IEEE80211_STA_ASSOC) { new_state == IEEE80211_STA_ASSOC) {

View File

@ -430,7 +430,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/mac.c --- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -6669,12 +6669,22 @@ static void ath11k_mac_op_tx(struct ieee @@ -6664,12 +6664,22 @@ static void ath11k_mac_op_tx(struct ieee
if (control->sta) if (control->sta)
arsta = ath11k_sta_to_arsta(control->sta); arsta = ath11k_sta_to_arsta(control->sta);
@ -454,7 +454,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
ieee80211_free_txskb(ar->hw, skb); ieee80211_free_txskb(ar->hw, skb);
return; return;
} }
@@ -7622,7 +7632,7 @@ err_vdev_del: @@ -7617,7 +7627,7 @@ err_vdev_del:
idr_for_each(&ar->txmgmt_idr, idr_for_each(&ar->txmgmt_idr,
ath11k_mac_vif_txmgmt_idr_remove, vif); ath11k_mac_vif_txmgmt_idr_remove, vif);

View File

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/ath/ath11k/mac.c --- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -6267,6 +6267,8 @@ static int ath11k_mac_copy_he_cap(struct @@ -6262,6 +6262,8 @@ static int ath11k_mac_copy_he_cap(struct
memcpy(he_cap_elem->phy_cap_info, band_cap->he_cap_phy_info, memcpy(he_cap_elem->phy_cap_info, band_cap->he_cap_phy_info,
sizeof(he_cap_elem->phy_cap_info)); sizeof(he_cap_elem->phy_cap_info));

View File

@ -1238,7 +1238,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/mac.c --- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -3474,6 +3474,18 @@ static void ath11k_mac_op_nss_bss_info_c @@ -3469,6 +3469,18 @@ static void ath11k_mac_op_nss_bss_info_c
ath11k_warn(ar->ab, "failed to set ap_isolate in nss %d\n", ret); ath11k_warn(ar->ab, "failed to set ap_isolate in nss %d\n", ret);
} }
@ -1257,7 +1257,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
mutex_unlock(&ar->conf_mutex); mutex_unlock(&ar->conf_mutex);
} }
@@ -9714,6 +9726,28 @@ err_fallback: @@ -9709,6 +9721,28 @@ err_fallback:
return 0; return 0;
} }
@ -1286,7 +1286,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
static const struct ieee80211_ops ath11k_ops = { static const struct ieee80211_ops ath11k_ops = {
.tx = ath11k_mac_op_tx, .tx = ath11k_mac_op_tx,
.wake_tx_queue = ieee80211_handle_wake_tx_queue, .wake_tx_queue = ieee80211_handle_wake_tx_queue,
@@ -9771,6 +9805,9 @@ static const struct ieee80211_ops ath11k @@ -9766,6 +9800,9 @@ static const struct ieee80211_ops ath11k
.set_sar_specs = ath11k_mac_op_set_bios_sar_specs, .set_sar_specs = ath11k_mac_op_set_bios_sar_specs,
.remain_on_channel = ath11k_mac_op_remain_on_channel, .remain_on_channel = ath11k_mac_op_remain_on_channel,
.cancel_remain_on_channel = ath11k_mac_op_cancel_remain_on_channel, .cancel_remain_on_channel = ath11k_mac_op_cancel_remain_on_channel,
@ -1296,7 +1296,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
}; };
static void ath11k_mac_update_ch_list(struct ath11k *ar, static void ath11k_mac_update_ch_list(struct ath11k *ar,
@@ -10231,6 +10268,8 @@ static int __ath11k_mac_register(struct @@ -10227,6 +10264,8 @@ static int __ath11k_mac_register(struct
ieee80211_hw_set(ar->hw, SUPPORTS_NSS_OFFLOAD); ieee80211_hw_set(ar->hw, SUPPORTS_NSS_OFFLOAD);
wiphy_ext_feature_set(ar->hw->wiphy, wiphy_ext_feature_set(ar->hw->wiphy,
NL80211_EXT_FEATURE_VLAN_OFFLOAD); NL80211_EXT_FEATURE_VLAN_OFFLOAD);

View File

@ -23,7 +23,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/mac.c --- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -7643,8 +7643,10 @@ err_vdev_del: @@ -7638,8 +7638,10 @@ err_vdev_del:
kfree(arvif->vlan_keyid_map); kfree(arvif->vlan_keyid_map);
ath11k_peer_cleanup(ar, arvif->vdev_id); ath11k_peer_cleanup(ar, arvif->vdev_id);

View File

@ -56,7 +56,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
static void ath11k_ahb_free_resources(struct ath11k_base *ab) static void ath11k_ahb_free_resources(struct ath11k_base *ab)
--- a/drivers/net/wireless/ath/ath11k/core.c --- a/drivers/net/wireless/ath/ath11k/core.c
+++ b/drivers/net/wireless/ath/ath11k/core.c +++ b/drivers/net/wireless/ath/ath11k/core.c
@@ -2212,6 +2212,7 @@ struct ath11k_base *ath11k_core_alloc(st @@ -2211,6 +2211,7 @@ struct ath11k_base *ath11k_core_alloc(st
mutex_init(&ab->core_lock); mutex_init(&ab->core_lock);
mutex_init(&ab->tbl_mtx_lock); mutex_init(&ab->tbl_mtx_lock);
@ -64,7 +64,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
spin_lock_init(&ab->base_lock); spin_lock_init(&ab->base_lock);
mutex_init(&ab->vdev_id_11d_lock); mutex_init(&ab->vdev_id_11d_lock);
init_completion(&ab->reset_complete); init_completion(&ab->reset_complete);
@@ -2225,6 +2226,8 @@ struct ath11k_base *ath11k_core_alloc(st @@ -2224,6 +2225,8 @@ struct ath11k_base *ath11k_core_alloc(st
INIT_WORK(&ab->restart_work, ath11k_core_restart); INIT_WORK(&ab->restart_work, ath11k_core_restart);
INIT_WORK(&ab->update_11d_work, ath11k_update_11d); INIT_WORK(&ab->update_11d_work, ath11k_update_11d);
INIT_WORK(&ab->reset_work, ath11k_core_reset); INIT_WORK(&ab->reset_work, ath11k_core_reset);

View File

@ -58,7 +58,7 @@ Signed-off-by: Venkateswara Naralasetty <quic_vnaralas@quicinc.com>
tcl_cmd.info3 = FIELD_PREP(HAL_TCL_DATA_CMD_INFO3_DSCP_TID_TABLE_IDX, tcl_cmd.info3 = FIELD_PREP(HAL_TCL_DATA_CMD_INFO3_DSCP_TID_TABLE_IDX,
--- a/drivers/net/wireless/ath/ath11k/mac.c --- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -10154,6 +10154,8 @@ static int __ath11k_mac_register(struct @@ -10150,6 +10150,8 @@ static int __ath11k_mac_register(struct
ieee80211_hw_set(ar->hw, USES_RSS); ieee80211_hw_set(ar->hw, USES_RSS);
} }

View File

@ -38,7 +38,7 @@ Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/core.c --- a/drivers/net/wireless/ath/ath11k/core.c
+++ b/drivers/net/wireless/ath/ath11k/core.c +++ b/drivers/net/wireless/ath/ath11k/core.c
@@ -1838,6 +1838,11 @@ static int ath11k_core_reconfigure_on_cr @@ -1837,6 +1837,11 @@ static int ath11k_core_reconfigure_on_cr
clear_bit(ATH11K_FLAG_CRASH_FLUSH, &ab->dev_flags); clear_bit(ATH11K_FLAG_CRASH_FLUSH, &ab->dev_flags);

View File

@ -17,7 +17,7 @@ Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/mac.c --- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -4899,12 +4899,6 @@ static int ath11k_station_disassoc(struc @@ -4894,12 +4894,6 @@ static int ath11k_station_disassoc(struc
return ret; return ret;
} }
@ -30,7 +30,7 @@ Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com>
return 0; return 0;
} }
@@ -5495,6 +5489,17 @@ static int ath11k_mac_op_sta_state(struc @@ -5490,6 +5484,17 @@ static int ath11k_mac_op_sta_state(struc
arsta->bw = ath11k_mac_ieee80211_sta_bw_to_wmi(ar, sta); arsta->bw = ath11k_mac_ieee80211_sta_bw_to_wmi(ar, sta);
arsta->bw_prev = arsta->bw; arsta->bw_prev = arsta->bw;
spin_unlock_bh(&ar->data_lock); spin_unlock_bh(&ar->data_lock);

View File

@ -36,7 +36,7 @@ Signed-off-by: Rajat Soni <quic_rajson@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/mac.c --- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -8001,7 +8001,9 @@ static int ath11k_mac_op_start(struct ie @@ -6786,7 +6786,9 @@ static int ath11k_mac_op_start(struct ie
break; break;
case ATH11K_STATE_RESTARTING: case ATH11K_STATE_RESTARTING:
ar->state = ATH11K_STATE_RESTARTED; ar->state = ATH11K_STATE_RESTARTED;
@ -48,7 +48,7 @@ Signed-off-by: Rajat Soni <quic_rajson@quicinc.com>
case ATH11K_STATE_WEDGED: case ATH11K_STATE_WEDGED:
--- a/drivers/net/wireless/ath/ath11k/qmi.c --- a/drivers/net/wireless/ath/ath11k/qmi.c
+++ b/drivers/net/wireless/ath/ath11k/qmi.c +++ b/drivers/net/wireless/ath/ath11k/qmi.c
@@ -2960,6 +2960,8 @@ static int ath11k_qmi_assign_target_mem_ @@ -2061,6 +2061,8 @@ static int ath11k_qmi_assign_target_mem_
if (!ab->qmi.target_mem[idx].iaddr) if (!ab->qmi.target_mem[idx].iaddr)
return -EIO; return -EIO;

View File

@ -25,11 +25,9 @@ Signed-off-by: Hari Chandrakanthan <quic_haric@quicinc.com>
drivers/net/wireless/ath/ath11k/mac.c | 2 ++ drivers/net/wireless/ath/ath11k/mac.c | 2 ++
1 file changed, 2 insertions(+) 1 file changed, 2 insertions(+)
diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index 28c9908ef816..dbdb7aa5c498 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c --- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -10266,6 +10266,8 @@ static int ath11k_mac_flush_tx_complete(struct ath11k *ar) @@ -8464,6 +8464,8 @@ static int ath11k_mac_flush_tx_complete(
ret = -ETIMEDOUT; ret = -ETIMEDOUT;
} }
@ -38,6 +36,3 @@ index 28c9908ef816..dbdb7aa5c498 100644
time_left = wait_event_timeout(ar->txmgmt_empty_waitq, time_left = wait_event_timeout(ar->txmgmt_empty_waitq,
(atomic_read(&ar->num_pending_mgmt_tx) == 0), (atomic_read(&ar->num_pending_mgmt_tx) == 0),
ATH11K_FLUSH_TIMEOUT); ATH11K_FLUSH_TIMEOUT);
--
2.7.4

View File

@ -48,7 +48,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c --- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c +++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -6090,7 +6090,9 @@ int ath11k_dp_rx_process_mon_status(stru @@ -6089,7 +6089,9 @@ int ath11k_dp_rx_process_mon_status(stru
if (!num_buffs_reaped) if (!num_buffs_reaped)
goto exit; goto exit;
@ -59,7 +59,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
ppdu_info->peer_id = HAL_INVALID_PEERID; ppdu_info->peer_id = HAL_INVALID_PEERID;
while ((skb = __skb_dequeue(&skb_list))) { while ((skb = __skb_dequeue(&skb_list))) {
@@ -6108,7 +6110,6 @@ int ath11k_dp_rx_process_mon_status(stru @@ -6107,7 +6109,6 @@ int ath11k_dp_rx_process_mon_status(stru
if (log_type != ATH11K_PKTLOG_TYPE_INVALID) if (log_type != ATH11K_PKTLOG_TYPE_INVALID)
trace_ath11k_htt_rxdesc(ar, skb->data, log_type, rx_buf_sz); trace_ath11k_htt_rxdesc(ar, skb->data, log_type, rx_buf_sz);
@ -67,7 +67,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
ppdu_info->peer_id = HAL_INVALID_PEERID; ppdu_info->peer_id = HAL_INVALID_PEERID;
hal_status = ath11k_hal_rx_parse_mon_status(ab, ppdu_info, skb); hal_status = ath11k_hal_rx_parse_mon_status(ab, ppdu_info, skb);
@@ -6136,6 +6137,7 @@ int ath11k_dp_rx_process_mon_status(stru @@ -6135,6 +6136,7 @@ int ath11k_dp_rx_process_mon_status(stru
if ((ppdu_info->peer_id == HAL_INVALID_PEERID || if ((ppdu_info->peer_id == HAL_INVALID_PEERID ||
hal_status != HAL_RX_MON_STATUS_PPDU_DONE)) { hal_status != HAL_RX_MON_STATUS_PPDU_DONE)) {
dev_kfree_skb_any(skb); dev_kfree_skb_any(skb);

View File

@ -40,7 +40,7 @@ Signed-off-by: Balamurugan Selvarajan <quic_bselvara@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c --- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c +++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -427,9 +427,9 @@ int ath11k_dp_rxbufs_replenish(struct at @@ -392,9 +392,9 @@ int ath11k_dp_rxbufs_replenish(struct at
skb->data); skb->data);
} }
@ -53,7 +53,7 @@ Signed-off-by: Balamurugan Selvarajan <quic_bselvara@quicinc.com>
if (dma_mapping_error(ab->dev, paddr)) if (dma_mapping_error(ab->dev, paddr))
goto fail_free_skb; goto fail_free_skb;
@@ -465,8 +465,8 @@ fail_idr_remove: @@ -430,8 +430,8 @@ fail_idr_remove:
idr_remove(&rx_ring->bufs_idr, buf_id); idr_remove(&rx_ring->bufs_idr, buf_id);
spin_unlock_bh(&rx_ring->idr_lock); spin_unlock_bh(&rx_ring->idr_lock);
fail_dma_unmap: fail_dma_unmap:

View File

@ -26,7 +26,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/mac.c --- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -8221,7 +8221,6 @@ ath11k_mac_op_assign_vif_chanctx(struct @@ -8218,7 +8218,6 @@ ath11k_mac_op_assign_vif_chanctx(struct
struct ath11k_base *ab = ar->ab; struct ath11k_base *ab = ar->ab;
struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
int ret; int ret;
@ -34,7 +34,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
mutex_lock(&ar->conf_mutex); mutex_lock(&ar->conf_mutex);
@@ -8244,21 +8243,6 @@ ath11k_mac_op_assign_vif_chanctx(struct @@ -8241,21 +8240,6 @@ ath11k_mac_op_assign_vif_chanctx(struct
goto out; goto out;
} }

View File

@ -19,7 +19,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/mac.c --- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -261,8 +261,8 @@ static const u32 ath11k_smps_map[] = { @@ -256,8 +256,8 @@ static const u32 ath11k_smps_map[] = {
[WLAN_HT_CAP_SM_PS_DISABLED] = WMI_PEER_SMPS_PS_NONE, [WLAN_HT_CAP_SM_PS_DISABLED] = WMI_PEER_SMPS_PS_NONE,
}; };
@ -30,7 +30,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
enum nl80211_he_ru_alloc ath11k_mac_phy_he_ru_to_nl80211_he_ru_alloc(u16 ru_phy) enum nl80211_he_ru_alloc ath11k_mac_phy_he_ru_to_nl80211_he_ru_alloc(u16 ru_phy)
{ {
@@ -5319,7 +5319,7 @@ static int ath11k_mac_station_add(struct @@ -5314,7 +5314,7 @@ static int ath11k_mac_station_add(struct
if (ab->hw_params.vdev_start_delay && if (ab->hw_params.vdev_start_delay &&
!arvif->is_started && !arvif->is_started &&
arvif->vdev_type != WMI_VDEV_TYPE_AP) { arvif->vdev_type != WMI_VDEV_TYPE_AP) {
@ -39,7 +39,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
if (ret) { if (ret) {
ath11k_warn(ab, "failed to delay vdev start: %d\n", ret); ath11k_warn(ab, "failed to delay vdev start: %d\n", ret);
goto free_tx_stats; goto free_tx_stats;
@@ -8164,8 +8164,8 @@ unlock: @@ -8161,8 +8161,8 @@ unlock:
mutex_unlock(&ar->conf_mutex); mutex_unlock(&ar->conf_mutex);
} }

View File

@ -18,7 +18,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/mac.c --- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -261,9 +261,6 @@ static const u32 ath11k_smps_map[] = { @@ -256,9 +256,6 @@ static const u32 ath11k_smps_map[] = {
[WLAN_HT_CAP_SM_PS_DISABLED] = WMI_PEER_SMPS_PS_NONE, [WLAN_HT_CAP_SM_PS_DISABLED] = WMI_PEER_SMPS_PS_NONE,
}; };
@ -28,7 +28,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
enum nl80211_he_ru_alloc ath11k_mac_phy_he_ru_to_nl80211_he_ru_alloc(u16 ru_phy) enum nl80211_he_ru_alloc ath11k_mac_phy_he_ru_to_nl80211_he_ru_alloc(u16 ru_phy)
{ {
enum nl80211_he_ru_alloc ret; enum nl80211_he_ru_alloc ret;
@@ -5249,100 +5246,6 @@ static void ath11k_mac_dec_num_stations( @@ -5244,100 +5241,6 @@ static void ath11k_mac_dec_num_stations(
ar->num_stations--; ar->num_stations--;
} }
@ -129,7 +129,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
static u32 ath11k_mac_ieee80211_sta_bw_to_wmi(struct ath11k *ar, static u32 ath11k_mac_ieee80211_sta_bw_to_wmi(struct ath11k *ar,
struct ieee80211_sta *sta) struct ieee80211_sta *sta)
{ {
@@ -5398,187 +5301,6 @@ static int ath11k_mac_cfg_dyn_vlan(struc @@ -5393,187 +5296,6 @@ static int ath11k_mac_cfg_dyn_vlan(struc
return ret; return ret;
} }
@ -317,7 +317,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
static int ath11k_mac_op_sta_set_txpwr(struct ieee80211_hw *hw, static int ath11k_mac_op_sta_set_txpwr(struct ieee80211_hw *hw,
struct ieee80211_vif *vif, struct ieee80211_vif *vif,
struct ieee80211_sta *sta) struct ieee80211_sta *sta)
@@ -9739,6 +9461,281 @@ ath11k_mac_op_config_mesh_offload_path(s @@ -9738,6 +9460,281 @@ ath11k_mac_op_config_mesh_offload_path(s
} }
#endif #endif

View File

@ -52,7 +52,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/mac.c --- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -7933,6 +7933,30 @@ static int ath11k_mac_start_vdev_delay(s @@ -7930,6 +7930,30 @@ static int ath11k_mac_start_vdev_delay(s
return 0; return 0;
} }
@ -83,7 +83,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
static int static int
ath11k_mac_op_assign_vif_chanctx(struct ieee80211_hw *hw, ath11k_mac_op_assign_vif_chanctx(struct ieee80211_hw *hw,
struct ieee80211_vif *vif, struct ieee80211_vif *vif,
@@ -7977,15 +8001,17 @@ ath11k_mac_op_assign_vif_chanctx(struct @@ -7974,15 +7998,17 @@ ath11k_mac_op_assign_vif_chanctx(struct
goto out; goto out;
} }
@ -109,7 +109,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
if (arvif->vdev_type != WMI_VDEV_TYPE_MONITOR && if (arvif->vdev_type != WMI_VDEV_TYPE_MONITOR &&
test_bit(ATH11K_FLAG_MONITOR_VDEV_CREATED, &ar->monitor_flags)) { test_bit(ATH11K_FLAG_MONITOR_VDEV_CREATED, &ar->monitor_flags)) {
@@ -8025,8 +8051,6 @@ ath11k_mac_op_unassign_vif_chanctx(struc @@ -8022,8 +8048,6 @@ ath11k_mac_op_unassign_vif_chanctx(struc
"chanctx unassign ptr %p vdev_id %i\n", "chanctx unassign ptr %p vdev_id %i\n",
ctx, arvif->vdev_id); ctx, arvif->vdev_id);
@ -118,7 +118,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
if (ab->hw_params.vdev_start_delay && if (ab->hw_params.vdev_start_delay &&
arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) { arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) {
spin_lock_bh(&ab->base_lock); spin_lock_bh(&ab->base_lock);
@@ -8050,24 +8074,13 @@ ath11k_mac_op_unassign_vif_chanctx(struc @@ -8047,24 +8071,13 @@ ath11k_mac_op_unassign_vif_chanctx(struc
return; return;
} }
@ -149,7 +149,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
} }
if (ab->hw_params.vdev_start_delay && if (ab->hw_params.vdev_start_delay &&
@@ -9555,6 +9568,46 @@ exit: @@ -9554,6 +9567,46 @@ exit:
return ret; return ret;
} }
@ -196,7 +196,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
static int ath11k_mac_op_sta_state(struct ieee80211_hw *hw, static int ath11k_mac_op_sta_state(struct ieee80211_hw *hw,
struct ieee80211_vif *vif, struct ieee80211_vif *vif,
struct ieee80211_sta *sta, struct ieee80211_sta *sta,
@@ -9590,31 +9643,15 @@ static int ath11k_mac_op_sta_state(struc @@ -9589,31 +9642,15 @@ static int ath11k_mac_op_sta_state(struc
sta->addr, arvif->vdev_id); sta->addr, arvif->vdev_id);
} else if ((old_state == IEEE80211_STA_NONE && } else if ((old_state == IEEE80211_STA_NONE &&
new_state == IEEE80211_STA_NOTEXIST)) { new_state == IEEE80211_STA_NOTEXIST)) {
@ -233,7 +233,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
ath11k_warn(ar->ab, "Found peer entry %pM n vdev %i after it was supposedly removed\n", ath11k_warn(ar->ab, "Found peer entry %pM n vdev %i after it was supposedly removed\n",
vif->addr, arvif->vdev_id); vif->addr, arvif->vdev_id);
ath11k_peer_rhash_delete(ar->ab, peer); ath11k_peer_rhash_delete(ar->ab, peer);
@@ -9625,12 +9662,6 @@ static int ath11k_mac_op_sta_state(struc @@ -9624,12 +9661,6 @@ static int ath11k_mac_op_sta_state(struc
} }
spin_unlock_bh(&ar->ab->base_lock); spin_unlock_bh(&ar->ab->base_lock);
mutex_unlock(&ar->ab->tbl_mtx_lock); mutex_unlock(&ar->ab->tbl_mtx_lock);

View File

@ -153,7 +153,7 @@
#include "hw.h" #include "hw.h"
#include "peer.h" #include "peer.h"
#include "mac.h" #include "mac.h"
@@ -551,7 +553,9 @@ static void ath11k_dp_tx_cache_peer_stat @@ -550,7 +552,9 @@ static void ath11k_dp_tx_cache_peer_stat
void ath11k_dp_tx_update_txcompl(struct ath11k *ar, struct hal_tx_status *ts) void ath11k_dp_tx_update_txcompl(struct ath11k *ar, struct hal_tx_status *ts)
{ {
struct ath11k_base *ab = ar->ab; struct ath11k_base *ab = ar->ab;
@ -163,7 +163,7 @@
enum hal_tx_rate_stats_pkt_type pkt_type; enum hal_tx_rate_stats_pkt_type pkt_type;
enum hal_tx_rate_stats_sgi sgi; enum hal_tx_rate_stats_sgi sgi;
enum hal_tx_rate_stats_bw bw; enum hal_tx_rate_stats_bw bw;
@@ -640,8 +644,10 @@ void ath11k_dp_tx_update_txcompl(struct @@ -639,8 +643,10 @@ void ath11k_dp_tx_update_txcompl(struct
ath11k_mac_he_ru_tones_to_nl80211_he_ru_alloc(ru_tones); ath11k_mac_he_ru_tones_to_nl80211_he_ru_alloc(ru_tones);
} }
@ -176,7 +176,7 @@
spin_unlock_bh(&ab->base_lock); spin_unlock_bh(&ab->base_lock);
--- a/drivers/net/wireless/ath/ath11k/mac.c --- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -9812,7 +9812,7 @@ static const struct ieee80211_ops ath11k @@ -9811,7 +9811,7 @@ static const struct ieee80211_ops ath11k
.set_wakeup = ath11k_wow_op_set_wakeup, .set_wakeup = ath11k_wow_op_set_wakeup,
#endif #endif

View File

@ -49,7 +49,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
* |-------------------------------------------------------------------| * |-------------------------------------------------------------------|
* | rsvd2 | ring_buffer_size | * | rsvd2 | ring_buffer_size |
* |-------------------------------------------------------------------| * |-------------------------------------------------------------------|
@@ -686,6 +691,14 @@ enum htt_stats_internal_ppdu_frametype { @@ -686,6 +687,14 @@ enum htt_stats_internal_ppdu_frametype {
* |-------------------------------------------------------------------| * |-------------------------------------------------------------------|
* | tlv_filter_in_flags | * | tlv_filter_in_flags |
* |-------------------------------------------------------------------| * |-------------------------------------------------------------------|
@ -64,7 +64,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
* Where: * Where:
* PS = pkt_swap * PS = pkt_swap
* SS = status_swap * SS = status_swap
@@ -699,7 +712,10 @@ enum htt_stats_internal_ppdu_frametype { @@ -699,7 +708,10 @@ enum htt_stats_internal_ppdu_frametype {
* More details can be got from enum htt_srng_ring_id * More details can be got from enum htt_srng_ring_id
* b'24 - status_swap: 1 is to swap status TLV * b'24 - status_swap: 1 is to swap status TLV
* b'25 - pkt_swap: 1 is to swap packet TLV * b'25 - pkt_swap: 1 is to swap packet TLV
@ -76,7 +76,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
* dword1 - b'0:16 - ring_buffer_size: size of buffers referenced by rx ring, * dword1 - b'0:16 - ring_buffer_size: size of buffers referenced by rx ring,
* in byte units. * in byte units.
* Valid only for HW_TO_SW_RING and SW_TO_HW_RING * Valid only for HW_TO_SW_RING and SW_TO_HW_RING
@@ -728,6 +744,42 @@ enum htt_stats_internal_ppdu_frametype { @@ -728,6 +740,42 @@ enum htt_stats_internal_ppdu_frametype {
* dword6 - b'0:31 - tlv_filter_in_flags: * dword6 - b'0:31 - tlv_filter_in_flags:
* Filter in Attention/MPDU/PPDU/Header/User tlvs * Filter in Attention/MPDU/PPDU/Header/User tlvs
* Refer to CFG_TLV_FILTER_IN_FLAG defs * Refer to CFG_TLV_FILTER_IN_FLAG defs
@ -119,7 +119,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
*/ */
#define HTT_RX_RING_SELECTION_CFG_CMD_INFO0_MSG_TYPE GENMASK(7, 0) #define HTT_RX_RING_SELECTION_CFG_CMD_INFO0_MSG_TYPE GENMASK(7, 0)
@@ -735,8 +787,16 @@ enum htt_stats_internal_ppdu_frametype { @@ -735,8 +783,16 @@ enum htt_stats_internal_ppdu_frametype {
#define HTT_RX_RING_SELECTION_CFG_CMD_INFO0_RING_ID GENMASK(23, 16) #define HTT_RX_RING_SELECTION_CFG_CMD_INFO0_RING_ID GENMASK(23, 16)
#define HTT_RX_RING_SELECTION_CFG_CMD_INFO0_SS BIT(24) #define HTT_RX_RING_SELECTION_CFG_CMD_INFO0_SS BIT(24)
#define HTT_RX_RING_SELECTION_CFG_CMD_INFO0_PS BIT(25) #define HTT_RX_RING_SELECTION_CFG_CMD_INFO0_PS BIT(25)
@ -136,7 +136,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
enum htt_rx_filter_tlv_flags { enum htt_rx_filter_tlv_flags {
HTT_RX_FILTER_TLV_FLAGS_MPDU_START = BIT(0), HTT_RX_FILTER_TLV_FLAGS_MPDU_START = BIT(0),
@@ -1040,6 +1100,14 @@ enum htt_rx_data_pkt_filter_tlv_flasg3 { @@ -1040,6 +1096,14 @@ enum htt_rx_data_pkt_filter_tlv_flasg3 {
HTT_RX_FILTER_TLV_FLAGS_PER_MSDU_HEADER | \ HTT_RX_FILTER_TLV_FLAGS_PER_MSDU_HEADER | \
HTT_RX_FILTER_TLV_FLAGS_ATTENTION) HTT_RX_FILTER_TLV_FLAGS_ATTENTION)
@ -151,7 +151,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
struct htt_rx_ring_selection_cfg_cmd { struct htt_rx_ring_selection_cfg_cmd {
u32 info0; u32 info0;
u32 info1; u32 info1;
@@ -1048,6 +1116,10 @@ struct htt_rx_ring_selection_cfg_cmd { @@ -1048,6 +1112,10 @@ struct htt_rx_ring_selection_cfg_cmd {
u32 pkt_type_en_flags2; u32 pkt_type_en_flags2;
u32 pkt_type_en_flags3; u32 pkt_type_en_flags3;
u32 rx_filter_tlv; u32 rx_filter_tlv;
@ -162,7 +162,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
} __packed; } __packed;
struct htt_rx_ring_tlv_filter { struct htt_rx_ring_tlv_filter {
@@ -1056,6 +1128,14 @@ struct htt_rx_ring_tlv_filter { @@ -1056,6 +1124,14 @@ struct htt_rx_ring_tlv_filter {
u32 pkt_filter_flags1; /* MGMT */ u32 pkt_filter_flags1; /* MGMT */
u32 pkt_filter_flags2; /* CTRL */ u32 pkt_filter_flags2; /* CTRL */
u32 pkt_filter_flags3; /* DATA */ u32 pkt_filter_flags3; /* DATA */
@ -228,7 +228,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
static void ath11k_dp_service_mon_ring(struct timer_list *t) static void ath11k_dp_service_mon_ring(struct timer_list *t)
{ {
struct ath11k_base *ab = from_timer(ab, t, mon_reap_timer); struct ath11k_base *ab = from_timer(ab, t, mon_reap_timer);
@@ -2387,6 +2422,49 @@ int ath11k_dp_rx_crypto_icv_len(struct a @@ -2389,6 +2424,49 @@ int ath11k_dp_rx_crypto_icv_len(struct a
return 0; return 0;
} }
@ -278,7 +278,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
static void ath11k_dp_rx_h_undecap_nwifi(struct ath11k *ar, static void ath11k_dp_rx_h_undecap_nwifi(struct ath11k *ar,
struct sk_buff *msdu, struct sk_buff *msdu,
u8 *first_hdr, u8 *first_hdr,
@@ -2400,7 +2478,8 @@ static void ath11k_dp_rx_h_undecap_nwifi @@ -2402,7 +2480,8 @@ static void ath11k_dp_rx_h_undecap_nwifi
u8 da[ETH_ALEN]; u8 da[ETH_ALEN];
u8 sa[ETH_ALEN]; u8 sa[ETH_ALEN];
u16 qos_ctl = 0; u16 qos_ctl = 0;
@ -288,7 +288,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
/* copy SA & DA and pull decapped header */ /* copy SA & DA and pull decapped header */
hdr = (struct ieee80211_hdr *)msdu->data; hdr = (struct ieee80211_hdr *)msdu->data;
@@ -2409,7 +2488,7 @@ static void ath11k_dp_rx_h_undecap_nwifi @@ -2411,7 +2490,7 @@ static void ath11k_dp_rx_h_undecap_nwifi
ether_addr_copy(sa, ieee80211_get_SA(hdr)); ether_addr_copy(sa, ieee80211_get_SA(hdr));
skb_pull(msdu, ieee80211_hdrlen(hdr->frame_control)); skb_pull(msdu, ieee80211_hdrlen(hdr->frame_control));
@ -297,7 +297,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
/* original 802.11 header is valid for the first msdu /* original 802.11 header is valid for the first msdu
* hence we can reuse the same header * hence we can reuse the same header
*/ */
@@ -2439,16 +2518,23 @@ static void ath11k_dp_rx_h_undecap_nwifi @@ -2441,16 +2520,23 @@ static void ath11k_dp_rx_h_undecap_nwifi
/* copy decap header before overwriting for reuse below */ /* copy decap header before overwriting for reuse below */
memcpy(decap_hdr, (uint8_t *)hdr, hdr_len); memcpy(decap_hdr, (uint8_t *)hdr, hdr_len);
@ -326,7 +326,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
memcpy(skb_push(msdu, memcpy(skb_push(msdu,
IEEE80211_QOS_CTL_LEN), &qos_ctl, IEEE80211_QOS_CTL_LEN), &qos_ctl,
IEEE80211_QOS_CTL_LEN); IEEE80211_QOS_CTL_LEN);
@@ -2564,6 +2650,20 @@ static void ath11k_dp_rx_h_undecap_eth(s @@ -2566,6 +2652,20 @@ static void ath11k_dp_rx_h_undecap_eth(s
u8 da[ETH_ALEN]; u8 da[ETH_ALEN];
u8 sa[ETH_ALEN]; u8 sa[ETH_ALEN];
void *rfc1042; void *rfc1042;
@ -347,7 +347,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
rfc1042 = ath11k_dp_rx_h_find_rfc1042(ar, msdu, enctype); rfc1042 = ath11k_dp_rx_h_find_rfc1042(ar, msdu, enctype);
if (WARN_ON_ONCE(!rfc1042)) if (WARN_ON_ONCE(!rfc1042))
@@ -2592,6 +2692,7 @@ static void ath11k_dp_rx_h_undecap_eth(s @@ -2594,6 +2694,7 @@ static void ath11k_dp_rx_h_undecap_eth(s
memcpy(skb_push(msdu, hdr_len), hdr, hdr_len); memcpy(skb_push(msdu, hdr_len), hdr, hdr_len);
@ -355,7 +355,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
/* original 802.11 header has a different DA and in /* original 802.11 header has a different DA and in
* case of 4addr it may also have different SA * case of 4addr it may also have different SA
*/ */
@@ -2610,6 +2711,7 @@ static void ath11k_dp_rx_h_undecap_snap( @@ -2612,6 +2713,7 @@ static void ath11k_dp_rx_h_undecap_snap(
size_t hdr_len; size_t hdr_len;
u8 l3_pad_bytes; u8 l3_pad_bytes;
struct hal_rx_desc *rx_desc; struct hal_rx_desc *rx_desc;
@ -363,7 +363,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
/* Delivered decapped frame: /* Delivered decapped frame:
* [amsdu header] <-- replaced with 802.11 hdr * [amsdu header] <-- replaced with 802.11 hdr
@@ -2623,6 +2725,11 @@ static void ath11k_dp_rx_h_undecap_snap( @@ -2625,6 +2727,11 @@ static void ath11k_dp_rx_h_undecap_snap(
skb_put(msdu, l3_pad_bytes); skb_put(msdu, l3_pad_bytes);
skb_pull(msdu, sizeof(struct ath11k_dp_amsdu_subframe_hdr) + l3_pad_bytes); skb_pull(msdu, sizeof(struct ath11k_dp_amsdu_subframe_hdr) + l3_pad_bytes);
@ -375,7 +375,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
hdr = (struct ieee80211_hdr *)first_hdr; hdr = (struct ieee80211_hdr *)first_hdr;
hdr_len = ieee80211_hdrlen(hdr->frame_control); hdr_len = ieee80211_hdrlen(hdr->frame_control);
@@ -3097,6 +3204,20 @@ static int ath11k_dp_rx_process_msdu(str @@ -3098,6 +3205,20 @@ static int ath11k_dp_rx_process_msdu(str
goto free_out; goto free_out;
} }
@ -396,7 +396,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
rxcb = ATH11K_SKB_RXCB(msdu); rxcb = ATH11K_SKB_RXCB(msdu);
rxcb->rx_desc = rx_desc; rxcb->rx_desc = rx_desc;
msdu_len = ath11k_dp_rx_h_msdu_start_msdu_len(ab, rx_desc); msdu_len = ath11k_dp_rx_h_msdu_start_msdu_len(ab, rx_desc);
@@ -3109,8 +3230,9 @@ static int ath11k_dp_rx_process_msdu(str @@ -3110,8 +3231,9 @@ static int ath11k_dp_rx_process_msdu(str
hdr_status = ath11k_dp_rx_h_80211_hdr(ab, rx_desc); hdr_status = ath11k_dp_rx_h_80211_hdr(ab, rx_desc);
ret = -EINVAL; ret = -EINVAL;
ath11k_warn(ab, "invalid msdu len %u\n", msdu_len); ath11k_warn(ab, "invalid msdu len %u\n", msdu_len);
@ -408,7 +408,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
ath11k_dbg_dump(ab, ATH11K_DBG_DATA, NULL, "", rx_desc, ath11k_dbg_dump(ab, ATH11K_DBG_DATA, NULL, "", rx_desc,
sizeof(struct hal_rx_desc)); sizeof(struct hal_rx_desc));
goto free_out; goto free_out;
@@ -4069,6 +4191,7 @@ static int ath11k_dp_rx_h_verify_tkip_mi @@ -4070,6 +4192,7 @@ static int ath11k_dp_rx_h_verify_tkip_mi
hdr = (struct ieee80211_hdr *)(msdu->data + hal_rx_desc_sz); hdr = (struct ieee80211_hdr *)(msdu->data + hal_rx_desc_sz);
hdr_len = ieee80211_hdrlen(hdr->frame_control); hdr_len = ieee80211_hdrlen(hdr->frame_control);
@ -416,7 +416,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
head_len = hdr_len + hal_rx_desc_sz + IEEE80211_TKIP_IV_LEN; head_len = hdr_len + hal_rx_desc_sz + IEEE80211_TKIP_IV_LEN;
tail_len = IEEE80211_CCMP_MIC_LEN + IEEE80211_TKIP_ICV_LEN + FCS_LEN; tail_len = IEEE80211_CCMP_MIC_LEN + IEEE80211_TKIP_ICV_LEN + FCS_LEN;
@@ -4349,8 +4472,8 @@ static void ath11k_dp_rx_h_sort_frags(st @@ -4350,8 +4473,8 @@ static void ath11k_dp_rx_h_sort_frags(st
static u64 ath11k_dp_rx_h_get_pn(struct ath11k *ar, struct sk_buff *skb) static u64 ath11k_dp_rx_h_get_pn(struct ath11k *ar, struct sk_buff *skb)
{ {
@ -426,7 +426,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
u8 *ehdr; u8 *ehdr;
u32 hal_rx_desc_sz = ar->ab->hw_params.hal_desc_sz; u32 hal_rx_desc_sz = ar->ab->hw_params.hal_desc_sz;
@@ -4580,8 +4703,9 @@ ath11k_dp_process_rx_err_buf(struct ath1 @@ -4581,8 +4704,9 @@ ath11k_dp_process_rx_err_buf(struct ath1
if ((msdu_len + hal_rx_desc_sz) > DP_RX_BUFFER_SIZE) { if ((msdu_len + hal_rx_desc_sz) > DP_RX_BUFFER_SIZE) {
hdr_status = ath11k_dp_rx_h_80211_hdr(ar->ab, rx_desc); hdr_status = ath11k_dp_rx_h_80211_hdr(ar->ab, rx_desc);
ath11k_warn(ar->ab, "invalid msdu leng %u", msdu_len); ath11k_warn(ar->ab, "invalid msdu leng %u", msdu_len);
@ -438,7 +438,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
ath11k_dbg_dump(ar->ab, ATH11K_DBG_DATA, NULL, "", rx_desc, ath11k_dbg_dump(ar->ab, ATH11K_DBG_DATA, NULL, "", rx_desc,
sizeof(struct hal_rx_desc)); sizeof(struct hal_rx_desc));
dev_kfree_skb_any(msdu); dev_kfree_skb_any(msdu);
@@ -5206,6 +5330,47 @@ void ath11k_dp_rx_pdev_free(struct ath11 @@ -5207,6 +5331,47 @@ void ath11k_dp_rx_pdev_free(struct ath11
ath11k_dp_rxdma_pdev_buf_free(ar); ath11k_dp_rxdma_pdev_buf_free(ar);
} }
@ -486,7 +486,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
int ath11k_dp_rx_pdev_alloc(struct ath11k_base *ab, int mac_id) int ath11k_dp_rx_pdev_alloc(struct ath11k_base *ab, int mac_id)
{ {
struct ath11k *ar = ab->pdevs[mac_id].ar; struct ath11k *ar = ab->pdevs[mac_id].ar;
@@ -5299,6 +5464,12 @@ config_refill_ring: @@ -5300,6 +5465,12 @@ config_refill_ring:
} }
} }
@ -501,7 +501,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/dp_tx.c --- a/drivers/net/wireless/ath/ath11k/dp_tx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c +++ b/drivers/net/wireless/ath/ath11k/dp_tx.c
@@ -1264,6 +1264,8 @@ int ath11k_dp_tx_htt_rx_filter_setup(str @@ -1263,6 +1263,8 @@ int ath11k_dp_tx_htt_rx_filter_setup(str
!!(params.flags & HAL_SRNG_FLAGS_MSI_SWAP)); !!(params.flags & HAL_SRNG_FLAGS_MSI_SWAP));
cmd->info0 |= FIELD_PREP(HTT_RX_RING_SELECTION_CFG_CMD_INFO0_PS, cmd->info0 |= FIELD_PREP(HTT_RX_RING_SELECTION_CFG_CMD_INFO0_PS,
!!(params.flags & HAL_SRNG_FLAGS_DATA_TLV_SWAP)); !!(params.flags & HAL_SRNG_FLAGS_DATA_TLV_SWAP));
@ -510,7 +510,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
cmd->info1 = FIELD_PREP(HTT_RX_RING_SELECTION_CFG_CMD_INFO1_BUF_SIZE, cmd->info1 = FIELD_PREP(HTT_RX_RING_SELECTION_CFG_CMD_INFO1_BUF_SIZE,
rx_buf_size); rx_buf_size);
@@ -1273,6 +1275,26 @@ int ath11k_dp_tx_htt_rx_filter_setup(str @@ -1272,6 +1274,26 @@ int ath11k_dp_tx_htt_rx_filter_setup(str
cmd->pkt_type_en_flags3 = tlv_filter->pkt_filter_flags3; cmd->pkt_type_en_flags3 = tlv_filter->pkt_filter_flags3;
cmd->rx_filter_tlv = tlv_filter->rx_filter; cmd->rx_filter_tlv = tlv_filter->rx_filter;
@ -537,7 +537,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
ret = ath11k_htc_send(&ab->htc, ab->dp.eid, skb); ret = ath11k_htc_send(&ab->htc, ab->dp.eid, skb);
if (ret) if (ret)
goto err_free; goto err_free;
@@ -1351,6 +1373,7 @@ int ath11k_dp_tx_htt_monitor_mode_ring_c @@ -1350,6 +1372,7 @@ int ath11k_dp_tx_htt_monitor_mode_ring_c
} }
ring_id = dp->rxdma_mon_buf_ring.refill_buf_ring.ring_id; ring_id = dp->rxdma_mon_buf_ring.refill_buf_ring.ring_id;
@ -933,7 +933,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
extern const struct ath11k_hw_ops ipq8074_ops; extern const struct ath11k_hw_ops ipq8074_ops;
--- a/drivers/net/wireless/ath/ath11k/mac.c --- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -6455,6 +6455,7 @@ static int ath11k_mac_config_mon_status_ @@ -6450,6 +6450,7 @@ static int ath11k_mac_config_mon_status_
tlv_filter.rx_filter = ath11k_debugfs_rx_filter(ar); tlv_filter.rx_filter = ath11k_debugfs_rx_filter(ar);
} }

View File

@ -25,7 +25,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c --- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c +++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -5994,6 +5994,7 @@ static void ath11k_update_radiotap(struc @@ -5995,6 +5995,7 @@ static void ath11k_update_radiotap(struc
{ {
struct ieee80211_supported_band *sband; struct ieee80211_supported_band *sband;
u8 *ptr = NULL; u8 *ptr = NULL;
@ -33,7 +33,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
rxs->flag |= RX_FLAG_MACTIME_START; rxs->flag |= RX_FLAG_MACTIME_START;
rxs->signal = ppduinfo->rssi_comb + ATH11K_DEFAULT_NOISE_FLOOR; rxs->signal = ppduinfo->rssi_comb + ATH11K_DEFAULT_NOISE_FLOOR;
@@ -6001,6 +6002,11 @@ static void ath11k_update_radiotap(struc @@ -6002,6 +6003,11 @@ static void ath11k_update_radiotap(struc
if (ppduinfo->nss) if (ppduinfo->nss)
rxs->nss = ppduinfo->nss; rxs->nss = ppduinfo->nss;
@ -128,7 +128,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
struct hal_rx_rxpcu_classification_overview { struct hal_rx_rxpcu_classification_overview {
--- a/drivers/net/wireless/ath/ath11k/hw.h --- a/drivers/net/wireless/ath/ath11k/hw.h
+++ b/drivers/net/wireless/ath/ath11k/hw.h +++ b/drivers/net/wireless/ath/ath11k/hw.h
@@ -306,6 +306,7 @@ struct ath11k_hw_ops { @@ -307,6 +307,7 @@ struct ath11k_hw_ops {
void (*rx_desc_get_crypto_header)(struct hal_rx_desc *desc, void (*rx_desc_get_crypto_header)(struct hal_rx_desc *desc,
u8 *crypto_hdr, u8 *crypto_hdr,
enum hal_encrypt_type enctype); enum hal_encrypt_type enctype);

View File

@ -28,7 +28,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
} }
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c --- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c +++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -3336,18 +3336,16 @@ try_again: @@ -3385,18 +3385,16 @@ try_again:
ar = ab->pdevs[mac_id].ar; ar = ab->pdevs[mac_id].ar;
rx_ring = &ar->dp.rx_refill_buf_ring; rx_ring = &ar->dp.rx_refill_buf_ring;
spin_lock_bh(&rx_ring->idr_lock); spin_lock_bh(&rx_ring->idr_lock);
@ -50,7 +50,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
dma_unmap_single(ab->dev, rxcb->paddr, dma_unmap_single(ab->dev, rxcb->paddr,
msdu->len + skb_tailroom(msdu), msdu->len + skb_tailroom(msdu),
DMA_FROM_DEVICE); DMA_FROM_DEVICE);
@@ -4574,17 +4572,14 @@ ath11k_dp_process_rx_err_buf(struct ath1 @@ -4667,17 +4665,14 @@ ath11k_dp_process_rx_err_buf(struct ath1
u32 hal_rx_desc_sz = ar->ab->hw_params.hal_desc_sz; u32 hal_rx_desc_sz = ar->ab->hw_params.hal_desc_sz;
spin_lock_bh(&rx_ring->idr_lock); spin_lock_bh(&rx_ring->idr_lock);
@ -70,7 +70,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
rxcb = ATH11K_SKB_RXCB(msdu); rxcb = ATH11K_SKB_RXCB(msdu);
dma_unmap_single(ar->ab->dev, rxcb->paddr, dma_unmap_single(ar->ab->dev, rxcb->paddr,
msdu->len + skb_tailroom(msdu), msdu->len + skb_tailroom(msdu),
@@ -5005,18 +5000,16 @@ int ath11k_dp_rx_process_wbm_err(struct @@ -5083,18 +5078,16 @@ int ath11k_dp_rx_process_wbm_err(struct
rx_ring = &ar->dp.rx_refill_buf_ring; rx_ring = &ar->dp.rx_refill_buf_ring;
spin_lock_bh(&rx_ring->idr_lock); spin_lock_bh(&rx_ring->idr_lock);
@ -92,7 +92,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
dma_unmap_single(ab->dev, rxcb->paddr, dma_unmap_single(ab->dev, rxcb->paddr,
msdu->len + skb_tailroom(msdu), msdu->len + skb_tailroom(msdu),
DMA_FROM_DEVICE); DMA_FROM_DEVICE);
@@ -5131,16 +5124,14 @@ int ath11k_dp_process_rxdma_err(struct a @@ -5209,16 +5202,14 @@ int ath11k_dp_process_rxdma_err(struct a
msdu_cookies[i]); msdu_cookies[i]);
spin_lock_bh(&rx_ring->idr_lock); spin_lock_bh(&rx_ring->idr_lock);
@ -111,7 +111,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
rxcb = ATH11K_SKB_RXCB(skb); rxcb = ATH11K_SKB_RXCB(skb);
dma_unmap_single(ab->dev, rxcb->paddr, dma_unmap_single(ab->dev, rxcb->paddr,
@@ -6399,16 +6390,14 @@ ath11k_dp_rx_full_mon_mpdu_pop(struct at @@ -6429,16 +6420,14 @@ ath11k_dp_rx_full_mon_mpdu_pop(struct at
msdu_list.sw_cookie[i]); msdu_list.sw_cookie[i]);
spin_lock_bh(&rx_ring->idr_lock); spin_lock_bh(&rx_ring->idr_lock);

View File

@ -114,7 +114,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
return 0; return 0;
} }
@@ -3346,11 +3365,14 @@ int ath11k_dp_process_rx(struct ath11k_b @@ -3347,11 +3366,14 @@ int ath11k_dp_process_rx(struct ath11k_b
struct ath11k *ar; struct ath11k *ar;
struct hal_reo_dest_ring *desc; struct hal_reo_dest_ring *desc;
enum hal_reo_dest_ring_push_reason push_reason; enum hal_reo_dest_ring_push_reason push_reason;
@ -130,7 +130,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
srng = &ab->hal.srng_list[dp->reo_dst_ring[ring_id].ring_id]; srng = &ab->hal.srng_list[dp->reo_dst_ring[ring_id].ring_id];
@@ -3385,8 +3407,15 @@ try_again: @@ -3384,8 +3406,15 @@ try_again:
ar = ab->pdevs[mac_id].ar; ar = ab->pdevs[mac_id].ar;
rx_ring = &ar->dp.rx_refill_buf_ring; rx_ring = &ar->dp.rx_refill_buf_ring;
@ -147,7 +147,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
spin_unlock_bh(&rx_ring->idr_lock); spin_unlock_bh(&rx_ring->idr_lock);
if (unlikely(!msdu)) { if (unlikely(!msdu)) {
ath11k_warn(ab, "frame rx with invalid buf_id %d\n", ath11k_warn(ab, "frame rx with invalid buf_id %d\n",
@@ -3464,9 +3493,12 @@ try_again: @@ -3463,9 +3492,12 @@ try_again:
rx_ring = &ar->dp.rx_refill_buf_ring; rx_ring = &ar->dp.rx_refill_buf_ring;
ath11k_dp_rxbufs_replenish(ab, i, rx_ring, num_buffs_reaped[i], ath11k_dp_rxbufs_replenish(ab, i, rx_ring, num_buffs_reaped[i],
@ -161,7 +161,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
return total_msdu_reaped; return total_msdu_reaped;
} }
@@ -4831,7 +4864,7 @@ exit: @@ -4827,7 +4859,7 @@ exit:
rx_ring = &ar->dp.rx_refill_buf_ring; rx_ring = &ar->dp.rx_refill_buf_ring;
ath11k_dp_rxbufs_replenish(ab, i, rx_ring, n_bufs_reaped[i], ath11k_dp_rxbufs_replenish(ab, i, rx_ring, n_bufs_reaped[i],
@ -170,7 +170,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
} }
return tot_n_bufs_reaped; return tot_n_bufs_reaped;
@@ -5047,14 +5080,17 @@ int ath11k_dp_rx_process_wbm_err(struct @@ -5043,14 +5075,17 @@ int ath11k_dp_rx_process_wbm_err(struct
struct sk_buff *msdu; struct sk_buff *msdu;
struct sk_buff_head msdu_list[MAX_RADIOS]; struct sk_buff_head msdu_list[MAX_RADIOS];
struct ath11k_skb_rxcb *rxcb; struct ath11k_skb_rxcb *rxcb;
@ -189,7 +189,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
srng = &ab->hal.srng_list[dp->rx_rel_ring.ring_id]; srng = &ab->hal.srng_list[dp->rx_rel_ring.ring_id];
@@ -5077,9 +5112,15 @@ int ath11k_dp_rx_process_wbm_err(struct @@ -5076,9 +5111,15 @@ int ath11k_dp_rx_process_wbm_err(struct
ar = ab->pdevs[mac_id].ar; ar = ab->pdevs[mac_id].ar;
rx_ring = &ar->dp.rx_refill_buf_ring; rx_ring = &ar->dp.rx_refill_buf_ring;
@ -206,7 +206,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
spin_unlock_bh(&rx_ring->idr_lock); spin_unlock_bh(&rx_ring->idr_lock);
if (!msdu) { if (!msdu) {
ath11k_warn(ab, "frame rx with invalid buf_id %d pdev %d\n", ath11k_warn(ab, "frame rx with invalid buf_id %d pdev %d\n",
@@ -5124,7 +5165,7 @@ int ath11k_dp_rx_process_wbm_err(struct @@ -5123,7 +5164,7 @@ int ath11k_dp_rx_process_wbm_err(struct
rx_ring = &ar->dp.rx_refill_buf_ring; rx_ring = &ar->dp.rx_refill_buf_ring;
ath11k_dp_rxbufs_replenish(ab, i, rx_ring, num_buffs_reaped[i], ath11k_dp_rxbufs_replenish(ab, i, rx_ring, num_buffs_reaped[i],
@ -215,7 +215,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
} }
rcu_read_lock(); rcu_read_lock();
@@ -5151,6 +5187,8 @@ int ath11k_dp_rx_process_wbm_err(struct @@ -5145,6 +5186,8 @@ int ath11k_dp_rx_process_wbm_err(struct
} }
rcu_read_unlock(); rcu_read_unlock();
done: done:
@ -224,7 +224,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
return total_num_buffs_reaped; return total_num_buffs_reaped;
} }
@@ -5238,7 +5276,7 @@ int ath11k_dp_process_rxdma_err(struct a @@ -5230,7 +5273,7 @@ int ath11k_dp_process_rxdma_err(struct a
if (num_buf_freed) if (num_buf_freed)
ath11k_dp_rxbufs_replenish(ab, mac_id, rx_ring, num_buf_freed, ath11k_dp_rxbufs_replenish(ab, mac_id, rx_ring, num_buf_freed,
@ -233,7 +233,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
return budget - quota; return budget - quota;
} }
@@ -6184,12 +6222,12 @@ static void ath11k_dp_rx_mon_dest_proces @@ -6182,12 +6225,12 @@ static void ath11k_dp_rx_mon_dest_proces
ath11k_dp_rxbufs_replenish(ar->ab, dp->mac_id, ath11k_dp_rxbufs_replenish(ar->ab, dp->mac_id,
&dp->rxdma_mon_buf_ring, &dp->rxdma_mon_buf_ring,
rx_bufs_used, rx_bufs_used,
@ -248,7 +248,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
} }
} }
@@ -6701,7 +6739,7 @@ next_entry: @@ -6697,7 +6740,7 @@ next_entry:
ath11k_dp_rxbufs_replenish(ar->ab, dp->mac_id, ath11k_dp_rxbufs_replenish(ar->ab, dp->mac_id,
&dp->rxdma_mon_buf_ring, &dp->rxdma_mon_buf_ring,
rx_bufs_used, rx_bufs_used,

View File

@ -217,7 +217,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
memcpy(skb_push(msdu, hdr_len), hdr, hdr_len); memcpy(skb_push(msdu, hdr_len), hdr, hdr_len);
} }
@@ -2890,7 +2954,7 @@ static void ath11k_dp_rx_h_mpdu(struct a @@ -2889,7 +2953,7 @@ static void ath11k_dp_rx_h_mpdu(struct a
struct ieee80211_rx_status *rx_status, struct ieee80211_rx_status *rx_status,
bool *fast_rx) bool *fast_rx)
{ {
@ -226,7 +226,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
enum hal_encrypt_type enctype; enum hal_encrypt_type enctype;
bool is_decrypted = false; bool is_decrypted = false;
struct ath11k_skb_rxcb *rxcb; struct ath11k_skb_rxcb *rxcb;
@@ -3123,10 +3187,16 @@ static void ath11k_dp_rx_deliver_msdu(st @@ -3122,10 +3186,16 @@ static void ath11k_dp_rx_deliver_msdu(st
u8 decap = DP_RX_DECAP_TYPE_RAW; u8 decap = DP_RX_DECAP_TYPE_RAW;
bool is_mcbc = rxcb->is_mcbc; bool is_mcbc = rxcb->is_mcbc;
bool is_eapol = rxcb->is_eapol; bool is_eapol = rxcb->is_eapol;
@ -243,7 +243,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
he = skb_push(msdu, sizeof(known)); he = skb_push(msdu, sizeof(known));
memcpy(he, &known, sizeof(known)); memcpy(he, &known, sizeof(known));
status->flag |= RX_FLAG_RADIOTAP_HE; status->flag |= RX_FLAG_RADIOTAP_HE;
@@ -3182,6 +3252,7 @@ static void ath11k_dp_rx_deliver_msdu(st @@ -3181,6 +3251,7 @@ static void ath11k_dp_rx_deliver_msdu(st
!(is_mcbc && rx_status->flag & RX_FLAG_DECRYPTED)) !(is_mcbc && rx_status->flag & RX_FLAG_DECRYPTED))
rx_status->flag |= RX_FLAG_8023; rx_status->flag |= RX_FLAG_8023;

View File

@ -50,7 +50,7 @@
} }
--- a/net/mac80211/cfg.c --- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c
@@ -4780,7 +4780,7 @@ void ieee80211_color_collision_detection @@ -4779,7 +4779,7 @@ void ieee80211_color_collision_detection
struct ieee80211_sub_if_data *sdata = link->sdata; struct ieee80211_sub_if_data *sdata = link->sdata;
sdata_lock(sdata); sdata_lock(sdata);
@ -72,7 +72,7 @@
sdata->debugfs.subdir_stations = debugfs_create_dir("stations", sdata->debugfs.subdir_stations = debugfs_create_dir("stations",
--- a/net/mac80211/sta_info.c --- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c
@@ -1410,18 +1410,6 @@ static void __sta_info_destroy_part2(str @@ -1414,18 +1414,6 @@ static void __sta_info_destroy_part2(str
WARN_ON_ONCE(ret); WARN_ON_ONCE(ret);
} }
@ -93,7 +93,7 @@
--- a/net/wireless/nl80211.c --- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c
@@ -19472,7 +19472,7 @@ void cfg80211_ch_switch_started_notify(s @@ -19484,7 +19484,7 @@ void cfg80211_ch_switch_started_notify(s
} }
EXPORT_SYMBOL(cfg80211_ch_switch_started_notify); EXPORT_SYMBOL(cfg80211_ch_switch_started_notify);
@ -102,7 +102,7 @@
enum nl80211_commands cmd, u8 count, enum nl80211_commands cmd, u8 count,
u64 color_bitmap) u64 color_bitmap)
{ {
@@ -19486,7 +19486,7 @@ int cfg80211_bss_color_notify(struct net @@ -19498,7 +19498,7 @@ int cfg80211_bss_color_notify(struct net
trace_cfg80211_bss_color_notify(dev, cmd, count, color_bitmap); trace_cfg80211_bss_color_notify(dev, cmd, count, color_bitmap);
@ -111,7 +111,7 @@
if (!msg) if (!msg)
return -ENOMEM; return -ENOMEM;
@@ -19509,7 +19509,7 @@ int cfg80211_bss_color_notify(struct net @@ -19521,7 +19521,7 @@ int cfg80211_bss_color_notify(struct net
genlmsg_end(msg, hdr); genlmsg_end(msg, hdr);
return genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), return genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy),

View File

@ -1,6 +1,6 @@
--- a/net/mac80211/tx.c --- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c +++ b/net/mac80211/tx.c
@@ -4688,8 +4688,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8 @@ -4689,8 +4689,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
if (!key) if (!key)
key = rcu_dereference(sdata->default_unicast_key); key = rcu_dereference(sdata->default_unicast_key);

View File

@ -53,7 +53,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
}; };
/** /**
@@ -1408,7 +1424,7 @@ ieee80211_tx_info_clear_status(struct ie @@ -1410,7 +1426,7 @@ ieee80211_tx_info_clear_status(struct ie
* @RX_FLAG_AMPDU_EOF_BIT_KNOWN: The EOF value is known * @RX_FLAG_AMPDU_EOF_BIT_KNOWN: The EOF value is known
* @RX_FLAG_RADIOTAP_HE: HE radiotap data is present * @RX_FLAG_RADIOTAP_HE: HE radiotap data is present
* (&struct ieee80211_radiotap_he, mac80211 will fill in * (&struct ieee80211_radiotap_he, mac80211 will fill in
@ -62,7 +62,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* - DATA3_DATA_MCS * - DATA3_DATA_MCS
* - DATA3_DATA_DCM * - DATA3_DATA_DCM
* - DATA3_CODING * - DATA3_CODING
@@ -1416,7 +1432,7 @@ ieee80211_tx_info_clear_status(struct ie @@ -1418,7 +1434,7 @@ ieee80211_tx_info_clear_status(struct ie
* - DATA5_DATA_BW_RU_ALLOC * - DATA5_DATA_BW_RU_ALLOC
* - DATA6_NSTS * - DATA6_NSTS
* - DATA3_STBC * - DATA3_STBC
@ -71,7 +71,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* from the RX info data, so leave those zeroed when building this data) * from the RX info data, so leave those zeroed when building this data)
* @RX_FLAG_RADIOTAP_HE_MU: HE MU radiotap data is present * @RX_FLAG_RADIOTAP_HE_MU: HE MU radiotap data is present
* (&struct ieee80211_radiotap_he_mu) * (&struct ieee80211_radiotap_he_mu)
@@ -1989,6 +2005,16 @@ static inline bool lockdep_vif_mutex_hel @@ -1991,6 +2007,16 @@ static inline bool lockdep_vif_mutex_hel
lockdep_vif_mutex_held(vif)) lockdep_vif_mutex_held(vif))
/** /**
@ -88,7 +88,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* enum ieee80211_key_flags - key flags * enum ieee80211_key_flags - key flags
* *
* These flags are used for communication about keys between the driver * These flags are used for communication about keys between the driver
@@ -2680,6 +2706,8 @@ struct ieee80211_txq { @@ -2682,6 +2708,8 @@ struct ieee80211_txq {
* @IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX: Hardware/driver handles transmitting * @IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX: Hardware/driver handles transmitting
* multicast frames on all links, mac80211 should not do that. * multicast frames on all links, mac80211 should not do that.
* *
@ -97,7 +97,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays * @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
*/ */
enum ieee80211_hw_flags { enum ieee80211_hw_flags {
@@ -2737,6 +2765,7 @@ enum ieee80211_hw_flags { @@ -2739,6 +2767,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_SUPPORTS_CONC_MON_RX_DECAP, IEEE80211_HW_SUPPORTS_CONC_MON_RX_DECAP,
IEEE80211_HW_DETECTS_COLOR_COLLISION, IEEE80211_HW_DETECTS_COLOR_COLLISION,
IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX, IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX,
@ -105,7 +105,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
/* keep last, obviously */ /* keep last, obviously */
NUM_IEEE80211_HW_FLAGS NUM_IEEE80211_HW_FLAGS
@@ -3749,6 +3778,10 @@ struct ieee80211_prep_tx_info { @@ -3751,6 +3780,10 @@ struct ieee80211_prep_tx_info {
* non-MLO connections. * non-MLO connections.
* The callback can sleep. * The callback can sleep.
* *
@ -116,7 +116,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* @prepare_multicast: Prepare for multicast filter configuration. * @prepare_multicast: Prepare for multicast filter configuration.
* This callback is optional, and its return value is passed * This callback is optional, and its return value is passed
* to configure_filter(). This callback must be atomic. * to configure_filter(). This callback must be atomic.
@@ -4300,7 +4333,9 @@ struct ieee80211_ops { @@ -4302,7 +4335,9 @@ struct ieee80211_ops {
struct ieee80211_vif *vif, struct ieee80211_vif *vif,
struct ieee80211_bss_conf *info, struct ieee80211_bss_conf *info,
u64 changed); u64 changed);
@ -127,7 +127,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
int (*start_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, int (*start_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
struct ieee80211_bss_conf *link_conf); struct ieee80211_bss_conf *link_conf);
void (*stop_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, void (*stop_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
@@ -4605,7 +4640,7 @@ struct ieee80211_ops { @@ -4607,7 +4642,7 @@ struct ieee80211_ops {
int (*reset_tid_config)(struct ieee80211_hw *hw, int (*reset_tid_config)(struct ieee80211_hw *hw,
struct ieee80211_vif *vif, struct ieee80211_vif *vif,
struct ieee80211_sta *sta, u8 tids); struct ieee80211_sta *sta, u8 tids);
@ -225,7 +225,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
return -EINVAL; return -EINVAL;
--- a/net/mac80211/sta_info.c --- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c
@@ -2370,6 +2370,9 @@ sta_get_last_rx_stats(struct sta_info *s @@ -2390,6 +2390,9 @@ sta_get_last_rx_stats(struct sta_info *s
struct ieee80211_sta_rx_stats *stats = &sta->deflink.rx_stats; struct ieee80211_sta_rx_stats *stats = &sta->deflink.rx_stats;
int cpu; int cpu;
@ -272,7 +272,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
info_id = ieee80211_store_ack_skb(local, skb, &info_flags, info_id = ieee80211_store_ack_skb(local, skb, &info_flags,
cookie); cookie);
@@ -4641,13 +4655,16 @@ static void ieee80211_8023_xmit(struct i @@ -4642,13 +4656,16 @@ static void ieee80211_8023_xmit(struct i
} }
if (unlikely(skb->sk && if (unlikely(skb->sk &&
@ -306,7 +306,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
gfp); gfp);
--- a/net/mac80211/cfg.c --- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c
@@ -2679,7 +2679,7 @@ static int ieee80211_change_bss(struct w @@ -2678,7 +2678,7 @@ static int ieee80211_change_bss(struct w
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
struct ieee80211_link_data *link; struct ieee80211_link_data *link;
struct ieee80211_supported_band *sband; struct ieee80211_supported_band *sband;
@ -315,7 +315,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
link = ieee80211_link_or_deflink(sdata, params->link_id, true); link = ieee80211_link_or_deflink(sdata, params->link_id, true);
if (IS_ERR(link)) if (IS_ERR(link))
@@ -2729,6 +2729,8 @@ static int ieee80211_change_bss(struct w @@ -2728,6 +2728,8 @@ static int ieee80211_change_bss(struct w
sdata->flags |= IEEE80211_SDATA_DONT_BRIDGE_PACKETS; sdata->flags |= IEEE80211_SDATA_DONT_BRIDGE_PACKETS;
else else
sdata->flags &= ~IEEE80211_SDATA_DONT_BRIDGE_PACKETS; sdata->flags &= ~IEEE80211_SDATA_DONT_BRIDGE_PACKETS;
@ -324,7 +324,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
ieee80211_check_fast_rx_iface(sdata); ieee80211_check_fast_rx_iface(sdata);
} }
@@ -2757,6 +2759,8 @@ static int ieee80211_change_bss(struct w @@ -2756,6 +2758,8 @@ static int ieee80211_change_bss(struct w
ieee80211_link_info_change_notify(sdata, link, changed); ieee80211_link_info_change_notify(sdata, link, changed);

View File

@ -18,7 +18,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
--- a/net/mac80211/tx.c --- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c +++ b/net/mac80211/tx.c
@@ -6215,7 +6215,13 @@ start_xmit: @@ -6216,7 +6216,13 @@ start_xmit:
mutex_lock(&local->mtx); mutex_lock(&local->mtx);
local_bh_disable(); local_bh_disable();

View File

@ -49,7 +49,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
#endif /* __NET_CFG80211_H */ #endif /* __NET_CFG80211_H */
--- a/include/net/mac80211.h --- a/include/net/mac80211.h
+++ b/include/net/mac80211.h +++ b/include/net/mac80211.h
@@ -7361,6 +7361,20 @@ u32 ieee80211_calc_rx_airtime(struct iee @@ -7363,6 +7363,20 @@ u32 ieee80211_calc_rx_airtime(struct iee
int len); int len);
/** /**
@ -158,7 +158,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
#undef TRACE_INCLUDE_PATH #undef TRACE_INCLUDE_PATH
--- a/net/wireless/nl80211.c --- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c
@@ -20199,6 +20199,42 @@ nla_put_failure: @@ -20211,6 +20211,42 @@ nla_put_failure:
} }
EXPORT_SYMBOL(cfg80211_update_owe_info_event); EXPORT_SYMBOL(cfg80211_update_owe_info_event);

View File

@ -29,7 +29,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
/* misc utils */ /* misc utils */
static __le16 ieee80211_duration(struct ieee80211_tx_data *tx, static __le16 ieee80211_duration(struct ieee80211_tx_data *tx,
@@ -4270,6 +4273,8 @@ void __ieee80211_subif_start_xmit(struct @@ -4271,6 +4274,8 @@ void __ieee80211_subif_start_xmit(struct
struct sta_info *sta; struct sta_info *sta;
struct sk_buff *next; struct sk_buff *next;
int len = skb->len; int len = skb->len;
@ -38,7 +38,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
if (unlikely(!ieee80211_sdata_running(sdata) || skb->len < ETH_HLEN)) { if (unlikely(!ieee80211_sdata_running(sdata) || skb->len < ETH_HLEN)) {
kfree_skb(skb); kfree_skb(skb);
@@ -4291,6 +4296,19 @@ void __ieee80211_subif_start_xmit(struct @@ -4292,6 +4297,19 @@ void __ieee80211_subif_start_xmit(struct
if (IS_ERR(sta)) if (IS_ERR(sta))
sta = NULL; sta = NULL;

View File

@ -209,7 +209,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
--- a/net/mac80211/tx.c --- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c +++ b/net/mac80211/tx.c
@@ -4503,6 +4503,35 @@ static void ieee80211_mlo_multicast_tx(s @@ -4504,6 +4504,35 @@ static void ieee80211_mlo_multicast_tx(s
kfree_skb(skb); kfree_skb(skb);
} }
@ -245,7 +245,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
/** /**
* ieee80211_subif_start_xmit - netif start_xmit function for 802.3 vifs * ieee80211_subif_start_xmit - netif start_xmit function for 802.3 vifs
* @skb: packet to be sent * @skb: packet to be sent
@@ -4516,6 +4545,10 @@ netdev_tx_t ieee80211_subif_start_xmit(s @@ -4517,6 +4546,10 @@ netdev_tx_t ieee80211_subif_start_xmit(s
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
const struct ethhdr *eth = (void *)skb->data; const struct ethhdr *eth = (void *)skb->data;
@ -256,7 +256,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
if (likely(!is_multicast_ether_addr(eth->h_dest))) if (likely(!is_multicast_ether_addr(eth->h_dest)))
goto normal; goto normal;
@@ -4702,6 +4735,9 @@ netdev_tx_t ieee80211_subif_start_xmit_8 @@ -4703,6 +4736,9 @@ netdev_tx_t ieee80211_subif_start_xmit_8
struct ieee80211_key *key; struct ieee80211_key *key;
struct sta_info *sta; struct sta_info *sta;

View File

@ -21,7 +21,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/include/net/mac80211.h --- a/include/net/mac80211.h
+++ b/include/net/mac80211.h +++ b/include/net/mac80211.h
@@ -5098,6 +5098,17 @@ void ieee80211_sta_pspoll(struct ieee802 @@ -5100,6 +5100,17 @@ void ieee80211_sta_pspoll(struct ieee802
*/ */
void ieee80211_sta_uapsd_trigger(struct ieee80211_sta *sta, u8 tid); void ieee80211_sta_uapsd_trigger(struct ieee80211_sta *sta, u8 tid);
@ -137,7 +137,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
{ {
--- a/net/mac80211/tx.c --- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c +++ b/net/mac80211/tx.c
@@ -4297,8 +4297,13 @@ void __ieee80211_subif_start_xmit(struct @@ -4298,8 +4298,13 @@ void __ieee80211_subif_start_xmit(struct
sta = NULL; sta = NULL;
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
@ -153,7 +153,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (ap_sdata->vif.offload_flags & IEEE80211_OFFLOAD_ENCAP_ENABLED && if (ap_sdata->vif.offload_flags & IEEE80211_OFFLOAD_ENCAP_ENABLED &&
!is_multicast_ether_addr(skb->data)) { !is_multicast_ether_addr(skb->data)) {
if (sta) if (sta)
@@ -4688,7 +4693,8 @@ static void ieee80211_8023_xmit(struct i @@ -4689,7 +4694,8 @@ static void ieee80211_8023_xmit(struct i
info->hw_queue = sdata->vif.hw_queue[queue]; info->hw_queue = sdata->vif.hw_queue[queue];

View File

@ -24,7 +24,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/include/net/mac80211.h --- a/include/net/mac80211.h
+++ b/include/net/mac80211.h +++ b/include/net/mac80211.h
@@ -2086,6 +2086,8 @@ enum ieee80211_key_flags { @@ -2088,6 +2088,8 @@ enum ieee80211_key_flags {
* @tx_pn: PN used for TX keys, may be used by the driver as well if it * @tx_pn: PN used for TX keys, may be used by the driver as well if it
* needs to do software PN assignment by itself (e.g. due to TSO) * needs to do software PN assignment by itself (e.g. due to TSO)
* @flags: key flags, see &enum ieee80211_key_flags. * @flags: key flags, see &enum ieee80211_key_flags.
@ -33,7 +33,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
* @keyidx: the key index (0-3) * @keyidx: the key index (0-3)
* @keylen: key material length * @keylen: key material length
* @key: key material. For ALG_TKIP the key is encoded as a 256-bit (32 byte) * @key: key material. For ALG_TKIP the key is encoded as a 256-bit (32 byte)
@@ -2105,6 +2107,7 @@ struct ieee80211_key_conf { @@ -2107,6 +2109,7 @@ struct ieee80211_key_conf {
u8 hw_key_idx; u8 hw_key_idx;
s8 keyidx; s8 keyidx;
u16 flags; u16 flags;
@ -102,7 +102,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
key->conf.cipher = cipher; key->conf.cipher = cipher;
--- a/net/mac80211/tx.c --- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c +++ b/net/mac80211/tx.c
@@ -4649,16 +4649,25 @@ static void ieee80211_8023_xmit(struct i @@ -4650,16 +4650,25 @@ static void ieee80211_8023_xmit(struct i
struct ieee80211_key *key, struct sk_buff *skb) struct ieee80211_key *key, struct sk_buff *skb)
{ {
struct ieee80211_tx_info *info; struct ieee80211_tx_info *info;

View File

@ -18,17 +18,6 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
net/mac80211/tx.c | 54 ++++++++++++++++++++++---------- net/mac80211/tx.c | 54 ++++++++++++++++++++++----------
7 files changed, 40 insertions(+), 23 deletions(-) 7 files changed, 40 insertions(+), 23 deletions(-)
--- a/include/linux/backport-refcount.h
+++ b/include/linux/backport-refcount.h
@@ -247,7 +247,7 @@ static inline __must_check bool refcount
static inline void __refcount_inc(refcount_t *r, int *oldp)
{
- __refcount_add(1, r, oldp);
+ refcount_add(1, r);
}
/**
--- a/net/mac80211/ieee80211_i.h --- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h
@@ -207,6 +207,7 @@ enum ieee80211_rx_flags { @@ -207,6 +207,7 @@ enum ieee80211_rx_flags {
@ -39,45 +28,9 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
struct list_head *list; struct list_head *list;
struct sk_buff *skb; struct sk_buff *skb;
struct ieee80211_local *local; struct ieee80211_local *local;
@@ -292,6 +293,7 @@ struct unsol_bcast_probe_resp_data {
u8 data[];
};
+
struct ps_data {
/* yes, this looks ugly, but guarantees that we can later use
* bitmap_empty :)
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -1705,7 +1705,6 @@ static void ieee80211_iface_work(struct
/* first process frames */
while ((skb = skb_dequeue(&sdata->skb_queue))) {
- kcov_remote_start_common(skb_get_kcov_handle(skb));
if (skb->protocol == cpu_to_be16(ETH_P_TDLS))
ieee80211_process_tdls_channel_switch(sdata, skb);
@@ -1713,17 +1712,14 @@ static void ieee80211_iface_work(struct
ieee80211_iface_process_skb(local, sdata, skb);
kfree_skb(skb);
- kcov_remote_stop();
}
/* process status queue */
while ((skb = skb_dequeue(&sdata->status_queue))) {
- kcov_remote_start_common(skb_get_kcov_handle(skb));
ieee80211_iface_process_status(sdata, skb);
kfree_skb(skb);
- kcov_remote_stop();
}
/* then other type-dependent work */
--- a/net/mac80211/tx.c --- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c +++ b/net/mac80211/tx.c
@@ -4678,19 +4678,21 @@ static void ieee80211_8023_xmit(struct i @@ -4679,19 +4679,21 @@ static void ieee80211_8023_xmit(struct i
ieee80211_aggr_check(sdata, sta, skb); ieee80211_aggr_check(sdata, sta, skb);
@ -111,7 +64,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
} }
skb = ieee80211_tx_skb_fixup(skb, ieee80211_sdata_netdev_features(sdata)); skb = ieee80211_tx_skb_fixup(skb, ieee80211_sdata_netdev_features(sdata));
@@ -4747,7 +4749,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8 @@ -4748,7 +4750,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
{ {
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
struct ethhdr *ehdr = (struct ethhdr *)skb->data; struct ethhdr *ehdr = (struct ethhdr *)skb->data;
@ -120,7 +73,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
struct sta_info *sta; struct sta_info *sta;
#ifdef CPTCFG_MAC80211_NSS_SUPPORT #ifdef CPTCFG_MAC80211_NSS_SUPPORT
@@ -4765,9 +4767,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8 @@ -4766,9 +4768,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
goto out; goto out;
} }
@ -137,7 +90,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
goto skip_offload; goto skip_offload;
key = rcu_dereference(sta->ptk[sta->ptk_idx]); key = rcu_dereference(sta->ptk[sta->ptk_idx]);
@@ -4778,6 +4784,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8 @@ -4779,6 +4785,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
goto skip_offload; goto skip_offload;
sk_pacing_shift_update(skb->sk, sdata->local->hw.tx_sk_pacing_shift); sk_pacing_shift_update(skb->sk, sdata->local->hw.tx_sk_pacing_shift);
@ -145,47 +98,18 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
ieee80211_8023_xmit(sdata, dev, sta, key, skb); ieee80211_8023_xmit(sdata, dev, sta, key, skb);
goto out; goto out;
@@ -6284,13 +6291,7 @@ start_xmit: @@ -6285,13 +6292,7 @@ start_xmit:
mutex_lock(&local->mtx); mutex_lock(&local->mtx);
if (pubsta) { local_bh_disable();
sta = container_of(pubsta, struct sta_info, sta);
- if (sta && napi) {
+ if (sta) {
if (!(status->flag & RX_FLAG_ONLY_MONITOR))
atomic_inc(&sta->rx_drv_pkts);
}
@@ -5442,8 +5442,6 @@ void ieee80211_rx_list(struct ieee80211_
status->rx_flags = 0;
- kcov_remote_start_common(skb_get_kcov_handle(skb));
- -
/* - /* added hardware encap check for ethernet mode */
* Frames with failed FCS/PLCP checksum are not returned, - if (sdata->vif.offload_flags & IEEE80211_OFFLOAD_ENCAP_ENABLED)
* all other frames are returned without radiotap header - ieee80211_subif_start_xmit_8023(skb, skb->dev);
@@ -5463,7 +5461,6 @@ void ieee80211_rx_list(struct ieee80211_ - else
__ieee80211_rx_handle_packet(hw, pubsta, skb, list); - __ieee80211_subif_start_xmit(skb, skb->dev, flags, ctrl_flags, cookie);
}
- kcov_remote_stop();
return;
drop:
kfree_skb(skb);
--- a/backport-include/linux/skbuff.h
+++ b/backport-include/linux/skbuff.h
@@ -24,14 +24,6 @@ static inline void *backport___skb_push(
}
#define __skb_push LINUX_BACKPORT(__skb_push)
-static inline void *__skb_put_zero(struct sk_buff *skb, unsigned int len)
-{
- void *tmp = __skb_put(skb, len);
- -
- memset(tmp, 0, len); + __ieee80211_subif_start_xmit(skb, skb->dev, flags, ctrl_flags, cookie);
- return tmp; local_bh_enable();
-}
- mutex_unlock(&local->mtx);
static inline void *skb_put_zero(struct sk_buff *skb, unsigned int len)
{
void *tmp = skb_put(skb, len);

View File

@ -78,7 +78,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
bool eht_mu_beamformer; bool eht_mu_beamformer;
bool nss_ap_isolate; bool nss_ap_isolate;
}; };
@@ -1273,6 +1287,8 @@ struct ieee80211_rate_status { @@ -1275,6 +1289,8 @@ struct ieee80211_rate_status {
* @ack_hwtstamp: Hardware timestamp of the received ack in nanoseconds * @ack_hwtstamp: Hardware timestamp of the received ack in nanoseconds
* Only needed for Timing measurement and Fine timing measurement action * Only needed for Timing measurement and Fine timing measurement action
* frames. Only reported by devices that have timestamping enabled. * frames. Only reported by devices that have timestamping enabled.
@ -87,7 +87,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
*/ */
struct ieee80211_tx_status { struct ieee80211_tx_status {
struct ieee80211_sta *sta; struct ieee80211_sta *sta;
@@ -1283,6 +1299,8 @@ struct ieee80211_tx_status { @@ -1285,6 +1301,8 @@ struct ieee80211_tx_status {
u8 n_rates; u8 n_rates;
struct list_head *free_list; struct list_head *free_list;
@ -96,7 +96,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
}; };
/** /**
@@ -1775,6 +1793,7 @@ struct ieee80211_channel_switch { @@ -1777,6 +1795,7 @@ struct ieee80211_channel_switch {
* this is not pure P2P vif. * this is not pure P2P vif.
* @IEEE80211_VIF_DISABLE_SMPS_OVERRIDE: disable user configuration of * @IEEE80211_VIF_DISABLE_SMPS_OVERRIDE: disable user configuration of
* SMPS mode via debugfs. * SMPS mode via debugfs.
@ -104,7 +104,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
*/ */
enum ieee80211_vif_flags { enum ieee80211_vif_flags {
IEEE80211_VIF_BEACON_FILTER = BIT(0), IEEE80211_VIF_BEACON_FILTER = BIT(0),
@@ -1782,6 +1801,7 @@ enum ieee80211_vif_flags { @@ -1784,6 +1803,7 @@ enum ieee80211_vif_flags {
IEEE80211_VIF_SUPPORTS_UAPSD = BIT(2), IEEE80211_VIF_SUPPORTS_UAPSD = BIT(2),
IEEE80211_VIF_GET_NOA_UPDATE = BIT(3), IEEE80211_VIF_GET_NOA_UPDATE = BIT(3),
IEEE80211_VIF_DISABLE_SMPS_OVERRIDE = BIT(4), IEEE80211_VIF_DISABLE_SMPS_OVERRIDE = BIT(4),
@ -112,7 +112,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
}; };
@@ -2769,6 +2789,7 @@ enum ieee80211_hw_flags { @@ -2771,6 +2791,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_DETECTS_COLOR_COLLISION, IEEE80211_HW_DETECTS_COLOR_COLLISION,
IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX, IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX,
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD, IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
@ -120,7 +120,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
/* keep last, obviously */ /* keep last, obviously */
NUM_IEEE80211_HW_FLAGS NUM_IEEE80211_HW_FLAGS
@@ -4269,6 +4290,8 @@ struct ieee80211_prep_tx_info { @@ -4271,6 +4292,8 @@ struct ieee80211_prep_tx_info {
* @set_sar_specs: Update the SAR (TX power) settings. * @set_sar_specs: Update the SAR (TX power) settings.
* @sta_set_decap_offload: Called to notify the driver when a station is allowed * @sta_set_decap_offload: Called to notify the driver when a station is allowed
* to use rx decapsulation offload * to use rx decapsulation offload
@ -129,7 +129,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
* @add_twt_setup: Update hw with TWT agreement parameters received from the peer. * @add_twt_setup: Update hw with TWT agreement parameters received from the peer.
* This callback allows the hw to check if requested parameters * This callback allows the hw to check if requested parameters
* are supported and if there is enough room for a new agreement. * are supported and if there is enough room for a new agreement.
@@ -4652,6 +4675,12 @@ struct ieee80211_ops { @@ -4654,6 +4677,12 @@ struct ieee80211_ops {
void (*sta_set_decap_offload)(struct ieee80211_hw *hw, void (*sta_set_decap_offload)(struct ieee80211_hw *hw,
struct ieee80211_vif *vif, struct ieee80211_vif *vif,
struct ieee80211_sta *sta, bool enabled); struct ieee80211_sta *sta, bool enabled);
@ -142,7 +142,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
void (*add_twt_setup)(struct ieee80211_hw *hw, void (*add_twt_setup)(struct ieee80211_hw *hw,
struct ieee80211_sta *sta, struct ieee80211_sta *sta,
struct ieee80211_twt_setup *twt); struct ieee80211_twt_setup *twt);
@@ -7510,4 +7539,100 @@ int ieee80211_set_active_links(struct ie @@ -7512,4 +7541,100 @@ int ieee80211_set_active_links(struct ie
void ieee80211_set_active_links_async(struct ieee80211_vif *vif, void ieee80211_set_active_links_async(struct ieee80211_vif *vif,
u16 active_links); u16 active_links);
@ -245,7 +245,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
#endif /* MAC80211_H */ #endif /* MAC80211_H */
--- a/net/mac80211/cfg.c --- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c
@@ -2523,6 +2523,7 @@ static int ieee80211_update_mesh_config( @@ -2522,6 +2522,7 @@ static int ieee80211_update_mesh_config(
struct mesh_config *conf; struct mesh_config *conf;
struct ieee80211_sub_if_data *sdata; struct ieee80211_sub_if_data *sdata;
struct ieee80211_if_mesh *ifmsh; struct ieee80211_if_mesh *ifmsh;
@ -253,7 +253,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata = IEEE80211_DEV_TO_SUB_IF(dev);
ifmsh = &sdata->u.mesh; ifmsh = &sdata->u.mesh;
@@ -2539,8 +2540,11 @@ static int ieee80211_update_mesh_config( @@ -2538,8 +2539,11 @@ static int ieee80211_update_mesh_config(
conf->dot11MeshMaxPeerLinks = nconf->dot11MeshMaxPeerLinks; conf->dot11MeshMaxPeerLinks = nconf->dot11MeshMaxPeerLinks;
if (_chg_mesh_attr(NL80211_MESHCONF_MAX_RETRIES, mask)) if (_chg_mesh_attr(NL80211_MESHCONF_MAX_RETRIES, mask))
conf->dot11MeshMaxRetries = nconf->dot11MeshMaxRetries; conf->dot11MeshMaxRetries = nconf->dot11MeshMaxRetries;
@ -266,7 +266,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
if (_chg_mesh_attr(NL80211_MESHCONF_ELEMENT_TTL, mask)) if (_chg_mesh_attr(NL80211_MESHCONF_ELEMENT_TTL, mask))
conf->element_ttl = nconf->element_ttl; conf->element_ttl = nconf->element_ttl;
if (_chg_mesh_attr(NL80211_MESHCONF_AUTO_OPEN_PLINKS, mask)) { if (_chg_mesh_attr(NL80211_MESHCONF_AUTO_OPEN_PLINKS, mask)) {
@@ -2554,8 +2558,12 @@ static int ieee80211_update_mesh_config( @@ -2553,8 +2557,12 @@ static int ieee80211_update_mesh_config(
if (_chg_mesh_attr(NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES, mask)) if (_chg_mesh_attr(NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES, mask))
conf->dot11MeshHWMPmaxPREQretries = conf->dot11MeshHWMPmaxPREQretries =
nconf->dot11MeshHWMPmaxPREQretries; nconf->dot11MeshHWMPmaxPREQretries;
@ -280,7 +280,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
if (_chg_mesh_attr(NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT, mask)) if (_chg_mesh_attr(NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT, mask))
conf->min_discovery_timeout = nconf->min_discovery_timeout; conf->min_discovery_timeout = nconf->min_discovery_timeout;
if (_chg_mesh_attr(NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT, mask)) if (_chg_mesh_attr(NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT, mask))
@@ -2590,8 +2598,12 @@ static int ieee80211_update_mesh_config( @@ -2589,8 +2597,12 @@ static int ieee80211_update_mesh_config(
if (_chg_mesh_attr(NL80211_MESHCONF_HWMP_RANN_INTERVAL, mask)) if (_chg_mesh_attr(NL80211_MESHCONF_HWMP_RANN_INTERVAL, mask))
conf->dot11MeshHWMPRannInterval = conf->dot11MeshHWMPRannInterval =
nconf->dot11MeshHWMPRannInterval; nconf->dot11MeshHWMPRannInterval;
@ -294,7 +294,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
if (_chg_mesh_attr(NL80211_MESHCONF_RSSI_THRESHOLD, mask)) { if (_chg_mesh_attr(NL80211_MESHCONF_RSSI_THRESHOLD, mask)) {
/* our RSSI threshold implementation is supported only for /* our RSSI threshold implementation is supported only for
* devices that report signal in dBm. * devices that report signal in dBm.
@@ -2633,6 +2645,7 @@ static int ieee80211_update_mesh_config( @@ -2632,6 +2644,7 @@ static int ieee80211_update_mesh_config(
conf->dot11MeshConnectedToAuthServer = conf->dot11MeshConnectedToAuthServer =
nconf->dot11MeshConnectedToAuthServer; nconf->dot11MeshConnectedToAuthServer;
ieee80211_mbss_info_change_notify(sdata, BSS_CHANGED_BEACON); ieee80211_mbss_info_change_notify(sdata, BSS_CHANGED_BEACON);
@ -379,7 +379,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
#endif /* __MAC80211_DRIVER_OPS */ #endif /* __MAC80211_DRIVER_OPS */
--- a/net/mac80211/mesh.h --- a/net/mac80211/mesh.h
+++ b/net/mac80211/mesh.h +++ b/net/mac80211/mesh.h
@@ -315,6 +315,10 @@ void mesh_rx_path_sel_frame(struct ieee8 @@ -320,6 +320,10 @@ void mesh_rx_path_sel_frame(struct ieee8
struct ieee80211_mgmt *mgmt, size_t len); struct ieee80211_mgmt *mgmt, size_t len);
struct mesh_path * struct mesh_path *
mesh_path_add(struct ieee80211_sub_if_data *sdata, const u8 *dst); mesh_path_add(struct ieee80211_sub_if_data *sdata, const u8 *dst);
@ -390,7 +390,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
int mesh_path_add_gate(struct mesh_path *mpath); int mesh_path_add_gate(struct mesh_path *mpath);
int mesh_path_send_to_gates(struct mesh_path *mpath); int mesh_path_send_to_gates(struct mesh_path *mpath);
@@ -356,6 +360,7 @@ void mesh_path_discard_frame(struct ieee @@ -361,6 +365,7 @@ void mesh_path_discard_frame(struct ieee
void mesh_path_tx_root_frame(struct ieee80211_sub_if_data *sdata); void mesh_path_tx_root_frame(struct ieee80211_sub_if_data *sdata);
bool mesh_action_is_path_sel(struct ieee80211_mgmt *mgmt); bool mesh_action_is_path_sel(struct ieee80211_mgmt *mgmt);
@ -1221,7 +1221,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
info->ack_frame_id = info_id; info->ack_frame_id = info_id;
info->band = band; info->band = band;
@@ -4274,6 +4284,7 @@ void __ieee80211_subif_start_xmit(struct @@ -4275,6 +4285,7 @@ void __ieee80211_subif_start_xmit(struct
struct sk_buff *next; struct sk_buff *next;
int len = skb->len; int len = skb->len;
struct ieee80211_key *key = NULL; struct ieee80211_key *key = NULL;
@ -1229,7 +1229,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
struct ieee80211_sub_if_data *ap_sdata; struct ieee80211_sub_if_data *ap_sdata;
if (unlikely(!ieee80211_sdata_running(sdata) || skb->len < ETH_HLEN)) { if (unlikely(!ieee80211_sdata_running(sdata) || skb->len < ETH_HLEN)) {
@@ -4350,9 +4361,15 @@ void __ieee80211_subif_start_xmit(struct @@ -4351,9 +4362,15 @@ void __ieee80211_subif_start_xmit(struct
goto out; goto out;
} }

View File

@ -16,7 +16,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
--- a/include/net/mac80211.h --- a/include/net/mac80211.h
+++ b/include/net/mac80211.h +++ b/include/net/mac80211.h
@@ -2731,6 +2731,8 @@ struct ieee80211_txq { @@ -2733,6 +2733,8 @@ struct ieee80211_txq {
* *
* @IEEE80211_HW_SUPPORTS_NSS_OFFLOAD: Hardware/driver supports NSS offload * @IEEE80211_HW_SUPPORTS_NSS_OFFLOAD: Hardware/driver supports NSS offload
* *
@ -25,7 +25,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays * @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
*/ */
enum ieee80211_hw_flags { enum ieee80211_hw_flags {
@@ -2790,6 +2792,7 @@ enum ieee80211_hw_flags { @@ -2792,6 +2794,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX, IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX,
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD, IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD, IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD,

View File

@ -14,7 +14,7 @@ Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
--- a/net/mac80211/tx.c --- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c +++ b/net/mac80211/tx.c
@@ -4761,6 +4761,67 @@ out_free: @@ -4762,6 +4762,67 @@ out_free:
kfree_skb(skb); kfree_skb(skb);
} }
@ -82,7 +82,7 @@ Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
netdev_tx_t ieee80211_subif_start_xmit_8023(struct sk_buff *skb, netdev_tx_t ieee80211_subif_start_xmit_8023(struct sk_buff *skb,
struct net_device *dev) struct net_device *dev)
{ {
@@ -4800,6 +4861,11 @@ netdev_tx_t ieee80211_subif_start_xmit_8 @@ -4801,6 +4862,11 @@ netdev_tx_t ieee80211_subif_start_xmit_8
if (key && (!(key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE))) if (key && (!(key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE)))
goto skip_offload; goto skip_offload;

View File

@ -33,7 +33,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
--- a/net/mac80211/tx.c --- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c +++ b/net/mac80211/tx.c
@@ -4695,7 +4695,7 @@ static void ieee80211_8023_xmit(struct i @@ -4696,7 +4696,7 @@ static void ieee80211_8023_xmit(struct i
ieee80211_aggr_check(sdata, sta, skb); ieee80211_aggr_check(sdata, sta, skb);
@ -42,7 +42,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
tid = skb->priority & IEEE80211_QOS_CTL_TAG1D_MASK; tid = skb->priority & IEEE80211_QOS_CTL_TAG1D_MASK;
tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[tid]); tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[tid]);
if (tid_tx) { if (tid_tx) {
@@ -4746,7 +4746,7 @@ static void ieee80211_8023_xmit(struct i @@ -4747,7 +4747,7 @@ static void ieee80211_8023_xmit(struct i
&info->flags, NULL); &info->flags, NULL);
dev_sw_netstats_tx_add(dev, skbs, len); dev_sw_netstats_tx_add(dev, skbs, len);

View File

@ -14,7 +14,7 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
--- a/include/net/mac80211.h --- a/include/net/mac80211.h
+++ b/include/net/mac80211.h +++ b/include/net/mac80211.h
@@ -1405,8 +1405,6 @@ ieee80211_tx_info_clear_status(struct ie @@ -1407,8 +1407,6 @@ ieee80211_tx_info_clear_status(struct ie
* @RX_FLAG_AMPDU_IS_LAST: this subframe is the last subframe of the A-MPDU * @RX_FLAG_AMPDU_IS_LAST: this subframe is the last subframe of the A-MPDU
* @RX_FLAG_AMPDU_DELIM_CRC_ERROR: A delimiter CRC error has been detected * @RX_FLAG_AMPDU_DELIM_CRC_ERROR: A delimiter CRC error has been detected
* on this subframe * on this subframe
@ -23,7 +23,7 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
* @RX_FLAG_MIC_STRIPPED: The mic was stripped of this packet. Decryption was * @RX_FLAG_MIC_STRIPPED: The mic was stripped of this packet. Decryption was
* done by the hardware * done by the hardware
* @RX_FLAG_ONLY_MONITOR: Report frame only to monitor interfaces without * @RX_FLAG_ONLY_MONITOR: Report frame only to monitor interfaces without
@@ -1478,22 +1476,21 @@ enum mac80211_rx_flags { @@ -1480,22 +1478,21 @@ enum mac80211_rx_flags {
RX_FLAG_AMPDU_LAST_KNOWN = BIT(12), RX_FLAG_AMPDU_LAST_KNOWN = BIT(12),
RX_FLAG_AMPDU_IS_LAST = BIT(13), RX_FLAG_AMPDU_IS_LAST = BIT(13),
RX_FLAG_AMPDU_DELIM_CRC_ERROR = BIT(14), RX_FLAG_AMPDU_DELIM_CRC_ERROR = BIT(14),

View File

@ -44,7 +44,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
/* misc utils */ /* misc utils */
static __le16 ieee80211_duration(struct ieee80211_tx_data *tx, static __le16 ieee80211_duration(struct ieee80211_tx_data *tx,
@@ -4319,7 +4320,7 @@ void __ieee80211_subif_start_xmit(struct @@ -4320,7 +4321,7 @@ void __ieee80211_subif_start_xmit(struct
!is_multicast_ether_addr(skb->data)) { !is_multicast_ether_addr(skb->data)) {
if (sta) if (sta)
key = rcu_dereference(sta->ptk[sta->ptk_idx]); key = rcu_dereference(sta->ptk[sta->ptk_idx]);
@ -53,7 +53,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
rcu_read_unlock(); rcu_read_unlock();
return; return;
} }
@@ -4365,7 +4366,7 @@ void __ieee80211_subif_start_xmit(struct @@ -4366,7 +4367,7 @@ void __ieee80211_subif_start_xmit(struct
if (info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) { if (info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) {
if (sta) if (sta)
key = rcu_dereference(sta->ptk[sta->ptk_idx]); key = rcu_dereference(sta->ptk[sta->ptk_idx]);
@ -62,7 +62,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
} else { } else {
dev_sw_netstats_tx_add(dev, 1, skb->len); dev_sw_netstats_tx_add(dev, 1, skb->len);
ieee80211_xmit(sdata, sta, skb); ieee80211_xmit(sdata, sta, skb);
@@ -4663,7 +4664,8 @@ static bool ieee80211_tx_8023(struct iee @@ -4664,7 +4665,8 @@ static bool ieee80211_tx_8023(struct iee
static void ieee80211_8023_xmit(struct ieee80211_sub_if_data *sdata, static void ieee80211_8023_xmit(struct ieee80211_sub_if_data *sdata,
struct net_device *dev, struct sta_info *sta, struct net_device *dev, struct sta_info *sta,
@ -72,7 +72,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
{ {
struct ieee80211_tx_info *info; struct ieee80211_tx_info *info;
struct ethhdr *ehdr = (struct ethhdr *)skb->data; struct ethhdr *ehdr = (struct ethhdr *)skb->data;
@@ -4719,6 +4721,7 @@ static void ieee80211_8023_xmit(struct i @@ -4720,6 +4722,7 @@ static void ieee80211_8023_xmit(struct i
info = IEEE80211_SKB_CB(skb); info = IEEE80211_SKB_CB(skb);
memset(info, 0, sizeof(*info)); memset(info, 0, sizeof(*info));
@ -80,7 +80,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
info->hw_queue = sdata->vif.hw_queue[queue]; info->hw_queue = sdata->vif.hw_queue[queue];
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN && if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
@@ -4739,11 +4742,12 @@ static void ieee80211_8023_xmit(struct i @@ -4740,11 +4743,12 @@ static void ieee80211_8023_xmit(struct i
memcpy(IEEE80211_SKB_CB(seg), info, sizeof(*info)); memcpy(IEEE80211_SKB_CB(seg), info, sizeof(*info));
} }
@ -96,7 +96,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
dev_sw_netstats_tx_add(dev, skbs, len); dev_sw_netstats_tx_add(dev, skbs, len);
if (!ieee80211_hw_check(&local->hw, SUPPORTS_NSS_OFFLOAD) && sta) { if (!ieee80211_hw_check(&local->hw, SUPPORTS_NSS_OFFLOAD) && sta) {
@@ -4763,7 +4767,8 @@ out_free: @@ -4764,7 +4768,8 @@ out_free:
void ieee80211_8023_xmit_ap(struct ieee80211_sub_if_data *sdata, void ieee80211_8023_xmit_ap(struct ieee80211_sub_if_data *sdata,
struct net_device *dev, struct sta_info *sta, struct net_device *dev, struct sta_info *sta,
@ -106,7 +106,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
{ {
struct ieee80211_tx_info *info; struct ieee80211_tx_info *info;
struct ieee80211_local *local = sdata->local; struct ieee80211_local *local = sdata->local;
@@ -4772,6 +4777,9 @@ void ieee80211_8023_xmit_ap(struct ieee8 @@ -4773,6 +4778,9 @@ void ieee80211_8023_xmit_ap(struct ieee8
unsigned long flags; unsigned long flags;
int q; int q;
u16 q_map; u16 q_map;
@ -116,7 +116,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
/* /*
* If the skb is shared we need to obtain our own copy. * If the skb is shared we need to obtain our own copy.
@@ -4783,11 +4791,13 @@ void ieee80211_8023_xmit_ap(struct ieee8 @@ -4784,11 +4792,13 @@ void ieee80211_8023_xmit_ap(struct ieee8
info = IEEE80211_SKB_CB(skb); info = IEEE80211_SKB_CB(skb);
memset(info, 0, sizeof(*info)); memset(info, 0, sizeof(*info));
@ -133,7 +133,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
info->flags |= IEEE80211_TX_CTL_HW_80211_ENCAP; info->flags |= IEEE80211_TX_CTL_HW_80211_ENCAP;
info->control.vif = &sdata->vif; info->control.vif = &sdata->vif;
@@ -4821,14 +4831,23 @@ void ieee80211_8023_xmit_ap(struct ieee8 @@ -4822,14 +4832,23 @@ void ieee80211_8023_xmit_ap(struct ieee8
drv_tx(local, &control, skb); drv_tx(local, &control, skb);
} }
@ -158,7 +158,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
#ifdef CPTCFG_MAC80211_NSS_SUPPORT #ifdef CPTCFG_MAC80211_NSS_SUPPORT
ieee80211_xmit_nss_fixup(skb, dev); ieee80211_xmit_nss_fixup(skb, dev);
@@ -4844,14 +4863,15 @@ netdev_tx_t ieee80211_subif_start_xmit_8 @@ -4845,14 +4864,15 @@ netdev_tx_t ieee80211_subif_start_xmit_8
kfree_skb(skb); kfree_skb(skb);
goto out; goto out;
} }
@ -176,7 +176,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
goto skip_offload; goto skip_offload;
key = rcu_dereference(sta->ptk[sta->ptk_idx]); key = rcu_dereference(sta->ptk[sta->ptk_idx]);
@@ -4862,13 +4882,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8 @@ -4863,13 +4883,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
goto skip_offload; goto skip_offload;
if (sdata->vif.type == NL80211_IFTYPE_AP) { if (sdata->vif.type == NL80211_IFTYPE_AP) {
@ -192,7 +192,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
goto out; goto out;
skip_offload: skip_offload:
@@ -6374,7 +6394,10 @@ start_xmit: @@ -6375,7 +6395,10 @@ start_xmit:
mutex_lock(&local->mtx); mutex_lock(&local->mtx);
local_bh_disable(); local_bh_disable();

View File

@ -72,7 +72,7 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
--- a/net/mac80211/cfg.c --- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c
@@ -2350,7 +2350,7 @@ static void mpath_set_pinfo(struct mesh_ @@ -2349,7 +2349,7 @@ static void mpath_set_pinfo(struct mesh_
if (mpath->flags & MESH_PATH_RESOLVED) if (mpath->flags & MESH_PATH_RESOLVED)
pinfo->flags |= NL80211_MPATH_FLAG_RESOLVED; pinfo->flags |= NL80211_MPATH_FLAG_RESOLVED;
pinfo->hop_count = mpath->hop_count; pinfo->hop_count = mpath->hop_count;

View File

@ -16,7 +16,7 @@ Signed-off-by: Maharaja Kennadyrajan <quic_mkenna@quicinc.com>
--- a/net/mac80211/sta_info.c --- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c
@@ -2396,7 +2396,7 @@ void ieee80211_sta_update_pending_airtim @@ -2385,7 +2385,7 @@ void ieee80211_sta_update_pending_airtim
} }
static struct ieee80211_sta_rx_stats * static struct ieee80211_sta_rx_stats *
@ -25,7 +25,7 @@ Signed-off-by: Maharaja Kennadyrajan <quic_mkenna@quicinc.com>
{ {
struct ieee80211_sta_rx_stats *stats = &sta->deflink.rx_stats; struct ieee80211_sta_rx_stats *stats = &sta->deflink.rx_stats;
int cpu; int cpu;
@@ -2409,8 +2409,13 @@ sta_get_last_rx_stats(struct sta_info *s @@ -2398,8 +2398,13 @@ sta_get_last_rx_stats(struct sta_info *s
for_each_possible_cpu(cpu) { for_each_possible_cpu(cpu) {
struct ieee80211_sta_rx_stats *cpustats; struct ieee80211_sta_rx_stats *cpustats;
@ -39,7 +39,7 @@ Signed-off-by: Maharaja Kennadyrajan <quic_mkenna@quicinc.com>
if (time_after(cpustats->last_rx, stats->last_rx)) if (time_after(cpustats->last_rx, stats->last_rx))
stats = cpustats; stats = cpustats;
@@ -2480,7 +2485,7 @@ static void sta_stats_decode_rate(struct @@ -2476,7 +2481,7 @@ static void sta_stats_decode_rate(struct
static int sta_set_rate_info_rx(struct sta_info *sta, struct rate_info *rinfo) static int sta_set_rate_info_rx(struct sta_info *sta, struct rate_info *rinfo)
{ {
@ -48,16 +48,16 @@ Signed-off-by: Maharaja Kennadyrajan <quic_mkenna@quicinc.com>
if (rate == STA_STATS_RATE_INVALID) if (rate == STA_STATS_RATE_INVALID)
return -EINVAL; return -EINVAL;
@@ -2680,7 +2685,7 @@ void sta_set_sinfo(struct sta_info *sta, @@ -2576,7 +2581,7 @@ void sta_set_sinfo(struct sta_info *sta,
int i, ac, cpu;
struct ieee80211_sta_rx_stats *last_rxstats; struct ieee80211_sta_rx_stats *last_rxstats;
struct link_sta_info *link_sta = NULL;
- last_rxstats = sta_get_last_rx_stats(sta); - last_rxstats = sta_get_last_rx_stats(sta);
+ last_rxstats = sta_get_last_rx_stats(sta, false); + last_rxstats = sta_get_last_rx_stats(sta, false);
sinfo->generation = sdata->local->sta_generation; sinfo->generation = sdata->local->sta_generation;
@@ -2924,7 +2929,7 @@ u32 sta_get_expected_throughput(struct s @@ -2859,7 +2864,7 @@ u32 sta_get_expected_throughput(struct s
unsigned long ieee80211_sta_last_active(struct sta_info *sta) unsigned long ieee80211_sta_last_active(struct sta_info *sta)
{ {

View File

@ -58,7 +58,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
if (!skb) if (!skb)
return true; return true;
@@ -4343,7 +4345,7 @@ void __ieee80211_subif_start_xmit(struct @@ -4344,7 +4346,7 @@ void __ieee80211_subif_start_xmit(struct
* things so we cannot really handle checksum or GSO offload. * things so we cannot really handle checksum or GSO offload.
* fix it up in software before we handle anything else. * fix it up in software before we handle anything else.
*/ */
@ -67,7 +67,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
if (!skb) { if (!skb) {
len = 0; len = 0;
goto out; goto out;
@@ -4714,7 +4716,7 @@ static void ieee80211_8023_xmit(struct i @@ -4715,7 +4717,7 @@ static void ieee80211_8023_xmit(struct i
} }
} }

View File

@ -23,7 +23,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
--- a/include/net/mac80211.h --- a/include/net/mac80211.h
+++ b/include/net/mac80211.h +++ b/include/net/mac80211.h
@@ -2730,6 +2730,9 @@ struct ieee80211_txq { @@ -2732,6 +2732,9 @@ struct ieee80211_txq {
* *
* @IEEE80211_HW_SUPPORTS_TID_CLASS_OFFLOAD: Hardware suports tid calssification offload. * @IEEE80211_HW_SUPPORTS_TID_CLASS_OFFLOAD: Hardware suports tid calssification offload.
* *
@ -33,7 +33,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays * @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
*/ */
enum ieee80211_hw_flags { enum ieee80211_hw_flags {
@@ -2790,6 +2793,7 @@ enum ieee80211_hw_flags { @@ -2792,6 +2795,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD, IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD, IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD,
IEEE80211_HW_SUPPORTS_TID_CLASS_OFFLOAD, IEEE80211_HW_SUPPORTS_TID_CLASS_OFFLOAD,
@ -83,7 +83,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
return false; return false;
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
@@ -4328,7 +4335,8 @@ void __ieee80211_subif_start_xmit(struct @@ -4329,7 +4336,8 @@ void __ieee80211_subif_start_xmit(struct
} }
} }
@ -93,7 +93,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
ieee80211_aggr_check(sdata, sta, skb); ieee80211_aggr_check(sdata, sta, skb);
if (sta) { if (sta) {
@@ -4680,8 +4688,10 @@ static void ieee80211_8023_xmit(struct i @@ -4681,8 +4689,10 @@ static void ieee80211_8023_xmit(struct i
bool multicast; bool multicast;
u8 tid; u8 tid;
@ -106,7 +106,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
multicast = is_multicast_ether_addr(ra); multicast = is_multicast_ether_addr(ra);
@@ -6416,9 +6426,12 @@ int ieee80211_tx_control_port(struct wip @@ -6379,9 +6389,12 @@ int ieee80211_tx_control_port(struct wip
} }
if (!IS_ERR(sta)) { if (!IS_ERR(sta)) {
@ -123,7 +123,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
* for MLO STA, the SA should be the AP MLD address, but * for MLO STA, the SA should be the AP MLD address, but
--- a/net/mac80211/cfg.c --- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c
@@ -4525,6 +4525,9 @@ static int ieee80211_get_txq_stats(struc @@ -4524,6 +4524,9 @@ static int ieee80211_get_txq_stats(struc
struct ieee80211_sub_if_data *sdata; struct ieee80211_sub_if_data *sdata;
int ret = 0; int ret = 0;
@ -205,7 +205,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
int i; int i;
sta = kzalloc(sizeof(*sta) + hw->sta_data_size, gfp); sta = kzalloc(sizeof(*sta) + hw->sta_data_size, gfp);
@@ -607,18 +609,22 @@ __sta_info_alloc(struct ieee80211_sub_if @@ -611,18 +613,22 @@ __sta_info_alloc(struct ieee80211_sub_if
sta->last_connected = ktime_get_seconds(); sta->last_connected = ktime_get_seconds();
@ -237,7 +237,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
} }
if (sta_prepare_rate_control(local, sta, gfp)) if (sta_prepare_rate_control(local, sta, gfp))
@@ -692,7 +698,8 @@ __sta_info_alloc(struct ieee80211_sub_if @@ -696,7 +702,8 @@ __sta_info_alloc(struct ieee80211_sub_if
return sta; return sta;
free_txq: free_txq:
@ -247,7 +247,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
free: free:
sta_info_free_link(&sta->deflink); sta_info_free_link(&sta->deflink);
#ifdef CPTCFG_MAC80211_MESH #ifdef CPTCFG_MAC80211_MESH
@@ -1687,11 +1694,13 @@ void ieee80211_sta_ps_deliver_wakeup(str @@ -1691,11 +1698,13 @@ void ieee80211_sta_ps_deliver_wakeup(str
if (!ieee80211_hw_check(&local->hw, AP_LINK_PS)) if (!ieee80211_hw_check(&local->hw, AP_LINK_PS))
drv_sta_notify(local, sdata, STA_NOTIFY_AWAKE, &sta->sta); drv_sta_notify(local, sdata, STA_NOTIFY_AWAKE, &sta->sta);
@ -265,7 +265,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
} }
skb_queue_head_init(&pending); skb_queue_head_init(&pending);
@@ -2106,6 +2115,9 @@ ieee80211_sta_ps_deliver_response(struct @@ -2110,6 +2119,9 @@ ieee80211_sta_ps_deliver_response(struct
* TIM recalculation. * TIM recalculation.
*/ */
@ -275,7 +275,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
for (tid = 0; tid < ARRAY_SIZE(sta->sta.txq); tid++) { for (tid = 0; tid < ARRAY_SIZE(sta->sta.txq); tid++) {
if (!sta->sta.txq[tid] || if (!sta->sta.txq[tid] ||
!(driver_release_tids & BIT(tid)) || !(driver_release_tids & BIT(tid)) ||
@@ -2521,7 +2533,7 @@ static void sta_set_tidstats(struct sta_ @@ -2546,7 +2558,7 @@ static void sta_set_tidstats(struct sta_
tidstats->tx_msdu_failed = sta->deflink.status_stats.msdu_failed[tid]; tidstats->tx_msdu_failed = sta->deflink.status_stats.msdu_failed[tid];
} }
@ -284,7 +284,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
spin_lock_bh(&local->fq.lock); spin_lock_bh(&local->fq.lock);
rcu_read_lock(); rcu_read_lock();
@@ -2849,6 +2861,9 @@ unsigned long ieee80211_sta_last_active( @@ -2874,6 +2886,9 @@ unsigned long ieee80211_sta_last_active(
static void sta_update_codel_params(struct sta_info *sta, u32 thr) static void sta_update_codel_params(struct sta_info *sta, u32 thr)
{ {

View File

@ -25,7 +25,7 @@ Signed-off-by: Manish Dharanenthiran <quic_mdharane@quicinc.com>
--- a/net/mac80211/ieee80211_i.h --- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h
@@ -683,7 +683,7 @@ struct ieee80211_if_mesh { @@ -682,7 +682,7 @@ struct ieee80211_if_mesh {
struct timer_list mesh_path_root_timer; struct timer_list mesh_path_root_timer;
unsigned long wrkq_flags; unsigned long wrkq_flags;