From 01277800ab4902cdfd716d8110c4cc5001dec51a Mon Sep 17 00:00:00 2001 From: Sean Khan Date: Fri, 25 Oct 2024 02:58:55 -0400 Subject: [PATCH] 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 ath11k_nss: Refresh patches against rebase 53eab61 Author: Felix Fietkau AuthorDate: Mon Nov 18 11:21:02 2024 +0100 Commit: Felix Fietkau 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 Signed-off-by: Sean Khan ath11k_nss: Fix patches for backports 6.12.6 Signed-off-by: Sean Khan ath11k_nss: Refresh patches for backports 6.12.6 Signed-off-by: Sean Khan --- .../068-ath11k-add-rx-histogram-stats.patch | 6 +-- ...69-ath11k-add-HE-stats-in-peer-stats.patch | 17 +++---- ...dma-counter-increamenting-improperly.patch | 2 +- ...ul-ofdma-ru-allocation-in-peer-stats.patch | 2 +- ...-adding-support-for-mgmt-frame-stats.patch | 9 ++-- ...-ath11k_nss-add-nss-driver-interface.patch | 4 +- .../199-003-ath11k-add-nss-support.patch | 16 +++--- ...207-ath11k-Enable-256_512MB-profiles.patch | 4 +- ...-support-on-NSS-offload-for-STA-mode.patch | 4 +- ...pport-for-WDS-offload-in-NSS-offload.patch | 8 +-- ...-dynamic-VLAN-support-in-NSS-offload.patch | 8 +-- ...ow-fast-rx-by-bypassing-stats-update.patch | 2 +- .../nss/ath11k/244-ath11k-dp-tx-perf.patch | 2 +- .../300-ath11k-nss-mesh-offload-support.patch | 4 +- ...30-ath11k-sync-wds_ast_entry-updates.patch | 2 +- ...ing-rx-stats-with-monitor-vif-enable.patch | 10 ++-- ...Fix-ppdu_id-from-firmware-PPDU-stats.patch | 2 +- ...Add-retry-mechanism-for-update_rx_qu.patch | 2 +- ...oid-memset-of-ppdu-info-for-next-skb.patch | 2 +- ...999-336-0001-ath11k-idr-optimization.patch | 2 +- .../999-336-0002-ath11k-Use-idr_replace.patch | 6 +-- .../999-900-bss-transition-handling.patch | 18 +++---- ...9-903-ath11k-use-ath11k_sta_to_arsta.patch | 2 +- ...-when-using-encapsulation-offloading.patch | 2 +- .../199-001-mac80211-add-nss-support.patch | 40 +++++++-------- ...t-callback-when-hwencap-enable-in-st.patch | 2 +- ...03-mac80211-ath11k-fw-dynamic-muedca.patch | 22 ++++----- ...-ath11k-Add-support-for-dynamic-vlan.patch | 4 +- ...07-mac80211-add-nss-redirect-support.patch | 18 +++---- ...N-iftype-support-on-NSS-offload-case.patch | 43 ++++++++-------- ...-dynamic-VLAN-support-on-NSS-offload.patch | 10 ++-- .../nss/subsys/245-compilation_fix.patch | 10 ++-- .../300-ath11k-nss-mesh-offload-support.patch | 38 +++++++------- ...TCL_DATA_CMD_INFO2_TID_OVERWRITE-con.patch | 6 +-- ...-0005-mac80211-simple-tx-for-AP-mode.patch | 4 +- .../336-mac80211-Mesh-Fast-rx-support.patch | 14 +++--- ...mac80211-fix-unconditional-sta-usage.patch | 4 +- ...rning-with-monitor-interface-restart.patch | 2 +- ...unused-RX_FLAGS-from-mac80211_rx_fla.patch | 49 +------------------ ...ncapsulation-of-EAPOL-frames-if-OFFL.patch | 24 ++++----- ...fix-RCU-stall-in-mesh-fast-xmit-path.patch | 2 +- ...se-HW-checksum-offload-only-for-ethm.patch | 12 ++--- ...1-Add-mac-hw-flag-to-avoid-queue-skb.patch | 18 +++---- .../829-mac80211-fix-mesh-ping-issue.patch | 8 +-- ...R-for-association-failure-issue-with.patch | 2 +- ...75-wifi-mac80211-Changes-for-WDS-MLD.patch | 26 +++++----- ...x-NULL-pointer-access-Klocwork-issue.patch | 8 +-- 47 files changed, 227 insertions(+), 275 deletions(-) diff --git a/package/kernel/mac80211/patches/nss/ath11k/068-ath11k-add-rx-histogram-stats.patch b/package/kernel/mac80211/patches/nss/ath11k/068-ath11k-add-rx-histogram-stats.patch index 3b21ce04e7..23ca491103 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/068-ath11k-add-rx-histogram-stats.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/068-ath11k-add-rx-histogram-stats.patch @@ -29,7 +29,7 @@ Signed-off-by: Manikanta Pubbisetty /* 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 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 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]; diff --git a/package/kernel/mac80211/patches/nss/ath11k/069-ath11k-add-HE-stats-in-peer-stats.patch b/package/kernel/mac80211/patches/nss/ath11k/069-ath11k-add-HE-stats-in-peer-stats.patch index d177349951..c80cfeada1 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/069-ath11k-add-HE-stats-in-peer-stats.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/069-ath11k-add-HE-stats-in-peer-stats.patch @@ -23,7 +23,7 @@ Signed-off-by: Miles Hu #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 }; 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 }; 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 #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 +#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 + 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 #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 { diff --git a/package/kernel/mac80211/patches/nss/ath11k/087-ath11k-fix-ul-ofdma-counter-increamenting-improperly.patch b/package/kernel/mac80211/patches/nss/ath11k/087-ath11k-fix-ul-ofdma-counter-increamenting-improperly.patch index 2a98923fa4..9b3cabc1b1 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/087-ath11k-fix-ul-ofdma-counter-increamenting-improperly.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/087-ath11k-fix-ul-ofdma-counter-increamenting-improperly.patch @@ -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; } diff --git a/package/kernel/mac80211/patches/nss/ath11k/108-ath11k-enable-ul-ofdma-ru-allocation-in-peer-stats.patch b/package/kernel/mac80211/patches/nss/ath11k/108-ath11k-enable-ul-ofdma-ru-allocation-in-peer-stats.patch index ce57ea9aed..71186b257d 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/108-ath11k-enable-ul-ofdma-ru-allocation-in-peer-stats.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/108-ath11k-enable-ul-ofdma-ru-allocation-in-peer-stats.patch @@ -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)) { diff --git a/package/kernel/mac80211/patches/nss/ath11k/142-ath11k-adding-support-for-mgmt-frame-stats.patch b/package/kernel/mac80211/patches/nss/ath11k/142-ath11k-adding-support-for-mgmt-frame-stats.patch index 7d33113a09..3a692a8e67 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/142-ath11k-adding-support-for-mgmt-frame-stats.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/142-ath11k-adding-support-for-mgmt-frame-stats.patch @@ -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 diff --git a/package/kernel/mac80211/patches/nss/ath11k/199-002-ath11k_nss-add-nss-driver-interface.patch b/package/kernel/mac80211/patches/nss/ath11k/199-002-ath11k_nss-add-nss-driver-interface.patch index 4bb181536a..c12f14ea37 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/199-002-ath11k_nss-add-nss-driver-interface.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/199-002-ath11k_nss-add-nss-driver-interface.patch @@ -3017,7 +3017,7 @@ Signed-off-by: Sriram R /* 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 }; 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]; diff --git a/package/kernel/mac80211/patches/nss/ath11k/199-003-ath11k-add-nss-support.patch b/package/kernel/mac80211/patches/nss/ath11k/199-003-ath11k-add-nss-support.patch index 63148a4a92..170bdd2bd9 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/199-003-ath11k-add-nss-support.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/199-003-ath11k-add-nss-support.patch @@ -164,17 +164,17 @@ Signed-off-by: Sriram R #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 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 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 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); diff --git a/package/kernel/mac80211/patches/nss/ath11k/207-ath11k-Enable-256_512MB-profiles.patch b/package/kernel/mac80211/patches/nss/ath11k/207-ath11k-Enable-256_512MB-profiles.patch index 37ef93a557..d472d5bfc5 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/207-ath11k-Enable-256_512MB-profiles.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/207-ath11k-Enable-256_512MB-profiles.patch @@ -152,7 +152,7 @@ Signed-off-by: Ramya Gnanasekar #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 /* 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; diff --git a/package/kernel/mac80211/patches/nss/ath11k/211-002-ath11k-add-WDS-offload-support-on-NSS-offload-for-STA-mode.patch b/package/kernel/mac80211/patches/nss/ath11k/211-002-ath11k-add-WDS-offload-support-on-NSS-offload-for-STA-mode.patch index 70d217b8c7..17b8a1f90e 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/211-002-ath11k-add-WDS-offload-support-on-NSS-offload-for-STA-mode.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/211-002-ath11k-add-WDS-offload-support-on-NSS-offload-for-STA-mode.patch @@ -26,7 +26,7 @@ Signed-off-by: Sathishkumar Muruganandam --- 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 #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 diff --git a/package/kernel/mac80211/patches/nss/ath11k/235-003-ath11k-add-AP_VLAN-vif-support-for-WDS-offload-in-NSS-offload.patch b/package/kernel/mac80211/patches/nss/ath11k/235-003-ath11k-add-AP_VLAN-vif-support-for-WDS-offload-in-NSS-offload.patch index 0be8370d4e..6c59378625 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/235-003-ath11k-add-AP_VLAN-vif-support-for-WDS-offload-in-NSS-offload.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/235-003-ath11k-add-AP_VLAN-vif-support-for-WDS-offload-in-NSS-offload.patch @@ -33,14 +33,14 @@ Signed-off-by: Sathishkumar Muruganandam --- 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 diff --git a/package/kernel/mac80211/patches/nss/ath11k/236-003-ath11k-add-dynamic-VLAN-support-in-NSS-offload.patch b/package/kernel/mac80211/patches/nss/ath11k/236-003-ath11k-add-dynamic-VLAN-support-in-NSS-offload.patch index 360ff22127..77dc84703a 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/236-003-ath11k-add-dynamic-VLAN-support-in-NSS-offload.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/236-003-ath11k-add-dynamic-VLAN-support-in-NSS-offload.patch @@ -69,7 +69,7 @@ Signed-off-by: Sathishkumar Muruganandam 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 + /* 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 diff --git a/package/kernel/mac80211/patches/nss/ath11k/237-006-ath11k-Allow-fast-rx-by-bypassing-stats-update.patch b/package/kernel/mac80211/patches/nss/ath11k/237-006-ath11k-Allow-fast-rx-by-bypassing-stats-update.patch index b73f78772b..c5cae459ba 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/237-006-ath11k-Allow-fast-rx-by-bypassing-stats-update.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/237-006-ath11k-Allow-fast-rx-by-bypassing-stats-update.patch @@ -29,7 +29,7 @@ Signed-off-by: P Praneesh }; 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; diff --git a/package/kernel/mac80211/patches/nss/ath11k/244-ath11k-dp-tx-perf.patch b/package/kernel/mac80211/patches/nss/ath11k/244-ath11k-dp-tx-perf.patch index 11c07f2f5d..467b4ff10a 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/244-ath11k-dp-tx-perf.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/244-ath11k-dp-tx-perf.patch @@ -34,7 +34,7 @@ Signed-off-by: P Praneesh }; 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]; diff --git a/package/kernel/mac80211/patches/nss/ath11k/300-ath11k-nss-mesh-offload-support.patch b/package/kernel/mac80211/patches/nss/ath11k/300-ath11k-nss-mesh-offload-support.patch index 32ad0a5b54..fa780ba373 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/300-ath11k-nss-mesh-offload-support.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/300-ath11k-nss-mesh-offload-support.patch @@ -1014,8 +1014,8 @@ Signed-off-by: Vasanthakumar Thiagarajan +#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) diff --git a/package/kernel/mac80211/patches/nss/ath11k/330-ath11k-sync-wds_ast_entry-updates.patch b/package/kernel/mac80211/patches/nss/ath11k/330-ath11k-sync-wds_ast_entry-updates.patch index 504d3b959b..bda4c3f3ef 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/330-ath11k-sync-wds_ast_entry-updates.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/330-ath11k-sync-wds_ast_entry-updates.patch @@ -83,7 +83,7 @@ Signed-off-by: Rameshkumar Sundaram #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; diff --git a/package/kernel/mac80211/patches/nss/ath11k/336-ath11k-Fix-updating-rx-stats-with-monitor-vif-enable.patch b/package/kernel/mac80211/patches/nss/ath11k/336-ath11k-Fix-updating-rx-stats-with-monitor-vif-enable.patch index 730d748742..4dd6f03ccc 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/336-ath11k-Fix-updating-rx-stats-with-monitor-vif-enable.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/336-ath11k-Fix-updating-rx-stats-with-monitor-vif-enable.patch @@ -16,8 +16,8 @@ Signed-off-by: Anilkumar Kolli --- 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 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 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 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) { diff --git a/package/kernel/mac80211/patches/nss/ath11k/371-ath11k-Fix-ppdu_id-from-firmware-PPDU-stats.patch b/package/kernel/mac80211/patches/nss/ath11k/371-ath11k-Fix-ppdu_id-from-firmware-PPDU-stats.patch index f7abe8b21b..cd7bc81302 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/371-ath11k-Fix-ppdu_id-from-firmware-PPDU-stats.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/371-ath11k-Fix-ppdu_id-from-firmware-PPDU-stats.patch @@ -14,7 +14,7 @@ Signed-off-by: Ramya Gnanasekar --- 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 diff --git a/package/kernel/mac80211/patches/nss/ath11k/373-ath11k-Add-retry-mechanism-for-update_rx_qu.patch b/package/kernel/mac80211/patches/nss/ath11k/373-ath11k-Add-retry-mechanism-for-update_rx_qu.patch index dcc20f8809..92e1558810 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/373-ath11k-Add-retry-mechanism-for-update_rx_qu.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/373-ath11k-Add-retry-mechanism-for-update_rx_qu.patch @@ -41,7 +41,7 @@ Signed-off-by: Tamizh Chelvam Raja --- 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]; diff --git a/package/kernel/mac80211/patches/nss/ath11k/457-wifi-ath11k-Avoid-memset-of-ppdu-info-for-next-skb.patch b/package/kernel/mac80211/patches/nss/ath11k/457-wifi-ath11k-Avoid-memset-of-ppdu-info-for-next-skb.patch index 6f02ed6b50..e45ecec1d9 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/457-wifi-ath11k-Avoid-memset-of-ppdu-info-for-next-skb.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/457-wifi-ath11k-Avoid-memset-of-ppdu-info-for-next-skb.patch @@ -67,7 +67,7 @@ Signed-off-by: Yuvasree Sivasankaran 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); diff --git a/package/kernel/mac80211/patches/nss/ath11k/999-336-0001-ath11k-idr-optimization.patch b/package/kernel/mac80211/patches/nss/ath11k/999-336-0001-ath11k-idr-optimization.patch index abcc7a197e..470e161f2d 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/999-336-0001-ath11k-idr-optimization.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/999-336-0001-ath11k-idr-optimization.patch @@ -111,7 +111,7 @@ Signed-off-by: Tamizh Chelvam 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); diff --git a/package/kernel/mac80211/patches/nss/ath11k/999-336-0002-ath11k-Use-idr_replace.patch b/package/kernel/mac80211/patches/nss/ath11k/999-336-0002-ath11k-Use-idr_replace.patch index aa0f1f80af..8cf3d735a8 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/999-336-0002-ath11k-Use-idr_replace.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/999-336-0002-ath11k-Use-idr_replace.patch @@ -18,7 +18,7 @@ Signed-off-by: Tamizh Chelvam --- 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 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 } } -@@ -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, diff --git a/package/kernel/mac80211/patches/nss/ath11k/999-900-bss-transition-handling.patch b/package/kernel/mac80211/patches/nss/ath11k/999-900-bss-transition-handling.patch index 1e70cacdc7..f0c3556624 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/999-900-bss-transition-handling.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/999-900-bss-transition-handling.patch @@ -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); diff --git a/package/kernel/mac80211/patches/nss/ath11k/999-903-ath11k-use-ath11k_sta_to_arsta.patch b/package/kernel/mac80211/patches/nss/ath11k/999-903-ath11k-use-ath11k_sta_to_arsta.patch index ae3b44597e..29e7737b39 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/999-903-ath11k-use-ath11k_sta_to_arsta.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/999-903-ath11k-use-ath11k_sta_to_arsta.patch @@ -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) { diff --git a/package/kernel/mac80211/patches/nss/subsys/146-mac80211-enable-TKIP-when-using-encapsulation-offloading.patch b/package/kernel/mac80211/patches/nss/subsys/146-mac80211-enable-TKIP-when-using-encapsulation-offloading.patch index 65b9450430..7d896ac654 100644 --- a/package/kernel/mac80211/patches/nss/subsys/146-mac80211-enable-TKIP-when-using-encapsulation-offloading.patch +++ b/package/kernel/mac80211/patches/nss/subsys/146-mac80211-enable-TKIP-when-using-encapsulation-offloading.patch @@ -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); diff --git a/package/kernel/mac80211/patches/nss/subsys/199-001-mac80211-add-nss-support.patch b/package/kernel/mac80211/patches/nss/subsys/199-001-mac80211-add-nss-support.patch index a1a39556d3..c0b3700d50 100644 --- a/package/kernel/mac80211/patches/nss/subsys/199-001-mac80211-add-nss-support.patch +++ b/package/kernel/mac80211/patches/nss/subsys/199-001-mac80211-add-nss-support.patch @@ -64,7 +64,7 @@ Signed-off-by: Sriram R }; /** -@@ -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 * - 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 * 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 * 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 * @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 /* 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 * @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 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 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 * 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 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 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 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 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 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 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 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 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 { --- 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 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; diff --git a/package/kernel/mac80211/patches/nss/subsys/199-mac80211-fix-xmit-callback-when-hwencap-enable-in-st.patch b/package/kernel/mac80211/patches/nss/subsys/199-mac80211-fix-xmit-callback-when-hwencap-enable-in-st.patch index 7ae59db8cf..713ed77c75 100644 --- a/package/kernel/mac80211/patches/nss/subsys/199-mac80211-fix-xmit-callback-when-hwencap-enable-in-st.patch +++ b/package/kernel/mac80211/patches/nss/subsys/199-mac80211-fix-xmit-callback-when-hwencap-enable-in-st.patch @@ -18,7 +18,7 @@ Signed-off-by: P Praneesh --- 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(); diff --git a/package/kernel/mac80211/patches/nss/subsys/203-mac80211-ath11k-fw-dynamic-muedca.patch b/package/kernel/mac80211/patches/nss/subsys/203-mac80211-ath11k-fw-dynamic-muedca.patch index c5e8e27048..d4b0e79614 100644 --- a/package/kernel/mac80211/patches/nss/subsys/203-mac80211-ath11k-fw-dynamic-muedca.patch +++ b/package/kernel/mac80211/patches/nss/subsys/203-mac80211-ath11k-fw-dynamic-muedca.patch @@ -31,7 +31,7 @@ Signed-off-by: Muna Sinada --- 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 #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 /* 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 __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 [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 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) ); diff --git a/package/kernel/mac80211/patches/nss/subsys/207-ath11k-Add-support-for-dynamic-vlan.patch b/package/kernel/mac80211/patches/nss/subsys/207-ath11k-Add-support-for-dynamic-vlan.patch index 03d6e9db15..18470318f1 100644 --- a/package/kernel/mac80211/patches/nss/subsys/207-ath11k-Add-support-for-dynamic-vlan.patch +++ b/package/kernel/mac80211/patches/nss/subsys/207-ath11k-Add-support-for-dynamic-vlan.patch @@ -29,7 +29,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran /* 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 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; diff --git a/package/kernel/mac80211/patches/nss/subsys/207-mac80211-add-nss-redirect-support.patch b/package/kernel/mac80211/patches/nss/subsys/207-mac80211-add-nss-redirect-support.patch index 63b2f9e954..8cd9908c58 100644 --- a/package/kernel/mac80211/patches/nss/subsys/207-mac80211-add-nss-redirect-support.patch +++ b/package/kernel/mac80211/patches/nss/subsys/207-mac80211-add-nss-redirect-support.patch @@ -40,7 +40,7 @@ Signed-off-by: Sowmiya Sree Elavalagan 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 /** * 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 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 /* * 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 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 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 --- 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 /** * 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 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; diff --git a/package/kernel/mac80211/patches/nss/subsys/235-001-mac80211-add-AP_VLAN-iftype-support-on-NSS-offload-case.patch b/package/kernel/mac80211/patches/nss/subsys/235-001-mac80211-add-AP_VLAN-iftype-support-on-NSS-offload-case.patch index 92f6c120a6..1c3d4efd71 100644 --- a/package/kernel/mac80211/patches/nss/subsys/235-001-mac80211-add-AP_VLAN-iftype-support-on-NSS-offload-case.patch +++ b/package/kernel/mac80211/patches/nss/subsys/235-001-mac80211-add-AP_VLAN-iftype-support-on-NSS-offload-case.patch @@ -21,7 +21,7 @@ Signed-off-by: Sathishkumar Muruganandam --- 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 * 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 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 - (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 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 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 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 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 { --- 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 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 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 */ diff --git a/package/kernel/mac80211/patches/nss/subsys/236-001-mac80211-add-dynamic-VLAN-support-on-NSS-offload.patch b/package/kernel/mac80211/patches/nss/subsys/236-001-mac80211-add-dynamic-VLAN-support-on-NSS-offload.patch index 3795dcf9ac..4e16510932 100644 --- a/package/kernel/mac80211/patches/nss/subsys/236-001-mac80211-add-dynamic-VLAN-support-on-NSS-offload.patch +++ b/package/kernel/mac80211/patches/nss/subsys/236-001-mac80211-add-dynamic-VLAN-support-on-NSS-offload.patch @@ -24,7 +24,7 @@ Signed-off-by: Sathishkumar Muruganandam --- 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 * @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 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 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 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; diff --git a/package/kernel/mac80211/patches/nss/subsys/245-compilation_fix.patch b/package/kernel/mac80211/patches/nss/subsys/245-compilation_fix.patch index 43bef1ef8c..d8f7350d94 100644 --- a/package/kernel/mac80211/patches/nss/subsys/245-compilation_fix.patch +++ b/package/kernel/mac80211/patches/nss/subsys/245-compilation_fix.patch @@ -30,7 +30,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran 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 } 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 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 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 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(); diff --git a/package/kernel/mac80211/patches/nss/subsys/300-ath11k-nss-mesh-offload-support.patch b/package/kernel/mac80211/patches/nss/subsys/300-ath11k-nss-mesh-offload-support.patch index d114019315..e587b93b85 100644 --- a/package/kernel/mac80211/patches/nss/subsys/300-ath11k-nss-mesh-offload-support.patch +++ b/package/kernel/mac80211/patches/nss/subsys/300-ath11k-nss-mesh-offload-support.patch @@ -96,7 +96,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran }; /** -@@ -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 */ 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 }; -@@ -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 /* 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 * @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 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 #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 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 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 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 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 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 --- 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 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 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 /* 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 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 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 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; } diff --git a/package/kernel/mac80211/patches/nss/subsys/335-0003-ath11k-skip-HAL_TCL_DATA_CMD_INFO2_TID_OVERWRITE-con.patch b/package/kernel/mac80211/patches/nss/subsys/335-0003-ath11k-skip-HAL_TCL_DATA_CMD_INFO2_TID_OVERWRITE-con.patch index 1adf62f35f..49ab2a064e 100644 --- a/package/kernel/mac80211/patches/nss/subsys/335-0003-ath11k-skip-HAL_TCL_DATA_CMD_INFO2_TID_OVERWRITE-con.patch +++ b/package/kernel/mac80211/patches/nss/subsys/335-0003-ath11k-skip-HAL_TCL_DATA_CMD_INFO2_TID_OVERWRITE-con.patch @@ -16,7 +16,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran --- 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 * @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 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), diff --git a/package/kernel/mac80211/patches/nss/subsys/335-0005-mac80211-simple-tx-for-AP-mode.patch b/package/kernel/mac80211/patches/nss/subsys/335-0005-mac80211-simple-tx-for-AP-mode.patch index f69088b254..603b8cd67c 100644 --- a/package/kernel/mac80211/patches/nss/subsys/335-0005-mac80211-simple-tx-for-AP-mode.patch +++ b/package/kernel/mac80211/patches/nss/subsys/335-0005-mac80211-simple-tx-for-AP-mode.patch @@ -14,7 +14,7 @@ Signed-off-by: Aloka Dixit --- 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 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; diff --git a/package/kernel/mac80211/patches/nss/subsys/336-mac80211-Mesh-Fast-rx-support.patch b/package/kernel/mac80211/patches/nss/subsys/336-mac80211-Mesh-Fast-rx-support.patch index ba3b721101..8654378133 100644 --- a/package/kernel/mac80211/patches/nss/subsys/336-mac80211-Mesh-Fast-rx-support.patch +++ b/package/kernel/mac80211/patches/nss/subsys/336-mac80211-Mesh-Fast-rx-support.patch @@ -20,7 +20,7 @@ Signed-off-by: Sriram R --- 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 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 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 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 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 /* 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 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; } diff --git a/package/kernel/mac80211/patches/nss/subsys/342-mac80211-fix-unconditional-sta-usage.patch b/package/kernel/mac80211/patches/nss/subsys/342-mac80211-fix-unconditional-sta-usage.patch index e87a824ab0..bdaf7f1884 100644 --- a/package/kernel/mac80211/patches/nss/subsys/342-mac80211-fix-unconditional-sta-usage.patch +++ b/package/kernel/mac80211/patches/nss/subsys/342-mac80211-fix-unconditional-sta-usage.patch @@ -33,7 +33,7 @@ Signed-off-by: Tamizh Chelvam --- 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 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); diff --git a/package/kernel/mac80211/patches/nss/subsys/353-mac80211-fix-dynamic-vlan-warning-with-monitor-interface-restart.patch b/package/kernel/mac80211/patches/nss/subsys/353-mac80211-fix-dynamic-vlan-warning-with-monitor-interface-restart.patch index 15905c1090..8579a4c10d 100644 --- a/package/kernel/mac80211/patches/nss/subsys/353-mac80211-fix-dynamic-vlan-warning-with-monitor-interface-restart.patch +++ b/package/kernel/mac80211/patches/nss/subsys/353-mac80211-fix-dynamic-vlan-warning-with-monitor-interface-restart.patch @@ -21,7 +21,7 @@ Signed-off-by: Nagarajan Maran --- 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 && diff --git a/package/kernel/mac80211/patches/nss/subsys/640-006-01-mac80211-Remove-unused-RX_FLAGS-from-mac80211_rx_fla.patch b/package/kernel/mac80211/patches/nss/subsys/640-006-01-mac80211-Remove-unused-RX_FLAGS-from-mac80211_rx_fla.patch index c1b285366d..1a22f5a779 100644 --- a/package/kernel/mac80211/patches/nss/subsys/640-006-01-mac80211-Remove-unused-RX_FLAGS-from-mac80211_rx_fla.patch +++ b/package/kernel/mac80211/patches/nss/subsys/640-006-01-mac80211-Remove-unused-RX_FLAGS-from-mac80211_rx_fla.patch @@ -1,29 +1,6 @@ -From 11d0cce62afc157468e1d97ea80a2510091ea2c2 Mon Sep 17 00:00:00 2001 -From: P Praneesh -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 ---- - 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 - 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 }; /** ---- 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; - } - diff --git a/package/kernel/mac80211/patches/nss/subsys/657-mac80211-Avoid-encapsulation-of-EAPOL-frames-if-OFFL.patch b/package/kernel/mac80211/patches/nss/subsys/657-mac80211-Avoid-encapsulation-of-EAPOL-frames-if-OFFL.patch index 3a034ac1c0..080634bcf7 100644 --- a/package/kernel/mac80211/patches/nss/subsys/657-mac80211-Avoid-encapsulation-of-EAPOL-frames-if-OFFL.patch +++ b/package/kernel/mac80211/patches/nss/subsys/657-mac80211-Avoid-encapsulation-of-EAPOL-frames-if-OFFL.patch @@ -44,7 +44,7 @@ Signed-off-by: Aaradhana Sahu /* 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 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 } 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 { 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 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 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 { 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 /* * 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 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 #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 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 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(); diff --git a/package/kernel/mac80211/patches/nss/subsys/686-mac80211-fix-RCU-stall-in-mesh-fast-xmit-path.patch b/package/kernel/mac80211/patches/nss/subsys/686-mac80211-fix-RCU-stall-in-mesh-fast-xmit-path.patch index 03bdf15082..fbae3e1876 100644 --- a/package/kernel/mac80211/patches/nss/subsys/686-mac80211-fix-RCU-stall-in-mesh-fast-xmit-path.patch +++ b/package/kernel/mac80211/patches/nss/subsys/686-mac80211-fix-RCU-stall-in-mesh-fast-xmit-path.patch @@ -72,7 +72,7 @@ Signed-off-by: P Praneesh --- 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; diff --git a/package/kernel/mac80211/patches/nss/subsys/780-mac80211-Advertise-HW-checksum-offload-only-for-ethm.patch b/package/kernel/mac80211/patches/nss/subsys/780-mac80211-Advertise-HW-checksum-offload-only-for-ethm.patch index 9243aff80d..d2a558ad2f 100644 --- a/package/kernel/mac80211/patches/nss/subsys/780-mac80211-Advertise-HW-checksum-offload-only-for-ethm.patch +++ b/package/kernel/mac80211/patches/nss/subsys/780-mac80211-Advertise-HW-checksum-offload-only-for-ethm.patch @@ -31,7 +31,7 @@ Signed-off-by: Tamizh Chelvam Raja 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 { 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 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(ð, 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 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 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 --- 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; diff --git a/package/kernel/mac80211/patches/nss/subsys/785-wifi-mac80211-Add-mac-hw-flag-to-avoid-queue-skb.patch b/package/kernel/mac80211/patches/nss/subsys/785-wifi-mac80211-Add-mac-hw-flag-to-avoid-queue-skb.patch index 338a9d2dd1..cc58c55a57 100644 --- a/package/kernel/mac80211/patches/nss/subsys/785-wifi-mac80211-Add-mac-hw-flag-to-avoid-queue-skb.patch +++ b/package/kernel/mac80211/patches/nss/subsys/785-wifi-mac80211-Add-mac-hw-flag-to-avoid-queue-skb.patch @@ -23,7 +23,7 @@ Signed-off-by: Yuvasree Sivasankaran --- 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 * @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 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 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 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 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 * 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 --- 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 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); diff --git a/package/kernel/mac80211/patches/nss/subsys/829-mac80211-fix-mesh-ping-issue.patch b/package/kernel/mac80211/patches/nss/subsys/829-mac80211-fix-mesh-ping-issue.patch index 0a805bd2e6..6ae63db080 100644 --- a/package/kernel/mac80211/patches/nss/subsys/829-mac80211-fix-mesh-ping-issue.patch +++ b/package/kernel/mac80211/patches/nss/subsys/829-mac80211-fix-mesh-ping-issue.patch @@ -10,7 +10,7 @@ Signed-off-by: Aaradhana Sahu --- 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 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 /* 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 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; } diff --git a/package/kernel/mac80211/patches/nss/subsys/917-QSDK-mac80211-WAR-for-association-failure-issue-with.patch b/package/kernel/mac80211/patches/nss/subsys/917-QSDK-mac80211-WAR-for-association-failure-issue-with.patch index c0e43a73c3..126a660339 100644 --- a/package/kernel/mac80211/patches/nss/subsys/917-QSDK-mac80211-WAR-for-association-failure-issue-with.patch +++ b/package/kernel/mac80211/patches/nss/subsys/917-QSDK-mac80211-WAR-for-association-failure-issue-with.patch @@ -27,7 +27,7 @@ Signed-off-by: Balamurugan Ramar --- 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 = diff --git a/package/kernel/mac80211/patches/nss/subsys/999-775-wifi-mac80211-Changes-for-WDS-MLD.patch b/package/kernel/mac80211/patches/nss/subsys/999-775-wifi-mac80211-Changes-for-WDS-MLD.patch index 3246b1f930..a70ba787d6 100644 --- a/package/kernel/mac80211/patches/nss/subsys/999-775-wifi-mac80211-Changes-for-WDS-MLD.patch +++ b/package/kernel/mac80211/patches/nss/subsys/999-775-wifi-mac80211-Changes-for-WDS-MLD.patch @@ -17,7 +17,7 @@ Signed-off-by: Ramasamy Kaliappan --- 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 * * 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 * 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 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 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 } 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 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 --- 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 { 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 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 { 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 } --- 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 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; diff --git a/package/kernel/mac80211/patches/nss/subsys/999-918-mac80211-fix-NULL-pointer-access-Klocwork-issue.patch b/package/kernel/mac80211/patches/nss/subsys/999-918-mac80211-fix-NULL-pointer-access-Klocwork-issue.patch index 633b70fb14..5444178b10 100644 --- a/package/kernel/mac80211/patches/nss/subsys/999-918-mac80211-fix-NULL-pointer-access-Klocwork-issue.patch +++ b/package/kernel/mac80211/patches/nss/subsys/999-918-mac80211-fix-NULL-pointer-access-Klocwork-issue.patch @@ -20,7 +20,7 @@ Signed-off-by: Monika Korada --- 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 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 } 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 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: