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

@ -1,6 +1,6 @@
--- a/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,
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,
.hw_scan = ath11k_mac_op_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, SUPPORTS_REORDERING_BUFFER);
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;
@@ -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)
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,
--- a/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);

View File

@ -43,7 +43,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
struct ath11k_vif_iter {
--- a/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;
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)))
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)
{
struct ath11k *ar;
@ -86,7 +86,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
"setting USE_4ADDR for peer %pM\n", 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);
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,
@@ -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 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);
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;
int ret;
@ -224,7 +224,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
param_id = WMI_VDEV_PARAM_TX_ENCAP_TYPE;
if (ath11k_frame_mode != ATH11K_HW_TXRX_ETHERNET ||
(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;
}
@ -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",
ar->num_created_vdevs, TARGET_NUM_VDEVS(ab));
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;
INIT_LIST_HEAD(&arvif->list);
@ -263,7 +263,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
INIT_DELAYED_WORK(&arvif->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;
case NL80211_IFTYPE_AP:
arvif->vdev_type = WMI_VDEV_TYPE_AP;
@ -271,7 +271,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
break;
case NL80211_IFTYPE_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_vif *arvif = ath11k_vif_to_arvif(vif);
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",
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)
ath11k_warn(ab, "failed to submit AP self-peer removal on vdev %d: %d\n",
arvif->vdev_id, ret);
@ -319,7 +319,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
}
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);
@ -329,7 +329,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
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 ath11k *ar = hw->priv;
@ -349,7 +349,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
break;
case IEEE80211_AMPDU_TX_START:
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 *ar = arsta->arvif->ar;
@ -357,7 +357,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
s8 signal;
bool db2dbm = test_bit(WMI_TLV_SERVICE_HW_DB2DBM_CONVERSION_SUPPORT,
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;
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 {
--- a/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;
}
@ -94,7 +94,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
u8 ath11k_mac_bw_to_mac80211_bw(u8 bw)
{
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;
}
@ -128,7 +128,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
static void ath11k_pdev_caps_update(struct ath11k *ar)
{
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))
return 0;
@ -138,7 +138,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (cmd == DISABLE_KEY) {
arg.key_cipher = WMI_CIPHER_NONE;
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;
}
@ -181,7 +181,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
const u8 *peer_addr;
int ret = 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)
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
* 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;
}
@ -299,7 +299,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
spin_lock_bh(&ab->base_lock);
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;
}
@ -327,7 +327,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (peer && cmd == SET_KEY) {
peer->keys[key->keyidx] = key;
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->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) {
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;
}
@ -388,7 +388,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
static int ath11k_mac_op_sta_state(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
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)
ath11k_warn(ar->ab, "Unable to authorize peer %pM vdev %d: %d\n",
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 &&
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 ||
vif->type == NL80211_IFTYPE_STATION) && ab->nss.enabled) {
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;
arvif->nss.encap = 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);
goto err;
}
@ -440,7 +440,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
mutex_unlock(&ar->conf_mutex);
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_subtype = WMI_VDEV_SUBTYPE_NONE;
@ -461,7 +461,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
switch (vif->type) {
case NL80211_IFTYPE_UNSPECIFIED:
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) {
ath11k_warn(ab, "failed to create WMI vdev %d: %d\n",
arvif->vdev_id, ret);
@ -470,7 +470,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
}
ar->num_created_vdevs++;
@@ -7254,7 +7498,7 @@ err_peer_del:
@@ -7249,7 +7493,7 @@ err_peer_del:
if (fbret) {
ath11k_warn(ar->ab, "fallback fail to delete peer addr %pM vdev_id %d ret %d\n",
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);
spin_unlock_bh(&ar->data_lock);
@ -488,7 +488,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
err:
mutex_unlock(&ar->conf_mutex);
@@ -7362,6 +7608,7 @@ err_vdev_del:
@@ -7357,6 +7603,7 @@ err_vdev_del:
list_del(&arvif->list);
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);
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)
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);
--- a/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 &&
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
+++ 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)
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);
return;
}
@@ -7622,7 +7632,7 @@ err_vdev_del:
@@ -7617,7 +7627,7 @@ err_vdev_del:
idr_for_each(&ar->txmgmt_idr,
ath11k_mac_vif_txmgmt_idr_remove, vif);

View File

@ -1,6 +1,6 @@
--- a/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,
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
+++ 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);
}
@ -1257,7 +1257,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
mutex_unlock(&ar->conf_mutex);
}
@@ -9714,6 +9726,28 @@ err_fallback:
@@ -9709,6 +9721,28 @@ err_fallback:
return 0;
}
@ -1286,7 +1286,7 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
static const struct ieee80211_ops ath11k_ops = {
.tx = ath11k_mac_op_tx,
.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,
.remain_on_channel = ath11k_mac_op_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,
@@ -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);
wiphy_ext_feature_set(ar->hw->wiphy,
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
+++ 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);
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)
--- a/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->tbl_mtx_lock);
@ -64,7 +64,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
spin_lock_init(&ab->base_lock);
mutex_init(&ab->vdev_id_11d_lock);
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->update_11d_work, ath11k_update_11d);
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,
--- a/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);
}

View File

@ -38,7 +38,7 @@ Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
--- a/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);

View File

@ -17,7 +17,7 @@ Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com>
--- a/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;
}
@ -30,7 +30,7 @@ Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com>
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_prev = arsta->bw;
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
+++ 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;
case ATH11K_STATE_RESTARTING:
ar->state = ATH11K_STATE_RESTARTED;
@ -48,7 +48,7 @@ Signed-off-by: Rajat Soni <quic_rajson@quicinc.com>
case ATH11K_STATE_WEDGED:
--- a/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)
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 ++
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
+++ 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;
}
@ -38,6 +36,3 @@ index 28c9908ef816..dbdb7aa5c498 100644
time_left = wait_event_timeout(ar->txmgmt_empty_waitq,
(atomic_read(&ar->num_pending_mgmt_tx) == 0),
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
+++ 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)
goto exit;
@ -59,7 +59,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
ppdu_info->peer_id = HAL_INVALID_PEERID;
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)
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;
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 ||
hal_status != HAL_RX_MON_STATUS_PPDU_DONE)) {
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
+++ 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);
}
@ -53,7 +53,7 @@ Signed-off-by: Balamurugan Selvarajan <quic_bselvara@quicinc.com>
if (dma_mapping_error(ab->dev, paddr))
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);
spin_unlock_bh(&rx_ring->idr_lock);
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
+++ 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_vif *arvif = ath11k_vif_to_arvif(vif);
int ret;
@ -34,7 +34,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
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;
}

View File

@ -19,7 +19,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
--- a/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,
};
@ -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)
{
@@ -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 &&
!arvif->is_started &&
arvif->vdev_type != WMI_VDEV_TYPE_AP) {
@ -39,7 +39,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
if (ret) {
ath11k_warn(ab, "failed to delay vdev start: %d\n", ret);
goto free_tx_stats;
@@ -8164,8 +8164,8 @@ unlock:
@@ -8161,8 +8161,8 @@ unlock:
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
+++ 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,
};
@ -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 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--;
}
@ -129,7 +129,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
static u32 ath11k_mac_ieee80211_sta_bw_to_wmi(struct ath11k *ar,
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;
}
@ -317,7 +317,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
static int ath11k_mac_op_sta_set_txpwr(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
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

View File

@ -52,7 +52,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
--- a/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;
}
@ -83,7 +83,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
static int
ath11k_mac_op_assign_vif_chanctx(struct ieee80211_hw *hw,
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;
}
@ -109,7 +109,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
if (arvif->vdev_type != WMI_VDEV_TYPE_MONITOR &&
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",
ctx, arvif->vdev_id);
@ -118,7 +118,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
if (ab->hw_params.vdev_start_delay &&
arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) {
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;
}
@ -149,7 +149,7 @@ Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
}
if (ab->hw_params.vdev_start_delay &&
@@ -9555,6 +9568,46 @@ exit:
@@ -9554,6 +9567,46 @@ exit:
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,
struct ieee80211_vif *vif,
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);
} else if ((old_state == IEEE80211_STA_NONE &&
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",
vif->addr, arvif->vdev_id);
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);
mutex_unlock(&ar->ab->tbl_mtx_lock);

View File

@ -153,7 +153,7 @@
#include "hw.h"
#include "peer.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)
{
struct ath11k_base *ab = ar->ab;
@ -163,7 +163,7 @@
enum hal_tx_rate_stats_pkt_type pkt_type;
enum hal_tx_rate_stats_sgi sgi;
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);
}
@ -176,7 +176,7 @@
spin_unlock_bh(&ab->base_lock);
--- a/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,
#endif

View File

@ -49,7 +49,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
* |-------------------------------------------------------------------|
* | 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 |
* |-------------------------------------------------------------------|
@ -64,7 +64,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
* Where:
* PS = pkt_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
* b'24 - status_swap: 1 is to swap status 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,
* in byte units.
* 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:
* Filter in Attention/MPDU/PPDU/Header/User tlvs
* 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)
@@ -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_SS BIT(24)
#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 {
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_ATTENTION)
@ -151,7 +151,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
struct htt_rx_ring_selection_cfg_cmd {
u32 info0;
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_flags3;
u32 rx_filter_tlv;
@ -162,7 +162,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
} __packed;
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_flags2; /* CTRL */
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)
{
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;
}
@ -278,7 +278,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
static void ath11k_dp_rx_h_undecap_nwifi(struct ath11k *ar,
struct sk_buff *msdu,
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 sa[ETH_ALEN];
u16 qos_ctl = 0;
@ -288,7 +288,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
/* copy SA & DA and pull decapped header */
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));
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
* 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 */
memcpy(decap_hdr, (uint8_t *)hdr, hdr_len);
@ -326,7 +326,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
memcpy(skb_push(msdu,
IEEE80211_QOS_CTL_LEN), &qos_ctl,
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 sa[ETH_ALEN];
void *rfc1042;
@ -347,7 +347,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
rfc1042 = ath11k_dp_rx_h_find_rfc1042(ar, msdu, enctype);
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);
@ -355,7 +355,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
/* original 802.11 header has a different DA and in
* 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;
u8 l3_pad_bytes;
struct hal_rx_desc *rx_desc;
@ -363,7 +363,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
/* Delivered decapped frame:
* [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_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_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;
}
@ -396,7 +396,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
rxcb = ATH11K_SKB_RXCB(msdu);
rxcb->rx_desc = 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);
ret = -EINVAL;
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,
sizeof(struct hal_rx_desc));
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_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;
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)
{
@ -426,7 +426,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
u8 *ehdr;
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) {
hdr_status = ath11k_dp_rx_h_80211_hdr(ar->ab, rx_desc);
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,
sizeof(struct hal_rx_desc));
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);
}
@ -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)
{
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
+++ 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));
cmd->info0 |= FIELD_PREP(HTT_RX_RING_SELECTION_CFG_CMD_INFO0_PS,
!!(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,
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->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);
if (ret)
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;
@ -933,7 +933,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
extern const struct ath11k_hw_ops ipq8074_ops;
--- a/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);
}

View File

@ -25,7 +25,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
--- a/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;
u8 *ptr = NULL;
@ -33,7 +33,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
rxs->flag |= RX_FLAG_MACTIME_START;
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)
rxs->nss = ppduinfo->nss;
@ -128,7 +128,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
struct hal_rx_rxpcu_classification_overview {
--- a/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,
u8 *crypto_hdr,
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
+++ 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;
rx_ring = &ar->dp.rx_refill_buf_ring;
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,
msdu->len + skb_tailroom(msdu),
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;
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);
dma_unmap_single(ar->ab->dev, rxcb->paddr,
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;
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,
msdu->len + skb_tailroom(msdu),
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]);
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);
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]);
spin_lock_bh(&rx_ring->idr_lock);

View File

@ -114,7 +114,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
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 hal_reo_dest_ring *desc;
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];
@@ -3385,8 +3407,15 @@ try_again:
@@ -3384,8 +3406,15 @@ try_again:
ar = ab->pdevs[mac_id].ar;
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);
if (unlikely(!msdu)) {
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;
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;
}
@@ -4831,7 +4864,7 @@ exit:
@@ -4827,7 +4859,7 @@ exit:
rx_ring = &ar->dp.rx_refill_buf_ring;
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;
@@ -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_head msdu_list[MAX_RADIOS];
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];
@@ -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;
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);
if (!msdu) {
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;
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();
@@ -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();
done:
@ -224,7 +224,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
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)
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;
}
@@ -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,
&dp->rxdma_mon_buf_ring,
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,
&dp->rxdma_mon_buf_ring,
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);
}
@@ -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,
bool *fast_rx)
{
@ -226,7 +226,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
enum hal_encrypt_type enctype;
bool is_decrypted = false;
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;
bool is_mcbc = rxcb->is_mcbc;
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));
memcpy(he, &known, sizeof(known));
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))
rx_status->flag |= RX_FLAG_8023;

View File

@ -50,7 +50,7 @@
}
--- a/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;
sdata_lock(sdata);
@ -72,7 +72,7 @@
sdata->debugfs.subdir_stations = debugfs_create_dir("stations",
--- a/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);
}
@ -93,7 +93,7 @@
--- a/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);
@ -102,7 +102,7 @@
enum nl80211_commands cmd, u8 count,
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);
@ -111,7 +111,7 @@
if (!msg)
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);
return genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy),

View File

@ -1,6 +1,6 @@
--- a/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)
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_RADIOTAP_HE: HE radiotap data is present
* (&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_DCM
* - 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
* - DATA6_NSTS
* - 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)
* @RX_FLAG_RADIOTAP_HE_MU: HE MU radiotap data is present
* (&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))
/**
@ -88,7 +88,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* enum ieee80211_key_flags - key flags
*
* 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
* 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
*/
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_DETECTS_COLOR_COLLISION,
IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX,
@ -105,7 +105,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
/* keep last, obviously */
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.
* The callback can sleep.
*
@ -116,7 +116,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* @prepare_multicast: Prepare for multicast filter configuration.
* This callback is optional, and its return value is passed
* 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_bss_conf *info,
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,
struct ieee80211_bss_conf *link_conf);
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,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta, u8 tids);
@ -225,7 +225,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
return -EINVAL;
--- a/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;
int cpu;
@ -272,7 +272,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
info_id = ieee80211_store_ack_skb(local, skb, &info_flags,
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 &&
@ -306,7 +306,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
gfp);
--- a/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_link_data *link;
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);
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;
else
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);
}
@@ -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);

View File

@ -18,7 +18,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
--- a/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);
local_bh_disable();

View File

@ -49,7 +49,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
#endif /* __NET_CFG80211_H */
--- a/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);
/**
@ -158,7 +158,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
#undef TRACE_INCLUDE_PATH
--- a/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);

View File

@ -29,7 +29,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
/* misc utils */
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 sk_buff *next;
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)) {
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))
sta = NULL;

View File

@ -209,7 +209,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
--- a/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);
}
@ -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
* @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);
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)))
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 sta_info *sta;

View File

@ -21,7 +21,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/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);
@ -137,7 +137,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
{
--- a/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;
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 &&
!is_multicast_ether_addr(skb->data)) {
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];

View File

@ -24,7 +24,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/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
* needs to do software PN assignment by itself (e.g. due to TSO)
* @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)
* @keylen: key material length
* @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;
s8 keyidx;
u16 flags;
@ -102,7 +102,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
key->conf.cipher = cipher;
--- a/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_tx_info *info;

View File

@ -18,17 +18,6 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
net/mac80211/tx.c | 54 ++++++++++++++++++++++----------
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
+++ b/net/mac80211/ieee80211_i.h
@@ -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 sk_buff *skb;
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
+++ 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);
@ -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));
@@ -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 ethhdr *ehdr = (struct ethhdr *)skb->data;
@ -120,7 +73,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
struct sta_info *sta;
#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;
}
@ -137,7 +90,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
goto skip_offload;
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;
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);
goto out;
@@ -6284,13 +6291,7 @@ start_xmit:
@@ -6285,13 +6292,7 @@ start_xmit:
mutex_lock(&local->mtx);
if (pubsta) {
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));
local_bh_disable();
-
/*
* Frames with failed FCS/PLCP checksum are not returned,
* all other frames are returned without radiotap header
@@ -5463,7 +5461,6 @@ void ieee80211_rx_list(struct ieee80211_
__ieee80211_rx_handle_packet(hw, pubsta, skb, list);
}
- 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);
- /* added hardware encap check for ethernet mode */
- if (sdata->vif.offload_flags & IEEE80211_OFFLOAD_ENCAP_ENABLED)
- ieee80211_subif_start_xmit_8023(skb, skb->dev);
- else
- __ieee80211_subif_start_xmit(skb, skb->dev, flags, ctrl_flags, cookie);
-
- memset(tmp, 0, len);
- return tmp;
-}
-
static inline void *skb_put_zero(struct sk_buff *skb, unsigned int len)
{
void *tmp = skb_put(skb, len);
+ __ieee80211_subif_start_xmit(skb, skb->dev, flags, ctrl_flags, cookie);
local_bh_enable();
mutex_unlock(&local->mtx);

View File

@ -78,7 +78,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
bool eht_mu_beamformer;
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
* Only needed for Timing measurement and Fine timing measurement action
* 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_sta *sta;
@@ -1283,6 +1299,8 @@ struct ieee80211_tx_status {
@@ -1285,6 +1301,8 @@ struct ieee80211_tx_status {
u8 n_rates;
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.
* @IEEE80211_VIF_DISABLE_SMPS_OVERRIDE: disable user configuration of
* SMPS mode via debugfs.
@ -104,7 +104,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
*/
enum ieee80211_vif_flags {
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_GET_NOA_UPDATE = BIT(3),
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_MLO_MCAST_MULTI_LINK_TX,
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
@ -120,7 +120,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
/* keep last, obviously */
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.
* @sta_set_decap_offload: Called to notify the driver when a station is allowed
* 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.
* This callback allows the hw to check if requested parameters
* 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,
struct ieee80211_vif *vif,
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,
struct ieee80211_sta *sta,
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,
u16 active_links);
@ -245,7 +245,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
#endif /* MAC80211_H */
--- a/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 ieee80211_sub_if_data *sdata;
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);
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;
if (_chg_mesh_attr(NL80211_MESHCONF_MAX_RETRIES, mask))
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))
conf->element_ttl = nconf->element_ttl;
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))
conf->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))
conf->min_discovery_timeout = nconf->min_discovery_timeout;
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))
conf->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)) {
/* our RSSI threshold implementation is supported only for
* 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 =
nconf->dot11MeshConnectedToAuthServer;
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 */
--- a/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 mesh_path *
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_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);
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->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;
int len = skb->len;
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;
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;
}

View File

@ -16,7 +16,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
--- a/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
*
@ -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
*/
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_SUPPORTS_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
+++ b/net/mac80211/tx.c
@@ -4761,6 +4761,67 @@ out_free:
@@ -4762,6 +4762,67 @@ out_free:
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,
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)))
goto skip_offload;

View File

@ -33,7 +33,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
--- a/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);
@ -42,7 +42,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
tid = skb->priority & IEEE80211_QOS_CTL_TAG1D_MASK;
tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[tid]);
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);
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
+++ 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_DELIM_CRC_ERROR: A delimiter CRC error has been detected
* 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
* done by the hardware
* @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_IS_LAST = BIT(13),
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 */
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)) {
if (sta)
key = rcu_dereference(sta->ptk[sta->ptk_idx]);
@ -53,7 +53,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
rcu_read_unlock();
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 (sta)
key = rcu_dereference(sta->ptk[sta->ptk_idx]);
@ -62,7 +62,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
} else {
dev_sw_netstats_tx_add(dev, 1, skb->len);
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,
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 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);
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];
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));
}
@ -96,7 +96,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
dev_sw_netstats_tx_add(dev, skbs, len);
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,
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_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;
int q;
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.
@@ -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);
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->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);
}
@ -158,7 +158,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
#ifdef CPTCFG_MAC80211_NSS_SUPPORT
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);
goto out;
}
@ -176,7 +176,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
goto skip_offload;
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;
if (sdata->vif.type == NL80211_IFTYPE_AP) {
@ -192,7 +192,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
goto out;
skip_offload:
@@ -6374,7 +6394,10 @@ start_xmit:
@@ -6375,7 +6395,10 @@ start_xmit:
mutex_lock(&local->mtx);
local_bh_disable();

View File

@ -72,7 +72,7 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
--- a/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)
pinfo->flags |= NL80211_MPATH_FLAG_RESOLVED;
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
+++ 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 *
@ -25,7 +25,7 @@ Signed-off-by: Maharaja Kennadyrajan <quic_mkenna@quicinc.com>
{
struct ieee80211_sta_rx_stats *stats = &sta->deflink.rx_stats;
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) {
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))
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)
{
@ -48,16 +48,16 @@ Signed-off-by: Maharaja Kennadyrajan <quic_mkenna@quicinc.com>
if (rate == STA_STATS_RATE_INVALID)
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 link_sta_info *link_sta = NULL;
- last_rxstats = sta_get_last_rx_stats(sta);
+ last_rxstats = sta_get_last_rx_stats(sta, false);
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)
{

View File

@ -58,7 +58,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
if (!skb)
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.
* 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) {
len = 0;
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
+++ 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.
*
@ -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
*/
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_MESH_NSS_OFFLOAD,
IEEE80211_HW_SUPPORTS_TID_CLASS_OFFLOAD,
@ -83,7 +83,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
return false;
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);
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;
u8 tid;
@ -106,7 +106,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
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)) {
@ -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
--- a/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;
int ret = 0;
@ -205,7 +205,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
int i;
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();
@ -237,7 +237,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
}
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;
free_txq:
@ -247,7 +247,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
free:
sta_info_free_link(&sta->deflink);
#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))
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);
@@ -2106,6 +2115,9 @@ ieee80211_sta_ps_deliver_response(struct
@@ -2110,6 +2119,9 @@ ieee80211_sta_ps_deliver_response(struct
* 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++) {
if (!sta->sta.txq[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];
}
@ -284,7 +284,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
spin_lock_bh(&local->fq.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)
{

View File

@ -25,7 +25,7 @@ Signed-off-by: Manish Dharanenthiran <quic_mdharane@quicinc.com>
--- a/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;
unsigned long wrkq_flags;