ath11k_nss: Refresh patches for backports 6.12.6

Rebased against upstream commit 87033
mac80211: improve single-wiphy multi-radio support

Signed-off-by: Sean Khan <datapronix@protonmail.com>

ath11k_nss: Refresh patches against rebase 53eab61

Author:     Felix Fietkau <nbd@nbd.name>
AuthorDate: Mon Nov 18 11:21:02 2024 +0100
Commit:     Felix Fietkau <nbd@nbd.name>
CommitDate: Mon Nov 18 11:44:44 2024 +0100

    mac80211: backport some upstream fixes

    Fix various issues, including potential crashes

    Signed-off-by: Felix Fietkau <nbd@nbd.name>

Signed-off-by: Sean Khan <datapronix@protonmail.com>

ath11k_nss: Fix patches for backports 6.12.6

Signed-off-by: Sean Khan <datapronix@protonmail.com>

ath11k_nss: Refresh patches for backports 6.12.6

Signed-off-by: Sean Khan <datapronix@protonmail.com>
This commit is contained in:
Sean Khan
2024-10-25 02:58:55 -04:00
parent c812027c57
commit 01277800ab
47 changed files with 227 additions and 275 deletions

View File

@@ -29,7 +29,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
/* SMBIOS type containing Board Data File Name Extension */
#define ATH11K_SMBIOS_BDF_EXT_TYPE 0xF8
@@ -419,6 +421,17 @@ struct ath11k_vif_iter {
@@ -425,6 +427,17 @@ struct ath11k_vif_iter {
struct ath11k_vif *arvif;
};
@@ -47,7 +47,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
struct ath11k_rx_peer_stats {
u64 num_msdu;
u64 num_mpdu_fcs_ok;
@@ -430,10 +443,6 @@ struct ath11k_rx_peer_stats {
@@ -436,10 +449,6 @@ struct ath11k_rx_peer_stats {
u64 non_ampdu_msdu_count;
u64 stbc_count;
u64 beamformed_count;
@@ -58,7 +58,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
u64 coding_count[HAL_RX_SU_MU_CODING_MAX];
u64 tid_count[IEEE80211_NUM_TIDS + 1];
u64 pream_cnt[HAL_RX_PREAMBLE_MAX];
@@ -441,6 +450,8 @@ struct ath11k_rx_peer_stats {
@@ -447,6 +456,8 @@ struct ath11k_rx_peer_stats {
u64 rx_duration;
u64 dcm_count;
u64 ru_alloc_cnt[HAL_RX_RU_ALLOC_TYPE_MAX];

View File

@@ -23,7 +23,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
#include "fw.h"
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK)
@@ -512,6 +513,8 @@ struct ath11k_htt_data_stats {
@@ -518,6 +519,8 @@ struct ath11k_htt_data_stats {
u64 bw[ATH11K_COUNTER_TYPE_MAX][ATH11K_BW_NUM];
u64 nss[ATH11K_COUNTER_TYPE_MAX][ATH11K_NSS_NUM];
u64 gi[ATH11K_COUNTER_TYPE_MAX][ATH11K_GI_NUM];
@@ -32,7 +32,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
};
struct ath11k_htt_tx_stats {
@@ -519,6 +522,9 @@ struct ath11k_htt_tx_stats {
@@ -525,6 +528,9 @@ struct ath11k_htt_tx_stats {
u64 tx_duration;
u64 ba_fails;
u64 ack_fails;
@@ -42,7 +42,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
};
struct ath11k_per_ppdu_tx_stats {
@@ -635,11 +641,16 @@ struct ath11k_per_peer_tx_stats {
@@ -641,11 +647,16 @@ struct ath11k_per_peer_tx_stats {
u32 succ_bytes;
u32 retry_bytes;
u32 failed_bytes;
@@ -396,7 +396,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
#define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_LTF_SIZE_M GENMASK(1, 0)
#define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_STBC_M BIT(2)
@@ -1364,6 +1422,21 @@ struct htt_ppdu_stats_usr_cmpltn_ack_ba_
@@ -1352,16 +1410,33 @@ struct htt_ppdu_stats_usr_cmpltn_ack_ba_
u32 success_bytes;
} __packed;
@@ -404,7 +404,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
+#define HTT_PPDU_STATS_USR_CMN_HDR_SW_PEERID GENMASK(31, 16)
+#define HTT_PPDU_STATS_USR_CMN_CTL_FRM_CTRL GENMASK(15, 0)
+
+struct htt_ppdu_stats_user_common {
+struct htt_ppdu_stats_user_common {
+ u8 tid_num;
+ u8 vdev_id;
+ u16 sw_peer_id;
@@ -415,11 +415,6 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
+ u32 host_opaque_cookie;
+} __packed;
+
struct htt_ppdu_stats_usr_cmn_array {
struct htt_tlv tlv_hdr;
u32 num_ppdu_stats;
@@ -1377,14 +1450,16 @@ struct htt_ppdu_stats_usr_cmn_array {
struct htt_ppdu_user_stats {
u16 peer_id;
+ u16 delay_ba;
@@ -436,7 +431,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
#define HTT_PPDU_DESC_MAX_DEPTH 16
struct htt_ppdu_stats {
@@ -1393,7 +1468,7 @@ struct htt_ppdu_stats {
@@ -1370,7 +1445,7 @@ struct htt_ppdu_stats {
};
struct htt_ppdu_stats_info {

View File

@@ -5,7 +5,7 @@
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -5515,8 +5515,11 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -5518,8 +5518,11 @@ int ath11k_dp_rx_process_mon_status(stru
goto next_skb;
}

View File

@@ -247,7 +247,7 @@
int ath11k_dp_rx_process_mon_status(struct ath11k_base *ab, int mac_id,
struct napi_struct *napi, int budget)
{
@@ -5517,8 +5682,13 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -5520,8 +5685,13 @@ int ath11k_dp_rx_process_mon_status(stru
if ((ppdu_info->fc_valid) &&
(ppdu_info->ast_index != HAL_AST_IDX_INVALID)) {

View File

@@ -33,14 +33,15 @@
struct ath11k_vif {
u32 vdev_id;
enum wmi_vdev_type vdev_type;
@@ -415,6 +425,7 @@ struct ath11k_vif {
@@ -414,7 +424,7 @@ struct ath11k_vif {
struct ath11k_rekey_data rekey_data;
struct ath11k_reg_tpc_power_info reg_tpc_info;
-
+ struct ath11k_mgmt_frame_stats mgmt_stats;
};
struct ath11k_vif_iter {
/* Must be last - ends in a flexible-array member.
*
* FIXME: Driver should not copy struct ieee80211_chanctx_conf,
--- a/drivers/net/wireless/ath/ath11k/debugfs.c
+++ b/drivers/net/wireless/ath/ath11k/debugfs.c
@@ -1589,6 +1589,87 @@ static const struct file_operations fops

View File

@@ -3017,7 +3017,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
/* TODO: Do we need to enable ANI? */
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -891,6 +891,8 @@ struct ath11k_soc_dp_tx_err_stats {
@@ -896,6 +896,8 @@ struct ath11k_soc_dp_tx_err_stats {
* idr unavailable etc.
*/
atomic_t misc_fail;
@@ -3026,7 +3026,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
};
struct ath11k_soc_dp_stats {
@@ -977,6 +979,7 @@ struct ath11k_base {
@@ -982,6 +984,7 @@ struct ath11k_base {
struct list_head peers;
wait_queue_head_t peer_mapping_wq;
u8 mac_addr[ETH_ALEN];

View File

@@ -164,17 +164,17 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK)
@@ -426,6 +427,9 @@ struct ath11k_vif {
@@ -425,6 +426,9 @@ struct ath11k_vif {
struct ath11k_reg_tpc_power_info reg_tpc_info;
struct ath11k_mgmt_frame_stats mgmt_stats;
+#ifdef CPTCFG_ATH11K_NSS_SUPPORT
+ struct arvif_nss nss;
+#endif
};
struct ath11k_vif_iter {
@@ -579,6 +583,9 @@ struct ath11k_sta {
/* Must be last - ends in a flexible-array member.
*
* FIXME: Driver should not copy struct ieee80211_chanctx_conf,
@@ -584,6 +588,9 @@ struct ath11k_sta {
#endif
bool use_4addr_set;
@@ -184,7 +184,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
u16 tcl_metadata;
/* Protected with ar->data_lock */
@@ -673,6 +680,9 @@ struct ath11k {
@@ -678,6 +685,9 @@ struct ath11k {
struct ath11k_pdev *pdev;
struct ieee80211_hw *hw;
struct ath11k_pdev_wmi *wmi;
@@ -194,7 +194,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
struct ath11k_pdev_dp dp;
u8 mac_addr[ETH_ALEN];
struct ath11k_he ar_he;
@@ -934,9 +944,11 @@ struct ath11k_base {
@@ -939,9 +949,11 @@ struct ath11k_base {
struct ath11k_htc htc;
struct ath11k_dp dp;
@@ -443,7 +443,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
int num_buffs_reaped = 0;
u32 rx_buf_sz;
u16 log_type;
@@ -5745,6 +5774,7 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -5748,6 +5777,7 @@ int ath11k_dp_rx_process_mon_status(stru
if (ppdu_info->reception_type == HAL_RX_RECEPTION_TYPE_SU) {
arsta = (struct ath11k_sta *)peer->sta->drv_priv;
ath11k_dp_rx_update_peer_su_stats(arsta, ppdu_info);

View File

@@ -152,7 +152,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK)
@@ -929,6 +929,11 @@ struct ath11k_msi_config {
@@ -934,6 +934,11 @@ struct ath11k_msi_config {
u16 hw_rev;
};
@@ -164,7 +164,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
/* Master structure to hold the hw data which may be used in core module */
struct ath11k_base {
enum ath11k_hw_rev hw_rev;
@@ -1086,6 +1091,8 @@ struct ath11k_base {
@@ -1091,6 +1096,8 @@ struct ath11k_base {
DECLARE_BITMAP(fw_features, ATH11K_FW_FEATURE_COUNT);
} fw;

View File

@@ -26,7 +26,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -683,6 +683,7 @@ struct ath11k {
@@ -688,6 +688,7 @@ struct ath11k {
struct ath11k_pdev_wmi *wmi;
#ifdef CPTCFG_ATH11K_NSS_SUPPORT
struct ath11k_nss nss;
@@ -34,7 +34,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
#endif
struct ath11k_pdev_dp dp;
u8 mac_addr[ETH_ALEN];
@@ -1101,6 +1102,9 @@ struct ath11k_base {
@@ -1106,6 +1107,9 @@ struct ath11k_base {
} testmode;
#endif

View File

@@ -33,14 +33,14 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -431,6 +431,7 @@ struct ath11k_vif {
@@ -430,6 +430,7 @@ struct ath11k_vif {
#ifdef CPTCFG_ATH11K_NSS_SUPPORT
struct arvif_nss nss;
#endif
+ struct list_head ap_vlan_arvifs;
};
struct ath11k_vif_iter {
/* Must be last - ends in a flexible-array member.
*
* FIXME: Driver should not copy struct ieee80211_chanctx_conf,
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -4844,6 +4844,11 @@ static void ath11k_sta_rc_update_wk(stru

View File

@@ -69,7 +69,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
struct ath11k_vif {
u32 vdev_id;
enum wmi_vdev_type vdev_type;
@@ -432,6 +451,11 @@ struct ath11k_vif {
@@ -431,6 +450,11 @@ struct ath11k_vif {
struct arvif_nss nss;
#endif
struct list_head ap_vlan_arvifs;
@@ -78,9 +78,9 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
+ /* VLAN keyidx map required for Dynamic VLAN */
+ u16 *vlan_keyid_map;
+ DECLARE_BITMAP(free_groupidx_map, ATH11K_GROUP_KEYS_NUM_MAX);
};
struct ath11k_vif_iter {
/* Must be last - ends in a flexible-array member.
*
* FIXME: Driver should not copy struct ieee80211_chanctx_conf,
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -343,6 +343,10 @@ enum nl80211_he_gi ath11k_mac_he_gi_to_n

View File

@@ -29,7 +29,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
};
enum ath11k_hw_rev {
@@ -1130,6 +1131,7 @@ struct ath11k_base {
@@ -1135,6 +1136,7 @@ struct ath11k_base {
u32 max_ast_index;
u32 num_ast_entries;

View File

@@ -34,7 +34,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
};
struct ath11k_skb_cb {
@@ -925,10 +926,13 @@ struct ath11k_dp_ring_bp_stats {
@@ -930,10 +931,13 @@ struct ath11k_dp_ring_bp_stats {
struct ath11k_soc_dp_tx_err_stats {
/* TCL Ring Descriptor unavailable */
u32 desc_na[DP_TCL_NUM_RING_MAX];

View File

@@ -1014,8 +1014,8 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
+#endif
--- a/drivers/net/wireless/ath/ath11k/dp.h
+++ b/drivers/net/wireless/ath/ath11k/dp.h
@@ -1453,15 +1453,29 @@ struct htt_ppdu_stats_usr_cmn_array {
struct htt_tx_ppdu_stats_info tx_ppdu_info[];
@@ -1430,15 +1430,29 @@ struct htt_ppdu_stats_user_common {
u32 host_opaque_cookie;
} __packed;
+#define HTT_PPDU_STATS_CMPLTN_FLUSH_INFO_FLOW_TYPE GENMASK(7, 0)

View File

@@ -83,7 +83,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
#include "fw.h"
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK)
@@ -1134,6 +1135,9 @@ struct ath11k_base {
@@ -1139,6 +1140,9 @@ struct ath11k_base {
u32 max_ast_index;
u32 num_ast_entries;

View File

@@ -16,8 +16,8 @@ Signed-off-by: Anilkumar Kolli <quic_akolli@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -6018,12 +6018,23 @@ int ath11k_dp_rx_process_mon_status(stru
pmon->mon_ppdu_status = DP_PPDU_STATUS_START;
@@ -6021,12 +6021,23 @@ int ath11k_dp_rx_process_mon_status(stru
}
}
- if (ppdu_info->peer_id == HAL_INVALID_PEERID ||
@@ -43,7 +43,7 @@ Signed-off-by: Anilkumar Kolli <quic_akolli@quicinc.com>
rcu_read_lock();
spin_lock_bh(&ab->base_lock);
peer = ath11k_peer_find_by_id(ab, ppdu_info->peer_id);
@@ -6347,6 +6358,13 @@ static int ath11k_dp_full_mon_process_rx
@@ -6350,6 +6361,13 @@ static int ath11k_dp_full_mon_process_rx
spin_lock_bh(&pmon->mon_lock);
@@ -57,7 +57,7 @@ Signed-off-by: Anilkumar Kolli <quic_akolli@quicinc.com>
sw_mon_entries = &pmon->sw_mon_entries;
rx_mon_stats = &pmon->rx_mon_stats;
@@ -6386,7 +6404,6 @@ static int ath11k_dp_full_mon_process_rx
@@ -6389,7 +6407,6 @@ static int ath11k_dp_full_mon_process_rx
}
rx_mon_stats->dest_ppdu_done++;
@@ -65,7 +65,7 @@ Signed-off-by: Anilkumar Kolli <quic_akolli@quicinc.com>
pmon->buf_state = DP_MON_STATUS_LAG;
pmon->mon_status_paddr = sw_mon_entries->mon_status_paddr;
pmon->hold_mon_dst_ring = true;
@@ -6417,16 +6434,10 @@ reap_status_ring:
@@ -6420,16 +6437,10 @@ reap_status_ring:
int ath11k_dp_rx_process_mon_rings(struct ath11k_base *ab, int mac_id,
struct napi_struct *napi, int budget)
{

View File

@@ -14,7 +14,7 @@ Signed-off-by: Ramya Gnanasekar <quic_rgnanase@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/dp.h
+++ b/drivers/net/wireless/ath/ath11k/dp.h
@@ -1425,6 +1425,7 @@ struct htt_ppdu_stats_usr_cmpltn_cmn {
@@ -1413,6 +1413,7 @@ struct htt_ppdu_stats_usr_cmpltn_cmn {
#define HTT_PPDU_STATS_ACK_BA_INFO_TID_NUM GENMASK(31, 25)
#define HTT_PPDU_STATS_NON_QOS_TID 16

View File

@@ -41,7 +41,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -944,6 +944,9 @@ struct ath11k_soc_dp_stats {
@@ -949,6 +949,9 @@ struct ath11k_soc_dp_stats {
u32 rxdma_error[HAL_REO_ENTR_RING_RXDMA_ECODE_MAX];
u32 reo_error[HAL_REO_DEST_RING_ERROR_CODE_MAX];
u32 hal_reo_error[DP_REO_DST_RING_MAX];

View File

@@ -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);
@@ -6135,6 +6136,7 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -6138,6 +6139,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

@@ -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,
@@ -6423,16 +6414,14 @@ ath11k_dp_rx_full_mon_mpdu_pop(struct at
@@ -6426,16 +6417,14 @@ ath11k_dp_rx_full_mon_mpdu_pop(struct at
msdu_list.sw_cookie[i]);
spin_lock_bh(&rx_ring->idr_lock);

View File

@@ -18,7 +18,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -704,6 +704,11 @@ struct ath11k_per_peer_tx_stats {
@@ -709,6 +709,11 @@ struct ath11k_per_peer_tx_stats {
#define ATH11K_FLUSH_TIMEOUT (5 * HZ)
#define ATH11K_VDEV_DELETE_TIMEOUT_HZ (5 * HZ)
@@ -30,7 +30,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
struct ath11k {
struct ath11k_base *ab;
struct ath11k_pdev *pdev;
@@ -853,6 +858,7 @@ struct ath11k {
@@ -858,6 +863,7 @@ struct ath11k {
bool ps_state_enable;
bool ps_timekeeper_enable;
s8 max_allowed_tx_power;
@@ -248,7 +248,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
}
}
@@ -6691,7 +6734,7 @@ next_entry:
@@ -6694,7 +6737,7 @@ next_entry:
ath11k_dp_rxbufs_replenish(ar->ab, dp->mac_id,
&dp->rxdma_mon_buf_ring,
rx_bufs_used,

View File

@@ -31,7 +31,7 @@
INIT_WORK(&ab->restart_work, ath11k_core_restart);
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -741,9 +741,22 @@ struct ath11k {
@@ -746,9 +746,22 @@ struct ath11k {
iftype[NUM_NL80211_BANDS][NUM_NL80211_IFTYPES];
} mac;
@@ -54,7 +54,7 @@
u32 min_tx_power;
u32 max_tx_power;
u32 txpower_limit_2g;
@@ -821,6 +834,9 @@ struct ath11k {
@@ -826,6 +839,9 @@ struct ath11k {
struct work_struct wmi_mgmt_tx_work;
struct sk_buff_head wmi_mgmt_tx_queue;
@@ -64,7 +64,7 @@
struct ath11k_wow wow;
struct completion target_suspend;
bool target_suspend_ack;
@@ -1024,19 +1040,7 @@ struct ath11k_base {
@@ -1029,19 +1045,7 @@ struct ath11k_base {
struct ath11k_hal_reg_capabilities_ext hal_reg_cap[MAX_RADIOS];
unsigned long long free_vdev_map;
@@ -84,7 +84,7 @@
u8 mac_addr[ETH_ALEN];
int userpd_id;
int irq_num[ATH11K_IRQ_NUM_MAX];
@@ -1413,4 +1417,36 @@ static inline const char *ath11k_bus_str
@@ -1418,4 +1422,36 @@ static inline const char *ath11k_bus_str
return "unknown";
}
@@ -515,10 +515,10 @@
if (peer && peer->sta)
pubsta = peer->sta;
spin_unlock_bh(&ar->ab->base_lock);
@@ -3504,7 +3520,7 @@ try_again:
if (unlikely(push_reason !=
HAL_REO_DEST_RING_PUSH_REASON_ROUTING_INSTRUCTION)) {
dev_kfree_skb_any(msdu);
@@ -3462,7 +3478,7 @@ try_again:
if (unlikely(push_reason ==
HAL_REO_DEST_RING_PUSH_REASON_ERR_DETECTED)) {
ath11k_warn(ab,"Received invalid desc\n");
- ab->soc_stats.hal_reo_error[dp->reo_dst_ring[ring_id].ring_id]++;
+ ab->soc_stats.hal_reo_error[ring_id]++;
continue;
@@ -569,7 +569,7 @@
if (test_bit(ATH11K_FLAG_MONITOR_STARTED, &ar->monitor_flags) &&
pmon->mon_ppdu_status == DP_PPDU_STATUS_START &&
@@ -6423,7 +6439,7 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -6426,7 +6442,7 @@ int ath11k_dp_rx_process_mon_status(stru
}
rcu_read_lock();
spin_lock_bh(&ab->base_lock);

View File

@@ -48,7 +48,7 @@
rx_stats = arsta->rx_stats;
if (ar->ab->nss.enabled)
@@ -6451,7 +6450,7 @@ int ath11k_dp_rx_process_mon_status(stru
@@ -6454,7 +6453,7 @@ int ath11k_dp_rx_process_mon_status(stru
if ((ppdu_info->fc_valid) &&
(ppdu_info->ast_index != HAL_AST_IDX_INVALID)) {
if (ppdu_info->reception_type == HAL_RX_RECEPTION_TYPE_SU) {

View File

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

View File

@@ -64,7 +64,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
};
/**
@@ -1485,7 +1501,7 @@ ieee80211_tx_info_clear_status(struct ie
@@ -1483,7 +1499,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
@@ -73,7 +73,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* - DATA3_DATA_MCS
* - DATA3_DATA_DCM
* - DATA3_CODING
@@ -1493,7 +1509,7 @@ ieee80211_tx_info_clear_status(struct ie
@@ -1491,7 +1507,7 @@ ieee80211_tx_info_clear_status(struct ie
* - DATA5_DATA_BW_RU_ALLOC
* - DATA6_NSTS
* - DATA3_STBC
@@ -82,7 +82,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)
@@ -2128,6 +2144,16 @@ static inline bool lockdep_vif_wiphy_mut
@@ -2127,6 +2143,16 @@ static inline bool lockdep_vif_wiphy_mut
lockdep_vif_wiphy_mutex_held(vif))
/**
@@ -99,7 +99,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
@@ -2826,6 +2852,8 @@ struct ieee80211_txq {
@@ -2830,6 +2856,8 @@ struct ieee80211_txq {
* implements MLO, so operation can continue on other links when one
* link is switching.
*
@@ -108,7 +108,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 {
@@ -2885,6 +2913,7 @@ enum ieee80211_hw_flags {
@@ -2890,6 +2918,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_DISALLOW_PUNCTURING,
IEEE80211_HW_DISALLOW_PUNCTURING_5GHZ,
IEEE80211_HW_HANDLES_QUIET_CSA,
@@ -116,7 +116,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
/* keep last, obviously */
NUM_IEEE80211_HW_FLAGS
@@ -3900,6 +3929,10 @@ struct ieee80211_prep_tx_info {
@@ -3918,6 +3947,10 @@ struct ieee80211_prep_tx_info {
* non-MLO connections.
* The callback can sleep.
*
@@ -127,7 +127,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.
@@ -4462,7 +4495,9 @@ struct ieee80211_ops {
@@ -4480,7 +4513,9 @@ struct ieee80211_ops {
struct ieee80211_vif *vif,
struct ieee80211_bss_conf *info,
u64 changed);
@@ -138,7 +138,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,
@@ -4772,7 +4807,7 @@ struct ieee80211_ops {
@@ -4790,7 +4825,7 @@ struct ieee80211_ops {
int (*reset_tid_config)(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_sta *sta, u8 tids);
@@ -149,7 +149,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
struct ieee80211_sta *sta, bool enabled);
--- a/net/mac80211/debugfs.c
+++ b/net/mac80211/debugfs.c
@@ -508,6 +508,7 @@ static const char *hw_flag_names[] = {
@@ -509,6 +509,7 @@ static const char *hw_flag_names[] = {
FLAG(DISALLOW_PUNCTURING),
FLAG(DISALLOW_PUNCTURING_5GHZ),
FLAG(HANDLES_QUIET_CSA),
@@ -184,7 +184,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* the suspend->resume cycle. Since we can't check each caller
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -414,6 +414,17 @@ void ieee80211_link_info_change_notify(s
@@ -416,6 +416,17 @@ void ieee80211_link_info_change_notify(s
drv_link_info_changed(local, sdata, link->conf, link->link_id, changed);
}
@@ -202,7 +202,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
u64 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata)
{
sdata->vif.bss_conf.use_cts_prot = false;
@@ -852,12 +863,6 @@ struct ieee80211_hw *ieee80211_alloc_hw_
@@ -854,12 +865,6 @@ struct ieee80211_hw *ieee80211_alloc_hw_
NL80211_FEATURE_FULL_AP_CLIENT_STATE;
wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_FILS_STA);
wiphy_ext_feature_set(wiphy,
@@ -215,7 +215,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
NL80211_EXT_FEATURE_SCAN_FREQ_KHZ);
wiphy_ext_feature_set(wiphy,
NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE);
@@ -1185,6 +1190,18 @@ int ieee80211_register_hw(struct ieee802
@@ -1187,6 +1192,18 @@ int ieee80211_register_hw(struct ieee802
return -EINVAL;
}
@@ -272,7 +272,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
ac = skb_get_queue_mapping(skb);
tx->sta->deflink.tx_stats.bytes[ac] += skb->len;
}
@@ -2876,7 +2888,9 @@ static struct sk_buff *ieee80211_build_h
@@ -2877,7 +2889,9 @@ static struct sk_buff *ieee80211_build_h
if (unlikely(!multicast &&
((skb->sk &&
skb_shinfo(skb)->tx_flags & SKBTX_WIFI_STATUS) ||
@@ -283,7 +283,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
info_id = ieee80211_store_ack_skb(local, skb, &info_flags,
cookie);
@@ -4665,7 +4679,8 @@ static void ieee80211_8023_xmit(struct i
@@ -4667,7 +4681,8 @@ static void ieee80211_8023_xmit(struct i
}
if (unlikely(skb->sk &&
@@ -293,7 +293,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
info->status_data = ieee80211_store_ack_skb(local, skb,
&info->flags, NULL);
if (info->status_data)
@@ -4673,8 +4688,10 @@ static void ieee80211_8023_xmit(struct i
@@ -4675,8 +4690,10 @@ static void ieee80211_8023_xmit(struct i
}
dev_sw_netstats_tx_add(dev, skbs, len);
@@ -320,7 +320,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
gfp);
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -2695,7 +2695,7 @@ static int ieee80211_change_bss(struct w
@@ -2704,7 +2704,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;
@@ -329,7 +329,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
link = ieee80211_link_or_deflink(sdata, params->link_id, true);
if (IS_ERR(link))
@@ -2745,6 +2745,8 @@ static int ieee80211_change_bss(struct w
@@ -2754,6 +2754,8 @@ static int ieee80211_change_bss(struct w
sdata->flags |= IEEE80211_SDATA_DONT_BRIDGE_PACKETS;
else
sdata->flags &= ~IEEE80211_SDATA_DONT_BRIDGE_PACKETS;
@@ -338,7 +338,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
ieee80211_check_fast_rx_iface(sdata);
}
@@ -2773,6 +2775,8 @@ static int ieee80211_change_bss(struct w
@@ -2782,6 +2784,8 @@ static int ieee80211_change_bss(struct w
ieee80211_link_info_change_notify(sdata, link, changed);
@@ -375,7 +375,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
{
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -1860,6 +1860,8 @@ void ieee80211_vif_cfg_change_notify(str
@@ -1859,6 +1859,8 @@ void ieee80211_vif_cfg_change_notify(str
void ieee80211_link_info_change_notify(struct ieee80211_sub_if_data *sdata,
struct ieee80211_link_data *link,
u64 changed);
@@ -427,7 +427,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
TP_PROTO(struct ieee80211_local *local,
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -984,7 +984,8 @@ static bool ieee80211_set_sdata_offload_
@@ -986,7 +986,8 @@ static bool ieee80211_set_sdata_offload_
local->hw.wiphy->frag_threshold != (u32)-1)
flags &= ~IEEE80211_OFFLOAD_ENCAP_ENABLED;

View File

@@ -18,7 +18,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -6260,7 +6260,13 @@ int ieee80211_tx_control_port(struct wip
@@ -6262,7 +6262,13 @@ int ieee80211_tx_control_port(struct wip
start_xmit:
local_bh_disable();

View File

@@ -31,7 +31,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -9701,4 +9701,15 @@ ssize_t wiphy_locked_debugfs_write(struc
@@ -9766,4 +9766,15 @@ ssize_t wiphy_locked_debugfs_write(struc
void *data);
#endif
@@ -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
@@ -7561,6 +7561,20 @@ u32 ieee80211_calc_rx_airtime(struct iee
@@ -7595,6 +7595,20 @@ u32 ieee80211_calc_rx_airtime(struct iee
int len);
/**
@@ -91,18 +91,18 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
/* add new commands above here */
/* used to define NL80211_CMD_MAX below */
@@ -2868,6 +2873,8 @@ enum nl80211_commands {
* nested item, it contains attributes defined in
* &enum nl80211_if_combination_attrs.
@@ -2871,6 +2876,8 @@ enum nl80211_commands {
* @NL80211_ATTR_VIF_RADIO_MASK: Bitmask of allowed radios (u32).
* A value of 0 means all radios.
*
+ * @NL80211_ATTR_HE_MUEDCA_PARAMS: MU-EDCA AC parameters for the
+ * %NL80211_CMD_UPDATE_HE_MUEDCA_PARAMS command.
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
* @NL80211_ATTR_MAX: highest attribute number currently defined
* @__NL80211_ATTR_AFTER_LAST: internal use
@@ -3416,6 +3423,8 @@ enum nl80211_attrs {
NL80211_ATTR_WIPHY_RADIOS,
NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS,
@@ -3421,6 +3428,8 @@ enum nl80211_attrs {
NL80211_ATTR_VIF_RADIO_MASK,
+ NL80211_ATTR_HE_MUEDCA_PARAMS,
+
@@ -111,7 +111,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
__NL80211_ATTR_AFTER_LAST,
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -9341,3 +9341,15 @@ void ieee80211_disable_rssi_reports(stru
@@ -9339,3 +9339,15 @@ void ieee80211_disable_rssi_reports(stru
_ieee80211_enable_rssi_reports(sdata, 0, 0);
}
EXPORT_SYMBOL(ieee80211_disable_rssi_reports);
@@ -166,7 +166,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
[NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA] = { .type = NLA_FLAG },
[NL80211_ATTR_MLO_TTLM_DLINK] = NLA_POLICY_EXACT_LEN(sizeof(u16) * 8),
[NL80211_ATTR_MLO_TTLM_ULINK] = NLA_POLICY_EXACT_LEN(sizeof(u16) * 8),
@@ -20396,6 +20397,42 @@ void cfg80211_schedule_channels_check(st
@@ -20447,6 +20448,42 @@ void cfg80211_schedule_channels_check(st
}
EXPORT_SYMBOL(cfg80211_schedule_channels_check);
@@ -211,7 +211,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
int __init nl80211_init(void)
--- a/net/wireless/trace.h
+++ b/net/wireless/trace.h
@@ -3975,6 +3975,46 @@ TRACE_EVENT(cfg80211_update_owe_info_eve
@@ -3977,6 +3977,46 @@ TRACE_EVENT(cfg80211_update_owe_info_eve
__entry->assoc_link_id, __entry->peer_mld_addr)
);

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,
@@ -4292,6 +4295,8 @@ void __ieee80211_subif_start_xmit(struct
@@ -4294,6 +4297,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);
@@ -4313,6 +4318,19 @@ void __ieee80211_subif_start_xmit(struct
@@ -4315,6 +4320,19 @@ void __ieee80211_subif_start_xmit(struct
if (IS_ERR(sta))
sta = NULL;

View File

@@ -40,7 +40,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
extern const struct cfg80211_ops mac80211_config_ops;
@@ -1185,6 +1188,9 @@ struct ieee80211_sub_if_data {
@@ -1184,6 +1187,9 @@ struct ieee80211_sub_if_data {
struct dentry *default_beacon_key;
} debugfs;
#endif
@@ -65,7 +65,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
/**
* DOC: Interface list locking
*
@@ -774,6 +780,13 @@ static int ieee80211_stop(struct net_dev
@@ -776,6 +782,13 @@ static int ieee80211_stop(struct net_dev
ieee80211_stop_mbssid(sdata);
}
@@ -79,7 +79,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
wiphy_lock(sdata->local->hw.wiphy);
wiphy_work_cancel(sdata->local->hw.wiphy, &sdata->activate_links_work);
@@ -1219,6 +1232,34 @@ void ieee80211_del_virtual_monitor(struc
@@ -1227,6 +1240,34 @@ void ieee80211_del_virtual_monitor(struc
kfree(sdata);
}
@@ -114,7 +114,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
/*
* NOTE: Be very careful when changing this function, it must NOT return
* an error on interface type changes that have been pre-checked, so most
@@ -1446,6 +1487,21 @@ int ieee80211_do_open(struct wireless_de
@@ -1457,6 +1498,21 @@ int ieee80211_do_open(struct wireless_de
ieee80211_recalc_ps(local);
@@ -138,7 +138,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
return 0;
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -2606,6 +2606,60 @@ static bool ieee80211_frame_allowed(stru
@@ -2613,6 +2613,60 @@ static bool ieee80211_frame_allowed(stru
return true;
}
@@ -199,7 +199,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
static void ieee80211_deliver_skb_to_local_stack(struct sk_buff *skb,
struct ieee80211_rx_data *rx)
{
@@ -2645,11 +2699,15 @@ static void ieee80211_deliver_skb_to_loc
@@ -2652,11 +2706,15 @@ static void ieee80211_deliver_skb_to_loc
!ether_addr_equal(ehdr->h_dest, sdata->vif.addr)))
ether_addr_copy(ehdr->h_dest, sdata->vif.addr);
@@ -217,7 +217,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4525,6 +4525,35 @@ static void ieee80211_mlo_multicast_tx(s
@@ -4527,6 +4527,35 @@ static void ieee80211_mlo_multicast_tx(s
kfree_skb(skb);
}
@@ -253,7 +253,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
@@ -4540,6 +4569,10 @@ netdev_tx_t ieee80211_subif_start_xmit(s
@@ -4542,6 +4571,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;
@@ -264,7 +264,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
if (likely(!is_multicast_ether_addr(eth->h_dest)))
goto normal;
@@ -4729,6 +4762,9 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4731,6 +4764,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
@@ -5271,6 +5271,17 @@ void ieee80211_sta_pspoll(struct ieee802
@@ -5289,6 +5289,17 @@ void ieee80211_sta_pspoll(struct ieee802
*/
void ieee80211_sta_uapsd_trigger(struct ieee80211_sta *sta, u8 tid);
@@ -41,7 +41,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
* This is enough for the radiotap header.
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -2208,7 +2208,13 @@ static int ieee80211_change_station(stru
@@ -2217,7 +2217,13 @@ static int ieee80211_change_station(stru
rcu_assign_pointer(vlansdata->u.vlan.sta, sta);
__ieee80211_check_fast_rx_iface(vlansdata);
@@ -58,7 +58,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
--- a/net/mac80211/driver-ops.c
+++ b/net/mac80211/driver-ops.c
@@ -62,10 +62,9 @@ int drv_add_interface(struct ieee80211_l
@@ -62,11 +62,10 @@ int drv_add_interface(struct ieee80211_l
might_sleep();
lockdep_assert_wiphy(local->hw.wiphy);
@@ -66,6 +66,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
- (sdata->vif.type == NL80211_IFTYPE_MONITOR &&
+ if (WARN_ON(sdata->vif.type == NL80211_IFTYPE_MONITOR &&
!ieee80211_hw_check(&local->hw, WANT_MONITOR_VIF) &&
!ieee80211_hw_check(&local->hw, NO_VIRTUAL_MONITOR) &&
- !(sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE))))
+ !(sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE)))
return -EINVAL;
@@ -83,7 +84,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
break;
case NL80211_IFTYPE_MONITOR:
if (local->monitors == 0)
@@ -975,6 +978,7 @@ static bool ieee80211_iftype_supports_hd
@@ -977,6 +980,7 @@ static bool ieee80211_iftype_supports_hd
switch (iftype) {
/* P2P GO and client are mapped to AP/STATION types */
case NL80211_IFTYPE_AP:
@@ -91,7 +92,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
case NL80211_IFTYPE_STATION:
return true;
default:
@@ -1029,7 +1033,8 @@ static void ieee80211_set_vif_encap_ops(
@@ -1031,7 +1035,8 @@ static void ieee80211_set_vif_encap_ops(
struct ieee80211_sub_if_data *bss = sdata;
bool enabled;
@@ -101,8 +102,8 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (!sdata->bss)
return;
@@ -1355,10 +1360,17 @@ int ieee80211_do_open(struct wireless_de
@@ -1365,10 +1370,17 @@ int ieee80211_do_open(struct wireless_de
(sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE);
switch (sdata->vif.type) {
case NL80211_IFTYPE_AP_VLAN:
- /* no need to tell driver, but set carrier and chanctx */
@@ -122,7 +123,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
netif_carrier_off(dev);
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1683,6 +1683,12 @@ void ieee80211_sta_uapsd_trigger(struct
@@ -1690,6 +1690,12 @@ void ieee80211_sta_uapsd_trigger(struct
}
EXPORT_SYMBOL(ieee80211_sta_uapsd_trigger);
@@ -137,7 +138,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
{
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4319,8 +4319,11 @@ void __ieee80211_subif_start_xmit(struct
@@ -4321,8 +4321,11 @@ void __ieee80211_subif_start_xmit(struct
sta = NULL;
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
@@ -151,7 +152,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)
@@ -4712,7 +4715,8 @@ static void ieee80211_8023_xmit(struct i
@@ -4714,7 +4717,8 @@ static void ieee80211_8023_xmit(struct i
info->hw_queue = sdata->vif.hw_queue[queue];
@@ -173,29 +174,29 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
conf = rcu_dereference_protected(link->conf->chanctx_conf,
lockdep_is_held(&local->hw.wiphy->mtx));
if (conf) {
@@ -1873,7 +1876,8 @@ int ieee80211_reconfig(struct ieee80211_
}
list_for_each_entry(sdata, &local->interfaces, list) {
@@ -1876,7 +1879,8 @@ int ieee80211_reconfig(struct ieee80211_
if (sdata->vif.type == NL80211_IFTYPE_MONITOR &&
!ieee80211_hw_check(&local->hw, NO_VIRTUAL_MONITOR))
continue;
- if (sdata->vif.type != NL80211_IFTYPE_AP_VLAN &&
+ if ((sdata->vif.type != NL80211_IFTYPE_AP_VLAN ||
+ ieee80211_hw_check(&local->hw, SUPPORTS_NSS_OFFLOAD)) &&
sdata->vif.type != NL80211_IFTYPE_MONITOR &&
ieee80211_sdata_running(sdata)) {
res = drv_add_interface(local, sdata);
@@ -1888,7 +1892,8 @@ int ieee80211_reconfig(struct ieee80211_
if (res) {
list_for_each_entry_continue_reverse(sdata, &local->interfaces,
list)
if (WARN_ON(res))
@@ -1893,7 +1897,8 @@ int ieee80211_reconfig(struct ieee80211_
if (sdata->vif.type == NL80211_IFTYPE_MONITOR &&
!ieee80211_hw_check(&local->hw, NO_VIRTUAL_MONITOR))
continue;
- if (sdata->vif.type != NL80211_IFTYPE_AP_VLAN &&
+ if ((sdata->vif.type != NL80211_IFTYPE_AP_VLAN ||
+ ieee80211_hw_check(&local->hw, SUPPORTS_NSS_OFFLOAD)) &&
sdata->vif.type != NL80211_IFTYPE_MONITOR &&
ieee80211_sdata_running(sdata))
drv_remove_interface(local, sdata);
}
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -5700,7 +5700,8 @@ static bool ieee80211_assoc_success(stru
@@ -5698,7 +5698,8 @@ static bool ieee80211_assoc_success(stru
* If we're using 4-addr mode, let the AP know that we're
* doing so, so that it can create the STA VLAN on its side
*/

View File

@@ -24,7 +24,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2228,6 +2228,8 @@ enum ieee80211_key_flags {
@@ -2227,6 +2227,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)
@@ -2247,6 +2249,7 @@ struct ieee80211_key_conf {
@@ -2246,6 +2248,7 @@ struct ieee80211_key_conf {
u8 hw_key_idx;
s8 keyidx;
u16 flags;
@@ -43,7 +43,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
u8 key[];
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -535,6 +535,7 @@ static int ieee80211_add_key(struct wiph
@@ -540,6 +540,7 @@ static int ieee80211_add_key(struct wiph
break;
case NL80211_IFTYPE_AP:
case NL80211_IFTYPE_AP_VLAN:
@@ -53,7 +53,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
key->conf.flags |= IEEE80211_KEY_FLAG_RX_MGMT;
--- a/net/mac80211/driver-ops.c
+++ b/net/mac80211/driver-ops.c
@@ -134,7 +134,11 @@ int drv_sta_state(struct ieee80211_local
@@ -135,7 +135,11 @@ int drv_sta_state(struct ieee80211_local
might_sleep();
lockdep_assert_wiphy(local->hw.wiphy);
@@ -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
@@ -4671,16 +4671,25 @@ static void ieee80211_8023_xmit(struct i
@@ -4673,16 +4673,25 @@ static void ieee80211_8023_xmit(struct i
struct ieee80211_key *key, struct sk_buff *skb)
{
struct ieee80211_tx_info *info;

View File

@@ -30,7 +30,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
struct ieee80211_local *local;
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4700,19 +4700,21 @@ static void ieee80211_8023_xmit(struct i
@@ -4702,19 +4702,21 @@ static void ieee80211_8023_xmit(struct i
ieee80211_aggr_check(sdata, sta, skb);
@@ -64,7 +64,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
}
skb = ieee80211_tx_skb_fixup(skb, ieee80211_sdata_netdev_features(sdata));
@@ -4772,7 +4774,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4774,7 +4776,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;
@@ -73,7 +73,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
struct sta_info *sta;
#ifdef CPTCFG_MAC80211_NSS_SUPPORT
@@ -4790,9 +4792,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4792,9 +4794,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
goto out;
}
@@ -90,7 +90,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
goto skip_offload;
key = rcu_dereference(sta->ptk[sta->ptk_idx]);
@@ -4803,6 +4809,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4805,6 +4811,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);
@@ -98,7 +98,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
ieee80211_8023_xmit(sdata, dev, sta, key, skb);
goto out;
@@ -6327,13 +6334,7 @@ int ieee80211_tx_control_port(struct wip
@@ -6329,13 +6336,7 @@ int ieee80211_tx_control_port(struct wip
start_xmit:
local_bh_disable();

View File

@@ -96,7 +96,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
};
/**
@@ -1860,6 +1878,7 @@ struct ieee80211_channel_switch {
@@ -1856,6 +1874,7 @@ struct ieee80211_channel_switch {
* operation on this interface and request a channel context without
* the AP definition. Use this e.g. because the device is able to
* handle OFDMA (downlink and trigger for uplink) on a per-AP basis.
@@ -104,7 +104,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
*/
enum ieee80211_vif_flags {
IEEE80211_VIF_BEACON_FILTER = BIT(0),
@@ -1868,6 +1887,7 @@ enum ieee80211_vif_flags {
@@ -1864,6 +1883,7 @@ enum ieee80211_vif_flags {
IEEE80211_VIF_GET_NOA_UPDATE = BIT(3),
IEEE80211_VIF_EML_ACTIVE = BIT(4),
IEEE80211_VIF_IGNORE_OFDMA_WIDER_BW = BIT(5),
@@ -112,7 +112,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
};
@@ -2917,6 +2937,7 @@ enum ieee80211_hw_flags {
@@ -2922,6 +2942,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_DISALLOW_PUNCTURING_5GHZ,
IEEE80211_HW_HANDLES_QUIET_CSA,
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
@@ -4425,6 +4446,8 @@ struct ieee80211_prep_tx_info {
@@ -4443,6 +4464,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.
@@ -4819,6 +4842,12 @@ struct ieee80211_ops {
@@ -4837,6 +4860,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);
@@ -7726,4 +7755,100 @@ int ieee80211_emulate_switch_vif_chanctx
@@ -7760,4 +7789,100 @@ int ieee80211_emulate_switch_vif_chanctx
int n_vifs,
enum ieee80211_chanctx_switch_mode mode);
@@ -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
@@ -2538,6 +2538,7 @@ static int ieee80211_update_mesh_config(
@@ -2547,6 +2547,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;
@@ -2554,8 +2555,11 @@ static int ieee80211_update_mesh_config(
@@ -2563,8 +2564,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)) {
@@ -2569,8 +2573,12 @@ static int ieee80211_update_mesh_config(
@@ -2578,8 +2582,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))
@@ -2605,8 +2613,12 @@ static int ieee80211_update_mesh_config(
@@ -2614,8 +2622,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.
@@ -2648,6 +2660,7 @@ static int ieee80211_update_mesh_config(
@@ -2657,6 +2669,7 @@ static int ieee80211_update_mesh_config(
conf->dot11MeshConnectedToAuthServer =
nconf->dot11MeshConnectedToAuthServer;
ieee80211_mbss_info_change_notify(sdata, BSS_CHANGED_BEACON);
@@ -330,7 +330,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
sdata, fmt, ##__VA_ARGS__)
--- a/net/mac80211/debugfs.c
+++ b/net/mac80211/debugfs.c
@@ -509,6 +509,7 @@ static const char *hw_flag_names[] = {
@@ -510,6 +510,7 @@ static const char *hw_flag_names[] = {
FLAG(DISALLOW_PUNCTURING_5GHZ),
FLAG(HANDLES_QUIET_CSA),
FLAG(SUPPORTS_NSS_OFFLOAD),
@@ -340,7 +340,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
--- a/net/mac80211/driver-ops.c
+++ b/net/mac80211/driver-ops.c
@@ -621,3 +621,23 @@ int drv_change_sta_links(struct ieee8021
@@ -622,3 +622,23 @@ int drv_change_sta_links(struct ieee8021
return 0;
}
@@ -1160,7 +1160,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
void mesh_pathtbl_unregister(struct ieee80211_sub_if_data *sdata)
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -2628,7 +2628,7 @@ static struct sk_buff *ieee80211_build_h
@@ -2629,7 +2629,7 @@ static struct sk_buff *ieee80211_build_h
bool multicast;
u16 info_id = 0;
struct ieee80211_chanctx_conf *chanctx_conf = NULL;
@@ -1169,7 +1169,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
int ret;
u8 link_id = u32_get_bits(ctrl_flags, IEEE80211_TX_CTRL_MLO_LINK);
@@ -2640,6 +2640,9 @@ static struct sk_buff *ieee80211_build_h
@@ -2641,6 +2641,9 @@ static struct sk_buff *ieee80211_build_h
info_flags |= IEEE80211_TX_CTL_REQ_TX_STATUS;
#endif
@@ -1179,7 +1179,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
/* convert Ethernet header to proper 802.11 header (based on
* operation mode) */
ethertype = (skb->data[12] << 8) | skb->data[13];
@@ -2710,6 +2713,13 @@ static struct sk_buff *ieee80211_build_h
@@ -2711,6 +2714,13 @@ static struct sk_buff *ieee80211_build_h
break;
#ifdef CPTCFG_MAC80211_MESH
case NL80211_IFTYPE_MESH_POINT:
@@ -1193,7 +1193,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
if (!is_multicast_ether_addr(skb->data)) {
struct sta_info *next_hop;
bool mpp_lookup = true;
@@ -2973,6 +2983,9 @@ static struct sk_buff *ieee80211_build_h
@@ -2974,6 +2984,9 @@ static struct sk_buff *ieee80211_build_h
skb_reset_mac_header(skb);
@@ -1203,7 +1203,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
info = IEEE80211_SKB_CB(skb);
memset(info, 0, sizeof(*info));
@@ -4296,6 +4309,7 @@ void __ieee80211_subif_start_xmit(struct
@@ -4298,6 +4311,7 @@ void __ieee80211_subif_start_xmit(struct
struct sk_buff *next;
int len = skb->len;
struct ieee80211_key *key = NULL;
@@ -1211,7 +1211,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)) {
@@ -4370,9 +4384,15 @@ void __ieee80211_subif_start_xmit(struct
@@ -4372,9 +4386,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
@@ -2877,6 +2877,8 @@ struct ieee80211_txq {
@@ -2881,6 +2881,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 {
@@ -2938,6 +2940,7 @@ enum ieee80211_hw_flags {
@@ -2943,6 +2945,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_HANDLES_QUIET_CSA,
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD,
@@ -35,7 +35,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
NUM_IEEE80211_HW_FLAGS
--- a/net/mac80211/debugfs.c
+++ b/net/mac80211/debugfs.c
@@ -510,6 +510,7 @@ static const char *hw_flag_names[] = {
@@ -511,6 +511,7 @@ static const char *hw_flag_names[] = {
FLAG(HANDLES_QUIET_CSA),
FLAG(SUPPORTS_NSS_OFFLOAD),
FLAG(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
@@ -4789,6 +4789,67 @@ out_free:
@@ -4791,6 +4791,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)
{
@@ -4828,6 +4889,11 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4830,6 +4891,11 @@ netdev_tx_t ieee80211_subif_start_xmit_8
if (key && (!(key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE)))
goto skip_offload;

View File

@@ -20,7 +20,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -1761,6 +1761,8 @@ static void sta_apply_mesh_params(struct
@@ -1770,6 +1770,8 @@ static void sta_apply_mesh_params(struct
/* init at low value */
ewma_mesh_tx_rate_avg_add(&sta->mesh->tx_rate_avg, 10);
@@ -29,7 +29,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
break;
case NL80211_PLINK_LISTEN:
case NL80211_PLINK_BLOCKED:
@@ -1775,6 +1777,7 @@ static void sta_apply_mesh_params(struct
@@ -1784,6 +1786,7 @@ static void sta_apply_mesh_params(struct
ieee80211_mps_sta_status_update(sta);
changed |= ieee80211_mps_set_sta_local_pm(sta,
NL80211_MESH_POWER_UNKNOWN);
@@ -94,7 +94,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
if (action) {
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -4717,10 +4717,15 @@ void ieee80211_check_fast_rx(struct sta_
@@ -4724,10 +4724,15 @@ void ieee80211_check_fast_rx(struct sta_
break;
case NL80211_IFTYPE_MESH_POINT:
@@ -112,7 +112,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
break;
default:
goto clear;
@@ -4761,7 +4766,7 @@ void ieee80211_check_fast_rx(struct sta_
@@ -4768,7 +4773,7 @@ void ieee80211_check_fast_rx(struct sta_
__release(check_fast_rx);
if (assign)
@@ -121,7 +121,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
offload_flags = get_bss_sdata(sdata)->vif.offload_flags;
offload = offload_flags & IEEE80211_OFFLOAD_DECAP_ENABLED;
@@ -4943,6 +4948,10 @@ static bool ieee80211_invoke_fast_rx(str
@@ -4950,6 +4955,10 @@ static bool ieee80211_invoke_fast_rx(str
u8 sa[ETH_ALEN];
} addrs __aligned(2);
struct ieee80211_sta_rx_stats *stats;
@@ -132,7 +132,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
/* for parallel-rx, we need to have DUP_VALIDATED, otherwise we write
* to a common data structure; drivers can implement that per queue
@@ -4992,6 +5001,37 @@ static bool ieee80211_invoke_fast_rx(str
@@ -4999,6 +5008,37 @@ static bool ieee80211_invoke_fast_rx(str
snap_offs += IEEE80211_CCMP_HDR_LEN;
}
@@ -170,7 +170,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
if (!ieee80211_vif_is_mesh(&rx->sdata->vif) &&
!(status->rx_flags & IEEE80211_RX_AMSDU)) {
if (!pskb_may_pull(skb, snap_offs + sizeof(*payload)))
@@ -5029,9 +5069,33 @@ static bool ieee80211_invoke_fast_rx(str
@@ -5036,9 +5076,33 @@ static bool ieee80211_invoke_fast_rx(str
return true;
}

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
@@ -4720,7 +4720,7 @@ static void ieee80211_8023_xmit(struct i
@@ -4722,7 +4722,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) {
@@ -4774,7 +4774,7 @@ static void ieee80211_8023_xmit(struct i
@@ -4776,7 +4776,7 @@ static void ieee80211_8023_xmit(struct i
}
dev_sw_netstats_tx_add(dev, skbs, len);

View File

@@ -21,7 +21,7 @@ Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com>
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -1013,7 +1013,8 @@ static bool ieee80211_set_sdata_offload_
@@ -1015,7 +1015,8 @@ static bool ieee80211_set_sdata_offload_
flags |= IEEE80211_OFFLOAD_DECAP_ENABLED;
if (local->monitors &&

View File

@@ -1,29 +1,6 @@
From 11d0cce62afc157468e1d97ea80a2510091ea2c2 Mon Sep 17 00:00:00 2001
From: P Praneesh <quic_ppranees@quicinc.com>
Date: Fri, 1 Jul 2022 11:57:00 +0530
Subject: [PATCH] mac80211: Remove unused RX_FLAGS from mac80211_rx_flags
Remove unused RX_FLAG_AMPDU_DELIM_CRC_KNOWN flag from
mac80211_rx_flags to provide space for new EHT flags.
Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
---
include/net/mac80211.h | 33 +++++++++++++++------------------
net/mac80211/rx.c | 7 +------
2 files changed, 16 insertions(+), 24 deletions(-)
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -1482,8 +1482,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
- * @RX_FLAG_AMPDU_DELIM_CRC_KNOWN: The delimiter CRC field is known (the CRC
- * is stored in the @ampdu_delimiter_crc field)
* @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
@@ -1540,39 +1538,38 @@ ieee80211_tx_info_clear_status(struct ie
@@ -1538,39 +1538,38 @@ ieee80211_tx_info_clear_status(struct ie
* hardware or driver)
*/
enum mac80211_rx_flags {
@@ -42,7 +19,7 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
- RX_FLAG_AMPDU_LAST_KNOWN = BIT(12),
- RX_FLAG_AMPDU_IS_LAST = BIT(13),
- RX_FLAG_AMPDU_DELIM_CRC_ERROR = BIT(14),
- RX_FLAG_AMPDU_DELIM_CRC_KNOWN = BIT(15),
- /* one free bit at 15 */
- RX_FLAG_MACTIME = BIT(16) | BIT(17),
- RX_FLAG_MACTIME_PLCP_START = 1 << 16,
- RX_FLAG_MACTIME_START = 2 << 16,
@@ -95,25 +72,3 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
};
/**
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -508,18 +508,13 @@ ieee80211_add_rx_radiotap_header(struct
flags |= IEEE80211_RADIOTAP_AMPDU_IS_LAST;
if (status->flag & RX_FLAG_AMPDU_DELIM_CRC_ERROR)
flags |= IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_ERR;
- if (status->flag & RX_FLAG_AMPDU_DELIM_CRC_KNOWN)
- flags |= IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_KNOWN;
if (status->flag & RX_FLAG_AMPDU_EOF_BIT_KNOWN)
flags |= IEEE80211_RADIOTAP_AMPDU_EOF_KNOWN;
if (status->flag & RX_FLAG_AMPDU_EOF_BIT)
flags |= IEEE80211_RADIOTAP_AMPDU_EOF;
put_unaligned_le16(flags, pos);
pos += 2;
- if (status->flag & RX_FLAG_AMPDU_DELIM_CRC_KNOWN)
- *pos++ = status->ampdu_delimiter_crc;
- else
- *pos++ = 0;
+ *pos++ = 0;
*pos++ = 0;
}

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,
@@ -4342,7 +4343,7 @@ void __ieee80211_subif_start_xmit(struct
@@ -4344,7 +4345,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;
}
@@ -4388,7 +4389,7 @@ void __ieee80211_subif_start_xmit(struct
@@ -4390,7 +4391,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);
@@ -4688,7 +4689,8 @@ static bool ieee80211_tx_8023(struct iee
@@ -4690,7 +4691,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;
@@ -4744,6 +4746,7 @@ static void ieee80211_8023_xmit(struct i
@@ -4746,6 +4748,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 &&
@@ -4764,11 +4767,12 @@ static void ieee80211_8023_xmit(struct i
@@ -4766,11 +4769,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>
if (info->status_data)
info->status_data_idr = 1;
}
@@ -4791,7 +4795,8 @@ out_free:
@@ -4793,7 +4797,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;
@@ -4800,6 +4805,9 @@ void ieee80211_8023_xmit_ap(struct ieee8
@@ -4802,6 +4807,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.
@@ -4811,11 +4819,13 @@ void ieee80211_8023_xmit_ap(struct ieee8
@@ -4813,11 +4821,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;
@@ -4849,14 +4859,23 @@ void ieee80211_8023_xmit_ap(struct ieee8
@@ -4851,14 +4861,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);
@@ -4872,14 +4891,15 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4874,14 +4893,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]);
@@ -4890,13 +4910,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
@@ -4892,13 +4912,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:
@@ -6420,7 +6440,10 @@ int ieee80211_tx_control_port(struct wip
@@ -6422,7 +6442,10 @@ int ieee80211_tx_control_port(struct wip
start_xmit:
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
@@ -2365,7 +2365,7 @@ static void mpath_set_pinfo(struct mesh_
@@ -2374,7 +2374,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

@@ -31,7 +31,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
static void ieee80211_8023_xmit(struct ieee80211_sub_if_data *sdata,
struct net_device *dev, struct sta_info *sta,
struct ieee80211_key *key, struct sk_buff *skb,
@@ -3656,7 +3658,7 @@ ieee80211_sdata_netdev_features(struct i
@@ -3657,7 +3659,7 @@ ieee80211_sdata_netdev_features(struct i
}
static struct sk_buff *
@@ -40,7 +40,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
{
if (skb_is_gso(skb)) {
struct sk_buff *segs;
@@ -3674,7 +3676,7 @@ ieee80211_tx_skb_fixup(struct sk_buff *s
@@ -3675,7 +3677,7 @@ ieee80211_tx_skb_fixup(struct sk_buff *s
if (skb_needs_linearize(skb, features) && __skb_linearize(skb))
goto free;
@@ -49,7 +49,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
int ofs = skb_checksum_start_offset(skb);
if (skb->encapsulation)
@@ -3820,7 +3822,7 @@ static bool ieee80211_xmit_fast(struct i
@@ -3821,7 +3823,7 @@ static bool ieee80211_xmit_fast(struct i
memcpy(&eth, skb->data, ETH_HLEN - 2);
/* after this point (skb is modified) we cannot return false */
@@ -58,7 +58,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
if (!skb)
return true;
@@ -4366,7 +4368,7 @@ void __ieee80211_subif_start_xmit(struct
@@ -4368,7 +4370,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;
@@ -4739,7 +4741,7 @@ static void ieee80211_8023_xmit(struct i
@@ -4741,7 +4743,7 @@ static void ieee80211_8023_xmit(struct i
}
}
@@ -78,7 +78,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -2259,6 +2259,10 @@ int ieee80211_if_add(struct ieee80211_lo
@@ -2270,6 +2270,10 @@ int ieee80211_if_add(struct ieee80211_lo
ndev->features |= local->hw.netdev_features;
ndev->priv_flags |= IFF_LIVE_ADDR_CHANGE;

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
@@ -2876,6 +2876,9 @@ struct ieee80211_txq {
@@ -2882,6 +2882,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 {
@@ -2938,6 +2941,7 @@ enum ieee80211_hw_flags {
@@ -2945,6 +2948,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD,
IEEE80211_HW_SUPPORTS_TID_CLASS_OFFLOAD,
@@ -43,7 +43,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
NUM_IEEE80211_HW_FLAGS
--- a/net/mac80211/debugfs.c
+++ b/net/mac80211/debugfs.c
@@ -511,6 +511,7 @@ static const char *hw_flag_names[] = {
@@ -512,6 +512,7 @@ static const char *hw_flag_names[] = {
FLAG(SUPPORTS_NSS_OFFLOAD),
FLAG(SUPPORTS_MESH_NSS_OFFLOAD),
FLAG(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)
@@ -4351,7 +4358,8 @@ void __ieee80211_subif_start_xmit(struct
@@ -4353,7 +4360,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) {
@@ -4705,8 +4713,10 @@ static void ieee80211_8023_xmit(struct i
@@ -4707,8 +4715,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);
@@ -6427,9 +6437,12 @@ int ieee80211_tx_control_port(struct wip
@@ -6429,9 +6439,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
@@ -4584,6 +4584,9 @@ static int ieee80211_get_txq_stats(struc
@@ -4601,6 +4601,9 @@ static int ieee80211_get_txq_stats(struc
struct ieee80211_sub_if_data *sdata;
int ret = 0;
@@ -135,7 +135,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -1001,7 +1001,10 @@ struct ieee80211_hw *ieee80211_alloc_hw_
@@ -1003,7 +1003,10 @@ struct ieee80211_hw *ieee80211_alloc_hw_
atomic_set(&local->agg_queue_stop[i], 0);
}
tasklet_setup(&local->tx_pending_tasklet, ieee80211_tx_pending);
@@ -149,7 +149,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
skb_queue_head_init(&local->skb_queue);
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1576,6 +1576,9 @@ static void sta_ps_start(struct sta_info
@@ -1588,6 +1588,9 @@ static void sta_ps_start(struct sta_info
ieee80211_clear_fast_xmit(sta);

View File

@@ -10,7 +10,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -4715,16 +4715,14 @@ void ieee80211_check_fast_rx(struct sta_
@@ -4727,16 +4727,14 @@ void ieee80211_check_fast_rx(struct sta_
break;
case NL80211_IFTYPE_MESH_POINT:
@@ -30,7 +30,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
default:
goto clear;
}
@@ -4946,10 +4944,7 @@ static bool ieee80211_invoke_fast_rx(str
@@ -4958,10 +4956,7 @@ static bool ieee80211_invoke_fast_rx(str
u8 sa[ETH_ALEN];
} addrs __aligned(2);
struct ieee80211_sta_rx_stats *stats;
@@ -41,7 +41,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
/* for parallel-rx, we need to have DUP_VALIDATED, otherwise we write
* to a common data structure; drivers can implement that per queue
@@ -4999,37 +4994,6 @@ static bool ieee80211_invoke_fast_rx(str
@@ -5011,37 +5006,6 @@ static bool ieee80211_invoke_fast_rx(str
snap_offs += IEEE80211_CCMP_HDR_LEN;
}
@@ -79,7 +79,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
if (!ieee80211_vif_is_mesh(&rx->sdata->vif) &&
!(status->rx_flags & IEEE80211_RX_AMSDU)) {
if (!pskb_may_pull(skb, snap_offs + sizeof(*payload)))
@@ -5067,30 +5031,6 @@ static bool ieee80211_invoke_fast_rx(str
@@ -5079,30 +5043,6 @@ static bool ieee80211_invoke_fast_rx(str
return true;
}

View File

@@ -27,7 +27,7 @@ Signed-off-by: Balamurugan Ramar <quic_bramar@quicinc.com>
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -7757,7 +7757,7 @@ void ieee80211_sta_work(struct ieee80211
@@ -7755,7 +7755,7 @@ void ieee80211_sta_work(struct ieee80211
*/
if (status_acked) {
ifmgd->assoc_data->timeout =

View File

@@ -17,7 +17,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -8806,6 +8806,7 @@ bool cfg80211_rx_spurious_frame(struct n
@@ -8871,6 +8871,7 @@ bool cfg80211_rx_spurious_frame(struct n
* @dev: The device the frame matched to
* @addr: the transmitter address
* @gfp: context flags
@@ -25,7 +25,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
*
* This function is used in AP mode (only!) to inform userspace that
* an associated station sent a 4addr frame but that wasn't expected.
@@ -8815,7 +8816,8 @@ bool cfg80211_rx_spurious_frame(struct n
@@ -8880,7 +8881,8 @@ bool cfg80211_rx_spurious_frame(struct n
* for a reason other than not having a subscription.)
*/
bool cfg80211_rx_unexpected_4addr_frame(struct net_device *dev,
@@ -37,7 +37,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
* cfg80211_probe_status - notify userspace about probe status
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -2207,9 +2207,16 @@ static int ieee80211_change_station(stru
@@ -2216,9 +2216,16 @@ static int ieee80211_change_station(stru
vlansdata = IEEE80211_DEV_TO_SUB_IF(params->vlan);
if (params->vlan->ieee80211_ptr->use_4addr) {
@@ -54,7 +54,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
rcu_assign_pointer(vlansdata->u.vlan.sta, sta);
__ieee80211_check_fast_rx_iface(vlansdata);
@@ -2219,6 +2226,39 @@ static int ieee80211_change_station(stru
@@ -2228,6 +2235,39 @@ static int ieee80211_change_station(stru
else
drv_sta_set_4addr(local, sta->sdata, &sta->sta,
true);
@@ -96,7 +96,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1683,7 +1683,7 @@ EXPORT_SYMBOL(ieee80211_sta_uapsd_trigge
@@ -1695,7 +1695,7 @@ EXPORT_SYMBOL(ieee80211_sta_uapsd_trigge
void ieee80211_rx_nss_notify_4addr(struct net_device *dev, u8 *sta_addr)
{
@@ -105,7 +105,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
}
EXPORT_SYMBOL(ieee80211_rx_nss_notify_4addr);
@@ -1858,7 +1858,8 @@ ieee80211_rx_h_sta_process(struct ieee80
@@ -1870,7 +1870,8 @@ ieee80211_rx_h_sta_process(struct ieee80
if (!test_and_set_sta_flag(sta, WLAN_STA_4ADDR_EVENT))
cfg80211_rx_unexpected_4addr_frame(
rx->sdata->dev, sta->sta.addr,
@@ -115,7 +115,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
return RX_DROP_M_UNEXPECTED_4ADDR_FRAME;
}
/*
@@ -3245,7 +3246,8 @@ ieee80211_rx_h_data(struct ieee80211_rx_
@@ -3257,7 +3258,8 @@ ieee80211_rx_h_data(struct ieee80211_rx_
if (rx->sta &&
!test_and_set_sta_flag(rx->sta, WLAN_STA_4ADDR_EVENT))
cfg80211_rx_unexpected_4addr_frame(
@@ -127,7 +127,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -18945,7 +18945,8 @@ void cfg80211_conn_failed(struct net_dev
@@ -18996,7 +18996,8 @@ void cfg80211_conn_failed(struct net_dev
EXPORT_SYMBOL(cfg80211_conn_failed);
static bool __nl80211_unexpected_frame(struct net_device *dev, u8 cmd,
@@ -137,7 +137,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
{
struct wireless_dev *wdev = dev->ieee80211_ptr;
struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
@@ -18971,6 +18972,9 @@ static bool __nl80211_unexpected_frame(s
@@ -19022,6 +19023,9 @@ static bool __nl80211_unexpected_frame(s
nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, addr))
goto nla_put_failure;
@@ -147,7 +147,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
genlmsg_end(msg, hdr);
genlmsg_unicast(wiphy_net(&rdev->wiphy), msg, nlportid);
return true;
@@ -18994,14 +18998,15 @@ bool cfg80211_rx_spurious_frame(struct n
@@ -19045,14 +19049,15 @@ bool cfg80211_rx_spurious_frame(struct n
return false;
}
ret = __nl80211_unexpected_frame(dev, NL80211_CMD_UNEXPECTED_FRAME,
@@ -165,7 +165,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
{
struct wireless_dev *wdev = dev->ieee80211_ptr;
bool ret;
@@ -19016,7 +19021,7 @@ bool cfg80211_rx_unexpected_4addr_frame(
@@ -19067,7 +19072,7 @@ bool cfg80211_rx_unexpected_4addr_frame(
}
ret = __nl80211_unexpected_frame(dev,
NL80211_CMD_UNEXPECTED_4ADDR_FRAME,
@@ -176,7 +176,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
}
--- a/net/mac80211/chan.c
+++ b/net/mac80211/chan.c
@@ -1036,6 +1036,8 @@ __ieee80211_link_copy_chanctx_to_vlans(s
@@ -1050,6 +1050,8 @@ __ieee80211_link_copy_chanctx_to_vlans(s
list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) {
struct ieee80211_bss_conf *vlan_conf;
@@ -185,7 +185,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
vlan_conf = wiphy_dereference(local->hw.wiphy,
vlan->vif.link_conf[link_id]);
if (WARN_ON(!vlan_conf))
@@ -1277,6 +1279,8 @@ ieee80211_link_update_chanreq(struct iee
@@ -1296,6 +1298,8 @@ ieee80211_link_update_chanreq(struct iee
list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) {
struct ieee80211_bss_conf *vlan_conf;

View File

@@ -20,7 +20,7 @@ Signed-off-by: Monika Korada <quic_koramoni@quicinc.com>
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -1363,7 +1363,8 @@ int ieee80211_do_open(struct wireless_de
@@ -1373,7 +1373,8 @@ int ieee80211_do_open(struct wireless_de
case NL80211_IFTYPE_AP_VLAN:
if (sdata->bss->active) {
ieee80211_link_vlan_copy_chanctx(&sdata->deflink);
@@ -30,7 +30,7 @@ Signed-off-by: Monika Korada <quic_koramoni@quicinc.com>
if (ieee80211_hw_check(&local->hw, SUPPORTS_NSS_OFFLOAD)) {
ieee80211_set_sdata_offload_flags(sdata);
@@ -1374,7 +1375,8 @@ int ieee80211_do_open(struct wireless_de
@@ -1384,7 +1385,8 @@ int ieee80211_do_open(struct wireless_de
ieee80211_set_vif_encap_ops(sdata);
} else {
@@ -40,7 +40,7 @@ Signed-off-by: Monika Korada <quic_koramoni@quicinc.com>
}
break;
case NL80211_IFTYPE_MONITOR:
@@ -1405,7 +1407,8 @@ int ieee80211_do_open(struct wireless_de
@@ -1416,7 +1418,8 @@ int ieee80211_do_open(struct wireless_de
ieee80211_recalc_offload(local);
ieee80211_recalc_idle(local);
@@ -50,7 +50,7 @@ Signed-off-by: Monika Korada <quic_koramoni@quicinc.com>
break;
default:
if (coming_up) {
@@ -1449,7 +1452,8 @@ int ieee80211_do_open(struct wireless_de
@@ -1460,7 +1463,8 @@ int ieee80211_do_open(struct wireless_de
case NL80211_IFTYPE_AP:
case NL80211_IFTYPE_MESH_POINT:
case NL80211_IFTYPE_OCB: