ath11k_nss: Refresh patches for backports 6.12.6

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

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

ath11k_nss: Refresh patches against rebase 53eab61

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

    mac80211: backport some upstream fixes

    Fix various issues, including potential crashes

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

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

ath11k_nss: Fix patches for backports 6.12.6

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

ath11k_nss: Refresh patches for backports 6.12.6

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

View File

@@ -29,7 +29,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
/* SMBIOS type containing Board Data File Name Extension */ /* SMBIOS type containing Board Data File Name Extension */
#define ATH11K_SMBIOS_BDF_EXT_TYPE 0xF8 #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; struct ath11k_vif *arvif;
}; };
@@ -47,7 +47,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
struct ath11k_rx_peer_stats { struct ath11k_rx_peer_stats {
u64 num_msdu; u64 num_msdu;
u64 num_mpdu_fcs_ok; 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 non_ampdu_msdu_count;
u64 stbc_count; u64 stbc_count;
u64 beamformed_count; u64 beamformed_count;
@@ -58,7 +58,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
u64 coding_count[HAL_RX_SU_MU_CODING_MAX]; u64 coding_count[HAL_RX_SU_MU_CODING_MAX];
u64 tid_count[IEEE80211_NUM_TIDS + 1]; u64 tid_count[IEEE80211_NUM_TIDS + 1];
u64 pream_cnt[HAL_RX_PREAMBLE_MAX]; 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 rx_duration;
u64 dcm_count; u64 dcm_count;
u64 ru_alloc_cnt[HAL_RX_RU_ALLOC_TYPE_MAX]; u64 ru_alloc_cnt[HAL_RX_RU_ALLOC_TYPE_MAX];

View File

@@ -23,7 +23,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
#include "fw.h" #include "fw.h"
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK) #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 bw[ATH11K_COUNTER_TYPE_MAX][ATH11K_BW_NUM];
u64 nss[ATH11K_COUNTER_TYPE_MAX][ATH11K_NSS_NUM]; u64 nss[ATH11K_COUNTER_TYPE_MAX][ATH11K_NSS_NUM];
u64 gi[ATH11K_COUNTER_TYPE_MAX][ATH11K_GI_NUM]; u64 gi[ATH11K_COUNTER_TYPE_MAX][ATH11K_GI_NUM];
@@ -32,7 +32,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
}; };
struct ath11k_htt_tx_stats { 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 tx_duration;
u64 ba_fails; u64 ba_fails;
u64 ack_fails; u64 ack_fails;
@@ -42,7 +42,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
}; };
struct ath11k_per_ppdu_tx_stats { 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 succ_bytes;
u32 retry_bytes; u32 retry_bytes;
u32 failed_bytes; u32 failed_bytes;
@@ -396,7 +396,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
#define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_LTF_SIZE_M GENMASK(1, 0) #define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_LTF_SIZE_M GENMASK(1, 0)
#define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_STBC_M BIT(2) #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; u32 success_bytes;
} __packed; } __packed;
@@ -404,7 +404,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
+#define HTT_PPDU_STATS_USR_CMN_HDR_SW_PEERID GENMASK(31, 16) +#define HTT_PPDU_STATS_USR_CMN_HDR_SW_PEERID GENMASK(31, 16)
+#define HTT_PPDU_STATS_USR_CMN_CTL_FRM_CTRL GENMASK(15, 0) +#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 tid_num;
+ u8 vdev_id; + u8 vdev_id;
+ u16 sw_peer_id; + u16 sw_peer_id;
@@ -415,11 +415,6 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
+ u32 host_opaque_cookie; + u32 host_opaque_cookie;
+} __packed; +} __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 { struct htt_ppdu_user_stats {
u16 peer_id; u16 peer_id;
+ u16 delay_ba; + u16 delay_ba;
@@ -436,7 +431,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
#define HTT_PPDU_DESC_MAX_DEPTH 16 #define HTT_PPDU_DESC_MAX_DEPTH 16
struct htt_ppdu_stats { 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 { struct htt_ppdu_stats_info {

View File

@@ -5,7 +5,7 @@
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c --- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c +++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -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; goto next_skb;
} }

View File

@@ -247,7 +247,7 @@
int ath11k_dp_rx_process_mon_status(struct ath11k_base *ab, int mac_id, int ath11k_dp_rx_process_mon_status(struct ath11k_base *ab, int mac_id,
struct napi_struct *napi, int budget) 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) && if ((ppdu_info->fc_valid) &&
(ppdu_info->ast_index != HAL_AST_IDX_INVALID)) { (ppdu_info->ast_index != HAL_AST_IDX_INVALID)) {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -34,7 +34,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
}; };
struct ath11k_skb_cb { 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 { struct ath11k_soc_dp_tx_err_stats {
/* TCL Ring Descriptor unavailable */ /* TCL Ring Descriptor unavailable */
u32 desc_na[DP_TCL_NUM_RING_MAX]; u32 desc_na[DP_TCL_NUM_RING_MAX];

View File

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

View File

@@ -83,7 +83,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
#include "fw.h" #include "fw.h"
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK) #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 max_ast_index;
u32 num_ast_entries; u32 num_ast_entries;

View File

@@ -16,8 +16,8 @@ Signed-off-by: Anilkumar Kolli <quic_akolli@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c --- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c +++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -6018,12 +6018,23 @@ int ath11k_dp_rx_process_mon_status(stru @@ -6021,12 +6021,23 @@ int ath11k_dp_rx_process_mon_status(stru
pmon->mon_ppdu_status = DP_PPDU_STATUS_START; }
} }
- if (ppdu_info->peer_id == HAL_INVALID_PEERID || - if (ppdu_info->peer_id == HAL_INVALID_PEERID ||
@@ -43,7 +43,7 @@ Signed-off-by: Anilkumar Kolli <quic_akolli@quicinc.com>
rcu_read_lock(); rcu_read_lock();
spin_lock_bh(&ab->base_lock); spin_lock_bh(&ab->base_lock);
peer = ath11k_peer_find_by_id(ab, ppdu_info->peer_id); 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); spin_lock_bh(&pmon->mon_lock);
@@ -57,7 +57,7 @@ Signed-off-by: Anilkumar Kolli <quic_akolli@quicinc.com>
sw_mon_entries = &pmon->sw_mon_entries; sw_mon_entries = &pmon->sw_mon_entries;
rx_mon_stats = &pmon->rx_mon_stats; 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++; rx_mon_stats->dest_ppdu_done++;
@@ -65,7 +65,7 @@ Signed-off-by: Anilkumar Kolli <quic_akolli@quicinc.com>
pmon->buf_state = DP_MON_STATUS_LAG; pmon->buf_state = DP_MON_STATUS_LAG;
pmon->mon_status_paddr = sw_mon_entries->mon_status_paddr; pmon->mon_status_paddr = sw_mon_entries->mon_status_paddr;
pmon->hold_mon_dst_ring = true; 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, int ath11k_dp_rx_process_mon_rings(struct ath11k_base *ab, int mac_id,
struct napi_struct *napi, int budget) struct napi_struct *napi, int budget)
{ {

View File

@@ -14,7 +14,7 @@ Signed-off-by: Ramya Gnanasekar <quic_rgnanase@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/dp.h --- a/drivers/net/wireless/ath/ath11k/dp.h
+++ b/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_ACK_BA_INFO_TID_NUM GENMASK(31, 25)
#define HTT_PPDU_STATS_NON_QOS_TID 16 #define HTT_PPDU_STATS_NON_QOS_TID 16

View File

@@ -41,7 +41,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
--- a/drivers/net/wireless/ath/ath11k/core.h --- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/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 rxdma_error[HAL_REO_ENTR_RING_RXDMA_ECODE_MAX];
u32 reo_error[HAL_REO_DEST_RING_ERROR_CODE_MAX]; u32 reo_error[HAL_REO_DEST_RING_ERROR_CODE_MAX];
u32 hal_reo_error[DP_REO_DST_RING_MAX]; u32 hal_reo_error[DP_REO_DST_RING_MAX];

View File

@@ -67,7 +67,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
ppdu_info->peer_id = HAL_INVALID_PEERID; ppdu_info->peer_id = HAL_INVALID_PEERID;
hal_status = ath11k_hal_rx_parse_mon_status(ab, ppdu_info, skb); hal_status = ath11k_hal_rx_parse_mon_status(ab, ppdu_info, skb);
@@ -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 || if ((ppdu_info->peer_id == HAL_INVALID_PEERID ||
hal_status != HAL_RX_MON_STATUS_PPDU_DONE)) { hal_status != HAL_RX_MON_STATUS_PPDU_DONE)) {
dev_kfree_skb_any(skb); dev_kfree_skb_any(skb);

View File

@@ -111,7 +111,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
rxcb = ATH11K_SKB_RXCB(skb); rxcb = ATH11K_SKB_RXCB(skb);
dma_unmap_single(ab->dev, rxcb->paddr, dma_unmap_single(ab->dev, rxcb->paddr,
@@ -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]); msdu_list.sw_cookie[i]);
spin_lock_bh(&rx_ring->idr_lock); spin_lock_bh(&rx_ring->idr_lock);

View File

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

View File

@@ -31,7 +31,7 @@
INIT_WORK(&ab->restart_work, ath11k_core_restart); INIT_WORK(&ab->restart_work, ath11k_core_restart);
--- a/drivers/net/wireless/ath/ath11k/core.h --- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/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]; iftype[NUM_NL80211_BANDS][NUM_NL80211_IFTYPES];
} mac; } mac;
@@ -54,7 +54,7 @@
u32 min_tx_power; u32 min_tx_power;
u32 max_tx_power; u32 max_tx_power;
u32 txpower_limit_2g; u32 txpower_limit_2g;
@@ -821,6 +834,9 @@ struct ath11k { @@ -826,6 +839,9 @@ struct ath11k {
struct work_struct wmi_mgmt_tx_work; struct work_struct wmi_mgmt_tx_work;
struct sk_buff_head wmi_mgmt_tx_queue; struct sk_buff_head wmi_mgmt_tx_queue;
@@ -64,7 +64,7 @@
struct ath11k_wow wow; struct ath11k_wow wow;
struct completion target_suspend; struct completion target_suspend;
bool target_suspend_ack; 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]; struct ath11k_hal_reg_capabilities_ext hal_reg_cap[MAX_RADIOS];
unsigned long long free_vdev_map; unsigned long long free_vdev_map;
@@ -84,7 +84,7 @@
u8 mac_addr[ETH_ALEN]; u8 mac_addr[ETH_ALEN];
int userpd_id; int userpd_id;
int irq_num[ATH11K_IRQ_NUM_MAX]; 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"; return "unknown";
} }
@@ -515,10 +515,10 @@
if (peer && peer->sta) if (peer && peer->sta)
pubsta = peer->sta; pubsta = peer->sta;
spin_unlock_bh(&ar->ab->base_lock); spin_unlock_bh(&ar->ab->base_lock);
@@ -3504,7 +3520,7 @@ try_again: @@ -3462,7 +3478,7 @@ try_again:
if (unlikely(push_reason != if (unlikely(push_reason ==
HAL_REO_DEST_RING_PUSH_REASON_ROUTING_INSTRUCTION)) { HAL_REO_DEST_RING_PUSH_REASON_ERR_DETECTED)) {
dev_kfree_skb_any(msdu); 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[dp->reo_dst_ring[ring_id].ring_id]++;
+ ab->soc_stats.hal_reo_error[ring_id]++; + ab->soc_stats.hal_reo_error[ring_id]++;
continue; continue;
@@ -569,7 +569,7 @@
if (test_bit(ATH11K_FLAG_MONITOR_STARTED, &ar->monitor_flags) && if (test_bit(ATH11K_FLAG_MONITOR_STARTED, &ar->monitor_flags) &&
pmon->mon_ppdu_status == DP_PPDU_STATUS_START && 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(); rcu_read_lock();
spin_lock_bh(&ab->base_lock); spin_lock_bh(&ab->base_lock);

View File

@@ -48,7 +48,7 @@
rx_stats = arsta->rx_stats; rx_stats = arsta->rx_stats;
if (ar->ab->nss.enabled) 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) && if ((ppdu_info->fc_valid) &&
(ppdu_info->ast_index != HAL_AST_IDX_INVALID)) { (ppdu_info->ast_index != HAL_AST_IDX_INVALID)) {
if (ppdu_info->reception_type == HAL_RX_RECEPTION_TYPE_SU) { if (ppdu_info->reception_type == HAL_RX_RECEPTION_TYPE_SU) {

View File

@@ -1,6 +1,6 @@
--- a/net/mac80211/tx.c --- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c +++ b/net/mac80211/tx.c
@@ -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) if (!key)
key = rcu_dereference(sdata->default_unicast_key); key = rcu_dereference(sdata->default_unicast_key);

View File

@@ -64,7 +64,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
}; };
/** /**
@@ -1485,7 +1501,7 @@ ieee80211_tx_info_clear_status(struct ie @@ -1483,7 +1499,7 @@ ieee80211_tx_info_clear_status(struct ie
* @RX_FLAG_AMPDU_EOF_BIT_KNOWN: The EOF value is known * @RX_FLAG_AMPDU_EOF_BIT_KNOWN: The EOF value is known
* @RX_FLAG_RADIOTAP_HE: HE radiotap data is present * @RX_FLAG_RADIOTAP_HE: HE radiotap data is present
* (&struct ieee80211_radiotap_he, mac80211 will fill in * (&struct ieee80211_radiotap_he, mac80211 will fill in
@@ -73,7 +73,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* - DATA3_DATA_MCS * - DATA3_DATA_MCS
* - DATA3_DATA_DCM * - DATA3_DATA_DCM
* - DATA3_CODING * - DATA3_CODING
@@ -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 * - DATA5_DATA_BW_RU_ALLOC
* - DATA6_NSTS * - DATA6_NSTS
* - DATA3_STBC * - DATA3_STBC
@@ -82,7 +82,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* from the RX info data, so leave those zeroed when building this data) * from the RX info data, so leave those zeroed when building this data)
* @RX_FLAG_RADIOTAP_HE_MU: HE MU radiotap data is present * @RX_FLAG_RADIOTAP_HE_MU: HE MU radiotap data is present
* (&struct ieee80211_radiotap_he_mu) * (&struct ieee80211_radiotap_he_mu)
@@ -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)) lockdep_vif_wiphy_mutex_held(vif))
/** /**
@@ -99,7 +99,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* enum ieee80211_key_flags - key flags * enum ieee80211_key_flags - key flags
* *
* These flags are used for communication about keys between the driver * These flags are used for communication about keys between the driver
@@ -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 * implements MLO, so operation can continue on other links when one
* link is switching. * link is switching.
* *
@@ -108,7 +108,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays * @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
*/ */
enum ieee80211_hw_flags { 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,
IEEE80211_HW_DISALLOW_PUNCTURING_5GHZ, IEEE80211_HW_DISALLOW_PUNCTURING_5GHZ,
IEEE80211_HW_HANDLES_QUIET_CSA, IEEE80211_HW_HANDLES_QUIET_CSA,
@@ -116,7 +116,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
/* keep last, obviously */ /* keep last, obviously */
NUM_IEEE80211_HW_FLAGS 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. * non-MLO connections.
* The callback can sleep. * The callback can sleep.
* *
@@ -127,7 +127,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* @prepare_multicast: Prepare for multicast filter configuration. * @prepare_multicast: Prepare for multicast filter configuration.
* This callback is optional, and its return value is passed * This callback is optional, and its return value is passed
* to configure_filter(). This callback must be atomic. * to configure_filter(). This callback must be atomic.
@@ -4462,7 +4495,9 @@ struct ieee80211_ops { @@ -4480,7 +4513,9 @@ struct ieee80211_ops {
struct ieee80211_vif *vif, struct ieee80211_vif *vif,
struct ieee80211_bss_conf *info, struct ieee80211_bss_conf *info,
u64 changed); u64 changed);
@@ -138,7 +138,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
int (*start_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, int (*start_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
struct ieee80211_bss_conf *link_conf); struct ieee80211_bss_conf *link_conf);
void (*stop_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, void (*stop_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
@@ -4772,7 +4807,7 @@ struct ieee80211_ops { @@ -4790,7 +4825,7 @@ struct ieee80211_ops {
int (*reset_tid_config)(struct ieee80211_hw *hw, int (*reset_tid_config)(struct ieee80211_hw *hw,
struct ieee80211_vif *vif, struct ieee80211_vif *vif,
struct ieee80211_sta *sta, u8 tids); struct ieee80211_sta *sta, u8 tids);
@@ -149,7 +149,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
struct ieee80211_sta *sta, bool enabled); struct ieee80211_sta *sta, bool enabled);
--- a/net/mac80211/debugfs.c --- a/net/mac80211/debugfs.c
+++ b/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),
FLAG(DISALLOW_PUNCTURING_5GHZ), FLAG(DISALLOW_PUNCTURING_5GHZ),
FLAG(HANDLES_QUIET_CSA), FLAG(HANDLES_QUIET_CSA),
@@ -184,7 +184,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
* the suspend->resume cycle. Since we can't check each caller * the suspend->resume cycle. Since we can't check each caller
--- a/net/mac80211/main.c --- a/net/mac80211/main.c
+++ b/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); drv_link_info_changed(local, sdata, link->conf, link->link_id, changed);
} }
@@ -202,7 +202,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
u64 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata) u64 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata)
{ {
sdata->vif.bss_conf.use_cts_prot = false; 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; NL80211_FEATURE_FULL_AP_CLIENT_STATE;
wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_FILS_STA); wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_FILS_STA);
wiphy_ext_feature_set(wiphy, wiphy_ext_feature_set(wiphy,
@@ -215,7 +215,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
NL80211_EXT_FEATURE_SCAN_FREQ_KHZ); NL80211_EXT_FEATURE_SCAN_FREQ_KHZ);
wiphy_ext_feature_set(wiphy, wiphy_ext_feature_set(wiphy,
NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE); 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; return -EINVAL;
} }
@@ -272,7 +272,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
ac = skb_get_queue_mapping(skb); ac = skb_get_queue_mapping(skb);
tx->sta->deflink.tx_stats.bytes[ac] += skb->len; 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 && if (unlikely(!multicast &&
((skb->sk && ((skb->sk &&
skb_shinfo(skb)->tx_flags & SKBTX_WIFI_STATUS) || skb_shinfo(skb)->tx_flags & SKBTX_WIFI_STATUS) ||
@@ -283,7 +283,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
info_id = ieee80211_store_ack_skb(local, skb, &info_flags, info_id = ieee80211_store_ack_skb(local, skb, &info_flags,
cookie); 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 && if (unlikely(skb->sk &&
@@ -293,7 +293,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
info->status_data = ieee80211_store_ack_skb(local, skb, info->status_data = ieee80211_store_ack_skb(local, skb,
&info->flags, NULL); &info->flags, NULL);
if (info->status_data) 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); dev_sw_netstats_tx_add(dev, skbs, len);
@@ -320,7 +320,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
gfp); gfp);
--- a/net/mac80211/cfg.c --- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c
@@ -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_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
struct ieee80211_link_data *link; struct ieee80211_link_data *link;
struct ieee80211_supported_band *sband; struct ieee80211_supported_band *sband;
@@ -329,7 +329,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
link = ieee80211_link_or_deflink(sdata, params->link_id, true); link = ieee80211_link_or_deflink(sdata, params->link_id, true);
if (IS_ERR(link)) if (IS_ERR(link))
@@ -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; sdata->flags |= IEEE80211_SDATA_DONT_BRIDGE_PACKETS;
else else
sdata->flags &= ~IEEE80211_SDATA_DONT_BRIDGE_PACKETS; sdata->flags &= ~IEEE80211_SDATA_DONT_BRIDGE_PACKETS;
@@ -338,7 +338,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
ieee80211_check_fast_rx_iface(sdata); 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); ieee80211_link_info_change_notify(sdata, link, changed);
@@ -375,7 +375,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
{ {
--- a/net/mac80211/ieee80211_i.h --- a/net/mac80211/ieee80211_i.h
+++ b/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, void ieee80211_link_info_change_notify(struct ieee80211_sub_if_data *sdata,
struct ieee80211_link_data *link, struct ieee80211_link_data *link,
u64 changed); u64 changed);
@@ -427,7 +427,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
TP_PROTO(struct ieee80211_local *local, TP_PROTO(struct ieee80211_local *local,
--- a/net/mac80211/iface.c --- a/net/mac80211/iface.c
+++ b/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) local->hw.wiphy->frag_threshold != (u32)-1)
flags &= ~IEEE80211_OFFLOAD_ENCAP_ENABLED; flags &= ~IEEE80211_OFFLOAD_ENCAP_ENABLED;

View File

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

View File

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

View File

@@ -29,7 +29,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
/* misc utils */ /* misc utils */
static __le16 ieee80211_duration(struct ieee80211_tx_data *tx, 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 sta_info *sta;
struct sk_buff *next; struct sk_buff *next;
int len = skb->len; int len = skb->len;
@@ -38,7 +38,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
if (unlikely(!ieee80211_sdata_running(sdata) || skb->len < ETH_HLEN)) { if (unlikely(!ieee80211_sdata_running(sdata) || skb->len < ETH_HLEN)) {
kfree_skb(skb); kfree_skb(skb);
@@ -4313,6 +4318,19 @@ void __ieee80211_subif_start_xmit(struct @@ -4315,6 +4320,19 @@ void __ieee80211_subif_start_xmit(struct
if (IS_ERR(sta)) if (IS_ERR(sta))
sta = NULL; sta = NULL;

View File

@@ -40,7 +40,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
extern const struct cfg80211_ops mac80211_config_ops; 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; struct dentry *default_beacon_key;
} debugfs; } debugfs;
#endif #endif
@@ -65,7 +65,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
/** /**
* DOC: Interface list locking * 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); ieee80211_stop_mbssid(sdata);
} }
@@ -79,7 +79,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
wiphy_lock(sdata->local->hw.wiphy); wiphy_lock(sdata->local->hw.wiphy);
wiphy_work_cancel(sdata->local->hw.wiphy, &sdata->activate_links_work); 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); kfree(sdata);
} }
@@ -114,7 +114,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
/* /*
* NOTE: Be very careful when changing this function, it must NOT return * 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 * 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); ieee80211_recalc_ps(local);
@@ -138,7 +138,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
return 0; return 0;
--- a/net/mac80211/rx.c --- a/net/mac80211/rx.c
+++ b/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; return true;
} }
@@ -199,7 +199,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
static void ieee80211_deliver_skb_to_local_stack(struct sk_buff *skb, static void ieee80211_deliver_skb_to_local_stack(struct sk_buff *skb,
struct ieee80211_rx_data *rx) 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_equal(ehdr->h_dest, sdata->vif.addr)))
ether_addr_copy(ehdr->h_dest, sdata->vif.addr); ether_addr_copy(ehdr->h_dest, sdata->vif.addr);
@@ -217,7 +217,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
--- a/net/mac80211/tx.c --- a/net/mac80211/tx.c
+++ b/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); kfree_skb(skb);
} }
@@ -253,7 +253,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
/** /**
* ieee80211_subif_start_xmit - netif start_xmit function for 802.3 vifs * ieee80211_subif_start_xmit - netif start_xmit function for 802.3 vifs
* @skb: packet to be sent * @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); struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
const struct ethhdr *eth = (void *)skb->data; const struct ethhdr *eth = (void *)skb->data;
@@ -264,7 +264,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
if (likely(!is_multicast_ether_addr(eth->h_dest))) if (likely(!is_multicast_ether_addr(eth->h_dest)))
goto normal; goto normal;
@@ -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 ieee80211_key *key;
struct sta_info *sta; struct sta_info *sta;

View File

@@ -21,7 +21,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/include/net/mac80211.h --- a/include/net/mac80211.h
+++ b/include/net/mac80211.h +++ b/include/net/mac80211.h
@@ -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); void ieee80211_sta_uapsd_trigger(struct ieee80211_sta *sta, u8 tid);
@@ -41,7 +41,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
* This is enough for the radiotap header. * This is enough for the radiotap header.
--- a/net/mac80211/cfg.c --- a/net/mac80211/cfg.c
+++ b/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); rcu_assign_pointer(vlansdata->u.vlan.sta, sta);
__ieee80211_check_fast_rx_iface(vlansdata); __ieee80211_check_fast_rx_iface(vlansdata);
@@ -58,7 +58,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
--- a/net/mac80211/driver-ops.c --- a/net/mac80211/driver-ops.c
+++ b/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(); might_sleep();
lockdep_assert_wiphy(local->hw.wiphy); lockdep_assert_wiphy(local->hw.wiphy);
@@ -66,6 +66,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
- (sdata->vif.type == NL80211_IFTYPE_MONITOR && - (sdata->vif.type == NL80211_IFTYPE_MONITOR &&
+ if (WARN_ON(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, 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))))
+ !(sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE))) + !(sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE)))
return -EINVAL; return -EINVAL;
@@ -83,7 +84,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
break; break;
case NL80211_IFTYPE_MONITOR: case NL80211_IFTYPE_MONITOR:
if (local->monitors == 0) 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) { switch (iftype) {
/* P2P GO and client are mapped to AP/STATION types */ /* P2P GO and client are mapped to AP/STATION types */
case NL80211_IFTYPE_AP: case NL80211_IFTYPE_AP:
@@ -91,7 +92,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
case NL80211_IFTYPE_STATION: case NL80211_IFTYPE_STATION:
return true; return true;
default: 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; struct ieee80211_sub_if_data *bss = sdata;
bool enabled; bool enabled;
@@ -101,8 +102,8 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (!sdata->bss) if (!sdata->bss)
return; 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) { switch (sdata->vif.type) {
case NL80211_IFTYPE_AP_VLAN: case NL80211_IFTYPE_AP_VLAN:
- /* no need to tell driver, but set carrier and chanctx */ - /* no need to tell driver, but set carrier and chanctx */
@@ -122,7 +123,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
netif_carrier_off(dev); netif_carrier_off(dev);
--- a/net/mac80211/rx.c --- a/net/mac80211/rx.c
+++ b/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); EXPORT_SYMBOL(ieee80211_sta_uapsd_trigger);
@@ -137,7 +138,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
{ {
--- a/net/mac80211/tx.c --- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c +++ b/net/mac80211/tx.c
@@ -4319,8 +4319,11 @@ void __ieee80211_subif_start_xmit(struct @@ -4321,8 +4321,11 @@ void __ieee80211_subif_start_xmit(struct
sta = NULL; sta = NULL;
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
@@ -151,7 +152,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
if (ap_sdata->vif.offload_flags & IEEE80211_OFFLOAD_ENCAP_ENABLED && if (ap_sdata->vif.offload_flags & IEEE80211_OFFLOAD_ENCAP_ENABLED &&
!is_multicast_ether_addr(skb->data)) { !is_multicast_ether_addr(skb->data)) {
if (sta) if (sta)
@@ -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]; info->hw_queue = sdata->vif.hw_queue[queue];
@@ -173,29 +174,29 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
conf = rcu_dereference_protected(link->conf->chanctx_conf, conf = rcu_dereference_protected(link->conf->chanctx_conf,
lockdep_is_held(&local->hw.wiphy->mtx)); lockdep_is_held(&local->hw.wiphy->mtx));
if (conf) { if (conf) {
@@ -1873,7 +1876,8 @@ int ieee80211_reconfig(struct ieee80211_ @@ -1876,7 +1879,8 @@ int ieee80211_reconfig(struct ieee80211_
} if (sdata->vif.type == NL80211_IFTYPE_MONITOR &&
!ieee80211_hw_check(&local->hw, NO_VIRTUAL_MONITOR))
list_for_each_entry(sdata, &local->interfaces, list) { continue;
- if (sdata->vif.type != NL80211_IFTYPE_AP_VLAN && - if (sdata->vif.type != NL80211_IFTYPE_AP_VLAN &&
+ if ((sdata->vif.type != NL80211_IFTYPE_AP_VLAN || + if ((sdata->vif.type != NL80211_IFTYPE_AP_VLAN ||
+ ieee80211_hw_check(&local->hw, SUPPORTS_NSS_OFFLOAD)) && + ieee80211_hw_check(&local->hw, SUPPORTS_NSS_OFFLOAD)) &&
sdata->vif.type != NL80211_IFTYPE_MONITOR &&
ieee80211_sdata_running(sdata)) { ieee80211_sdata_running(sdata)) {
res = drv_add_interface(local, sdata); res = drv_add_interface(local, sdata);
@@ -1888,7 +1892,8 @@ int ieee80211_reconfig(struct ieee80211_ if (WARN_ON(res))
if (res) { @@ -1893,7 +1897,8 @@ int ieee80211_reconfig(struct ieee80211_
list_for_each_entry_continue_reverse(sdata, &local->interfaces, if (sdata->vif.type == NL80211_IFTYPE_MONITOR &&
list) !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 &&
+ if ((sdata->vif.type != NL80211_IFTYPE_AP_VLAN || + if ((sdata->vif.type != NL80211_IFTYPE_AP_VLAN ||
+ ieee80211_hw_check(&local->hw, SUPPORTS_NSS_OFFLOAD)) && + ieee80211_hw_check(&local->hw, SUPPORTS_NSS_OFFLOAD)) &&
sdata->vif.type != NL80211_IFTYPE_MONITOR &&
ieee80211_sdata_running(sdata)) ieee80211_sdata_running(sdata))
drv_remove_interface(local, sdata); drv_remove_interface(local, sdata);
}
--- a/net/mac80211/mlme.c --- a/net/mac80211/mlme.c
+++ b/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 * 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 * doing so, so that it can create the STA VLAN on its side
*/ */

View File

@@ -24,7 +24,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
--- a/include/net/mac80211.h --- a/include/net/mac80211.h
+++ b/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 * @tx_pn: PN used for TX keys, may be used by the driver as well if it
* needs to do software PN assignment by itself (e.g. due to TSO) * needs to do software PN assignment by itself (e.g. due to TSO)
* @flags: key flags, see &enum ieee80211_key_flags. * @flags: key flags, see &enum ieee80211_key_flags.
@@ -33,7 +33,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
* @keyidx: the key index (0-3) * @keyidx: the key index (0-3)
* @keylen: key material length * @keylen: key material length
* @key: key material. For ALG_TKIP the key is encoded as a 256-bit (32 byte) * @key: key material. For ALG_TKIP the key is encoded as a 256-bit (32 byte)
@@ -2247,6 +2249,7 @@ struct ieee80211_key_conf { @@ -2246,6 +2248,7 @@ struct ieee80211_key_conf {
u8 hw_key_idx; u8 hw_key_idx;
s8 keyidx; s8 keyidx;
u16 flags; u16 flags;
@@ -43,7 +43,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
u8 key[]; u8 key[];
--- a/net/mac80211/cfg.c --- a/net/mac80211/cfg.c
+++ b/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; break;
case NL80211_IFTYPE_AP: case NL80211_IFTYPE_AP:
case NL80211_IFTYPE_AP_VLAN: case NL80211_IFTYPE_AP_VLAN:
@@ -53,7 +53,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
key->conf.flags |= IEEE80211_KEY_FLAG_RX_MGMT; key->conf.flags |= IEEE80211_KEY_FLAG_RX_MGMT;
--- a/net/mac80211/driver-ops.c --- a/net/mac80211/driver-ops.c
+++ b/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(); might_sleep();
lockdep_assert_wiphy(local->hw.wiphy); lockdep_assert_wiphy(local->hw.wiphy);
@@ -102,7 +102,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
key->conf.cipher = cipher; key->conf.cipher = cipher;
--- a/net/mac80211/tx.c --- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c +++ b/net/mac80211/tx.c
@@ -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_key *key, struct sk_buff *skb)
{ {
struct ieee80211_tx_info *info; struct ieee80211_tx_info *info;

View File

@@ -30,7 +30,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
struct ieee80211_local *local; struct ieee80211_local *local;
--- a/net/mac80211/tx.c --- a/net/mac80211/tx.c
+++ b/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); ieee80211_aggr_check(sdata, sta, skb);
@@ -64,7 +64,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
} }
skb = ieee80211_tx_skb_fixup(skb, ieee80211_sdata_netdev_features(sdata)); 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 ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
struct ethhdr *ehdr = (struct ethhdr *)skb->data; struct ethhdr *ehdr = (struct ethhdr *)skb->data;
@@ -73,7 +73,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
struct sta_info *sta; struct sta_info *sta;
#ifdef CPTCFG_MAC80211_NSS_SUPPORT #ifdef CPTCFG_MAC80211_NSS_SUPPORT
@@ -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; goto out;
} }
@@ -90,7 +90,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
goto skip_offload; goto skip_offload;
key = rcu_dereference(sta->ptk[sta->ptk_idx]); key = rcu_dereference(sta->ptk[sta->ptk_idx]);
@@ -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; goto skip_offload;
sk_pacing_shift_update(skb->sk, sdata->local->hw.tx_sk_pacing_shift); sk_pacing_shift_update(skb->sk, sdata->local->hw.tx_sk_pacing_shift);
@@ -98,7 +98,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
ieee80211_8023_xmit(sdata, dev, sta, key, skb); ieee80211_8023_xmit(sdata, dev, sta, key, skb);
goto out; goto out;
@@ -6327,13 +6334,7 @@ int ieee80211_tx_control_port(struct wip @@ -6329,13 +6336,7 @@ int ieee80211_tx_control_port(struct wip
start_xmit: start_xmit:
local_bh_disable(); local_bh_disable();

View File

@@ -96,7 +96,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
}; };
/** /**
@@ -1860,6 +1878,7 @@ struct ieee80211_channel_switch { @@ -1856,6 +1874,7 @@ struct ieee80211_channel_switch {
* operation on this interface and request a channel context without * operation on this interface and request a channel context without
* the AP definition. Use this e.g. because the device is able to * 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. * handle OFDMA (downlink and trigger for uplink) on a per-AP basis.
@@ -104,7 +104,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
*/ */
enum ieee80211_vif_flags { enum ieee80211_vif_flags {
IEEE80211_VIF_BEACON_FILTER = BIT(0), 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_GET_NOA_UPDATE = BIT(3),
IEEE80211_VIF_EML_ACTIVE = BIT(4), IEEE80211_VIF_EML_ACTIVE = BIT(4),
IEEE80211_VIF_IGNORE_OFDMA_WIDER_BW = BIT(5), IEEE80211_VIF_IGNORE_OFDMA_WIDER_BW = BIT(5),
@@ -112,7 +112,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
}; };
@@ -2917,6 +2937,7 @@ enum ieee80211_hw_flags { @@ -2922,6 +2942,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_DISALLOW_PUNCTURING_5GHZ, IEEE80211_HW_DISALLOW_PUNCTURING_5GHZ,
IEEE80211_HW_HANDLES_QUIET_CSA, IEEE80211_HW_HANDLES_QUIET_CSA,
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD, IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
@@ -120,7 +120,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
/* keep last, obviously */ /* keep last, obviously */
NUM_IEEE80211_HW_FLAGS NUM_IEEE80211_HW_FLAGS
@@ -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. * @set_sar_specs: Update the SAR (TX power) settings.
* @sta_set_decap_offload: Called to notify the driver when a station is allowed * @sta_set_decap_offload: Called to notify the driver when a station is allowed
* to use rx decapsulation offload * to use rx decapsulation offload
@@ -129,7 +129,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
* @add_twt_setup: Update hw with TWT agreement parameters received from the peer. * @add_twt_setup: Update hw with TWT agreement parameters received from the peer.
* This callback allows the hw to check if requested parameters * This callback allows the hw to check if requested parameters
* are supported and if there is enough room for a new agreement. * are supported and if there is enough room for a new agreement.
@@ -4819,6 +4842,12 @@ struct ieee80211_ops { @@ -4837,6 +4860,12 @@ struct ieee80211_ops {
void (*sta_set_decap_offload)(struct ieee80211_hw *hw, void (*sta_set_decap_offload)(struct ieee80211_hw *hw,
struct ieee80211_vif *vif, struct ieee80211_vif *vif,
struct ieee80211_sta *sta, bool enabled); struct ieee80211_sta *sta, bool enabled);
@@ -142,7 +142,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
void (*add_twt_setup)(struct ieee80211_hw *hw, void (*add_twt_setup)(struct ieee80211_hw *hw,
struct ieee80211_sta *sta, struct ieee80211_sta *sta,
struct ieee80211_twt_setup *twt); struct ieee80211_twt_setup *twt);
@@ -7726,4 +7755,100 @@ int ieee80211_emulate_switch_vif_chanctx @@ -7760,4 +7789,100 @@ int ieee80211_emulate_switch_vif_chanctx
int n_vifs, int n_vifs,
enum ieee80211_chanctx_switch_mode mode); enum ieee80211_chanctx_switch_mode mode);
@@ -245,7 +245,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
#endif /* MAC80211_H */ #endif /* MAC80211_H */
--- a/net/mac80211/cfg.c --- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c
@@ -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 mesh_config *conf;
struct ieee80211_sub_if_data *sdata; struct ieee80211_sub_if_data *sdata;
struct ieee80211_if_mesh *ifmsh; struct ieee80211_if_mesh *ifmsh;
@@ -253,7 +253,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
sdata = IEEE80211_DEV_TO_SUB_IF(dev); sdata = IEEE80211_DEV_TO_SUB_IF(dev);
ifmsh = &sdata->u.mesh; ifmsh = &sdata->u.mesh;
@@ -2554,8 +2555,11 @@ static int ieee80211_update_mesh_config( @@ -2563,8 +2564,11 @@ static int ieee80211_update_mesh_config(
conf->dot11MeshMaxPeerLinks = nconf->dot11MeshMaxPeerLinks; conf->dot11MeshMaxPeerLinks = nconf->dot11MeshMaxPeerLinks;
if (_chg_mesh_attr(NL80211_MESHCONF_MAX_RETRIES, mask)) if (_chg_mesh_attr(NL80211_MESHCONF_MAX_RETRIES, mask))
conf->dot11MeshMaxRetries = nconf->dot11MeshMaxRetries; conf->dot11MeshMaxRetries = nconf->dot11MeshMaxRetries;
@@ -266,7 +266,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
if (_chg_mesh_attr(NL80211_MESHCONF_ELEMENT_TTL, mask)) if (_chg_mesh_attr(NL80211_MESHCONF_ELEMENT_TTL, mask))
conf->element_ttl = nconf->element_ttl; conf->element_ttl = nconf->element_ttl;
if (_chg_mesh_attr(NL80211_MESHCONF_AUTO_OPEN_PLINKS, mask)) { if (_chg_mesh_attr(NL80211_MESHCONF_AUTO_OPEN_PLINKS, mask)) {
@@ -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)) if (_chg_mesh_attr(NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES, mask))
conf->dot11MeshHWMPmaxPREQretries = conf->dot11MeshHWMPmaxPREQretries =
nconf->dot11MeshHWMPmaxPREQretries; nconf->dot11MeshHWMPmaxPREQretries;
@@ -280,7 +280,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
if (_chg_mesh_attr(NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT, mask)) if (_chg_mesh_attr(NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT, mask))
conf->min_discovery_timeout = nconf->min_discovery_timeout; conf->min_discovery_timeout = nconf->min_discovery_timeout;
if (_chg_mesh_attr(NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT, mask)) if (_chg_mesh_attr(NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT, mask))
@@ -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)) if (_chg_mesh_attr(NL80211_MESHCONF_HWMP_RANN_INTERVAL, mask))
conf->dot11MeshHWMPRannInterval = conf->dot11MeshHWMPRannInterval =
nconf->dot11MeshHWMPRannInterval; nconf->dot11MeshHWMPRannInterval;
@@ -294,7 +294,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
if (_chg_mesh_attr(NL80211_MESHCONF_RSSI_THRESHOLD, mask)) { if (_chg_mesh_attr(NL80211_MESHCONF_RSSI_THRESHOLD, mask)) {
/* our RSSI threshold implementation is supported only for /* our RSSI threshold implementation is supported only for
* devices that report signal in dBm. * devices that report signal in dBm.
@@ -2648,6 +2660,7 @@ static int ieee80211_update_mesh_config( @@ -2657,6 +2669,7 @@ static int ieee80211_update_mesh_config(
conf->dot11MeshConnectedToAuthServer = conf->dot11MeshConnectedToAuthServer =
nconf->dot11MeshConnectedToAuthServer; nconf->dot11MeshConnectedToAuthServer;
ieee80211_mbss_info_change_notify(sdata, BSS_CHANGED_BEACON); ieee80211_mbss_info_change_notify(sdata, BSS_CHANGED_BEACON);
@@ -330,7 +330,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
sdata, fmt, ##__VA_ARGS__) sdata, fmt, ##__VA_ARGS__)
--- a/net/mac80211/debugfs.c --- a/net/mac80211/debugfs.c
+++ b/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(DISALLOW_PUNCTURING_5GHZ),
FLAG(HANDLES_QUIET_CSA), FLAG(HANDLES_QUIET_CSA),
FLAG(SUPPORTS_NSS_OFFLOAD), FLAG(SUPPORTS_NSS_OFFLOAD),
@@ -340,7 +340,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
--- a/net/mac80211/driver-ops.c --- a/net/mac80211/driver-ops.c
+++ b/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; return 0;
} }
@@ -1160,7 +1160,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
void mesh_pathtbl_unregister(struct ieee80211_sub_if_data *sdata) void mesh_pathtbl_unregister(struct ieee80211_sub_if_data *sdata)
--- a/net/mac80211/tx.c --- a/net/mac80211/tx.c
+++ b/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; bool multicast;
u16 info_id = 0; u16 info_id = 0;
struct ieee80211_chanctx_conf *chanctx_conf = NULL; struct ieee80211_chanctx_conf *chanctx_conf = NULL;
@@ -1169,7 +1169,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
int ret; int ret;
u8 link_id = u32_get_bits(ctrl_flags, IEEE80211_TX_CTRL_MLO_LINK); 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; info_flags |= IEEE80211_TX_CTL_REQ_TX_STATUS;
#endif #endif
@@ -1179,7 +1179,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
/* convert Ethernet header to proper 802.11 header (based on /* convert Ethernet header to proper 802.11 header (based on
* operation mode) */ * operation mode) */
ethertype = (skb->data[12] << 8) | skb->data[13]; 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; break;
#ifdef CPTCFG_MAC80211_MESH #ifdef CPTCFG_MAC80211_MESH
case NL80211_IFTYPE_MESH_POINT: case NL80211_IFTYPE_MESH_POINT:
@@ -1193,7 +1193,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
if (!is_multicast_ether_addr(skb->data)) { if (!is_multicast_ether_addr(skb->data)) {
struct sta_info *next_hop; struct sta_info *next_hop;
bool mpp_lookup = true; 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); skb_reset_mac_header(skb);
@@ -1203,7 +1203,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
info = IEEE80211_SKB_CB(skb); info = IEEE80211_SKB_CB(skb);
memset(info, 0, sizeof(*info)); 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; struct sk_buff *next;
int len = skb->len; int len = skb->len;
struct ieee80211_key *key = NULL; struct ieee80211_key *key = NULL;
@@ -1211,7 +1211,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
struct ieee80211_sub_if_data *ap_sdata; struct ieee80211_sub_if_data *ap_sdata;
if (unlikely(!ieee80211_sdata_running(sdata) || skb->len < ETH_HLEN)) { if (unlikely(!ieee80211_sdata_running(sdata) || skb->len < ETH_HLEN)) {
@@ -4370,9 +4384,15 @@ void __ieee80211_subif_start_xmit(struct @@ -4372,9 +4386,15 @@ void __ieee80211_subif_start_xmit(struct
goto out; goto out;
} }

View File

@@ -16,7 +16,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
--- a/include/net/mac80211.h --- a/include/net/mac80211.h
+++ b/include/net/mac80211.h +++ b/include/net/mac80211.h
@@ -2877,6 +2877,8 @@ struct ieee80211_txq { @@ -2881,6 +2881,8 @@ struct ieee80211_txq {
* *
* @IEEE80211_HW_SUPPORTS_NSS_OFFLOAD: Hardware/driver supports NSS offload * @IEEE80211_HW_SUPPORTS_NSS_OFFLOAD: Hardware/driver supports NSS offload
* *
@@ -25,7 +25,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays * @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
*/ */
enum ieee80211_hw_flags { enum ieee80211_hw_flags {
@@ -2938,6 +2940,7 @@ enum ieee80211_hw_flags { @@ -2943,6 +2945,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_HANDLES_QUIET_CSA, IEEE80211_HW_HANDLES_QUIET_CSA,
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD, IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD, IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD,
@@ -35,7 +35,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
NUM_IEEE80211_HW_FLAGS NUM_IEEE80211_HW_FLAGS
--- a/net/mac80211/debugfs.c --- a/net/mac80211/debugfs.c
+++ b/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(HANDLES_QUIET_CSA),
FLAG(SUPPORTS_NSS_OFFLOAD), FLAG(SUPPORTS_NSS_OFFLOAD),
FLAG(SUPPORTS_MESH_NSS_OFFLOAD), FLAG(SUPPORTS_MESH_NSS_OFFLOAD),

View File

@@ -14,7 +14,7 @@ Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
--- a/net/mac80211/tx.c --- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c +++ b/net/mac80211/tx.c
@@ -4789,6 +4789,67 @@ out_free: @@ -4791,6 +4791,67 @@ out_free:
kfree_skb(skb); kfree_skb(skb);
} }
@@ -82,7 +82,7 @@ Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
netdev_tx_t ieee80211_subif_start_xmit_8023(struct sk_buff *skb, netdev_tx_t ieee80211_subif_start_xmit_8023(struct sk_buff *skb,
struct net_device *dev) struct net_device *dev)
{ {
@@ -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))) if (key && (!(key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE)))
goto skip_offload; goto skip_offload;

View File

@@ -20,7 +20,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
--- a/net/mac80211/cfg.c --- a/net/mac80211/cfg.c
+++ b/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 */ /* init at low value */
ewma_mesh_tx_rate_avg_add(&sta->mesh->tx_rate_avg, 10); ewma_mesh_tx_rate_avg_add(&sta->mesh->tx_rate_avg, 10);
@@ -29,7 +29,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
break; break;
case NL80211_PLINK_LISTEN: case NL80211_PLINK_LISTEN:
case NL80211_PLINK_BLOCKED: 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); ieee80211_mps_sta_status_update(sta);
changed |= ieee80211_mps_set_sta_local_pm(sta, changed |= ieee80211_mps_set_sta_local_pm(sta,
NL80211_MESH_POWER_UNKNOWN); NL80211_MESH_POWER_UNKNOWN);
@@ -94,7 +94,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
if (action) { if (action) {
--- a/net/mac80211/rx.c --- a/net/mac80211/rx.c
+++ b/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; break;
case NL80211_IFTYPE_MESH_POINT: case NL80211_IFTYPE_MESH_POINT:
@@ -112,7 +112,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
break; break;
default: default:
goto clear; 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); __release(check_fast_rx);
if (assign) if (assign)
@@ -121,7 +121,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
offload_flags = get_bss_sdata(sdata)->vif.offload_flags; offload_flags = get_bss_sdata(sdata)->vif.offload_flags;
offload = offload_flags & IEEE80211_OFFLOAD_DECAP_ENABLED; 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]; u8 sa[ETH_ALEN];
} addrs __aligned(2); } addrs __aligned(2);
struct ieee80211_sta_rx_stats *stats; struct ieee80211_sta_rx_stats *stats;
@@ -132,7 +132,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
/* for parallel-rx, we need to have DUP_VALIDATED, otherwise we write /* for parallel-rx, we need to have DUP_VALIDATED, otherwise we write
* to a common data structure; drivers can implement that per queue * 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; snap_offs += IEEE80211_CCMP_HDR_LEN;
} }
@@ -170,7 +170,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
if (!ieee80211_vif_is_mesh(&rx->sdata->vif) && if (!ieee80211_vif_is_mesh(&rx->sdata->vif) &&
!(status->rx_flags & IEEE80211_RX_AMSDU)) { !(status->rx_flags & IEEE80211_RX_AMSDU)) {
if (!pskb_may_pull(skb, snap_offs + sizeof(*payload))) 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; return true;
} }

View File

@@ -33,7 +33,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
--- a/net/mac80211/tx.c --- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c +++ b/net/mac80211/tx.c
@@ -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); ieee80211_aggr_check(sdata, sta, skb);
@@ -42,7 +42,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
tid = skb->priority & IEEE80211_QOS_CTL_TAG1D_MASK; tid = skb->priority & IEEE80211_QOS_CTL_TAG1D_MASK;
tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[tid]); tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[tid]);
if (tid_tx) { if (tid_tx) {
@@ -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); dev_sw_netstats_tx_add(dev, skbs, len);

View File

@@ -21,7 +21,7 @@ Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com>
--- a/net/mac80211/iface.c --- a/net/mac80211/iface.c
+++ b/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; flags |= IEEE80211_OFFLOAD_DECAP_ENABLED;
if (local->monitors && if (local->monitors &&

View File

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

View File

@@ -44,7 +44,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
/* misc utils */ /* misc utils */
static __le16 ieee80211_duration(struct ieee80211_tx_data *tx, 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)) { !is_multicast_ether_addr(skb->data)) {
if (sta) if (sta)
key = rcu_dereference(sta->ptk[sta->ptk_idx]); key = rcu_dereference(sta->ptk[sta->ptk_idx]);
@@ -53,7 +53,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
rcu_read_unlock(); rcu_read_unlock();
return; return;
} }
@@ -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 (info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) {
if (sta) if (sta)
key = rcu_dereference(sta->ptk[sta->ptk_idx]); key = rcu_dereference(sta->ptk[sta->ptk_idx]);
@@ -62,7 +62,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
} else { } else {
dev_sw_netstats_tx_add(dev, 1, skb->len); dev_sw_netstats_tx_add(dev, 1, skb->len);
ieee80211_xmit(sdata, sta, skb); ieee80211_xmit(sdata, sta, skb);
@@ -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, static void ieee80211_8023_xmit(struct ieee80211_sub_if_data *sdata,
struct net_device *dev, struct sta_info *sta, struct net_device *dev, struct sta_info *sta,
@@ -72,7 +72,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
{ {
struct ieee80211_tx_info *info; struct ieee80211_tx_info *info;
struct ethhdr *ehdr = (struct ethhdr *)skb->data; struct ethhdr *ehdr = (struct ethhdr *)skb->data;
@@ -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); info = IEEE80211_SKB_CB(skb);
memset(info, 0, sizeof(*info)); memset(info, 0, sizeof(*info));
@@ -80,7 +80,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
info->hw_queue = sdata->vif.hw_queue[queue]; info->hw_queue = sdata->vif.hw_queue[queue];
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN && if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
@@ -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)); memcpy(IEEE80211_SKB_CB(seg), info, sizeof(*info));
} }
@@ -96,7 +96,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
if (info->status_data) if (info->status_data)
info->status_data_idr = 1; 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, void ieee80211_8023_xmit_ap(struct ieee80211_sub_if_data *sdata,
struct net_device *dev, struct sta_info *sta, struct net_device *dev, struct sta_info *sta,
@@ -106,7 +106,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
{ {
struct ieee80211_tx_info *info; struct ieee80211_tx_info *info;
struct ieee80211_local *local = sdata->local; struct ieee80211_local *local = sdata->local;
@@ -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; unsigned long flags;
int q; int q;
u16 q_map; u16 q_map;
@@ -116,7 +116,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
/* /*
* If the skb is shared we need to obtain our own copy. * If the skb is shared we need to obtain our own copy.
@@ -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); info = IEEE80211_SKB_CB(skb);
memset(info, 0, sizeof(*info)); memset(info, 0, sizeof(*info));
@@ -133,7 +133,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
info->flags |= IEEE80211_TX_CTL_HW_80211_ENCAP; info->flags |= IEEE80211_TX_CTL_HW_80211_ENCAP;
info->control.vif = &sdata->vif; info->control.vif = &sdata->vif;
@@ -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); drv_tx(local, &control, skb);
} }
@@ -158,7 +158,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
#ifdef CPTCFG_MAC80211_NSS_SUPPORT #ifdef CPTCFG_MAC80211_NSS_SUPPORT
ieee80211_xmit_nss_fixup(skb, dev); ieee80211_xmit_nss_fixup(skb, dev);
@@ -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); kfree_skb(skb);
goto out; goto out;
} }
@@ -176,7 +176,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
goto skip_offload; goto skip_offload;
key = rcu_dereference(sta->ptk[sta->ptk_idx]); key = rcu_dereference(sta->ptk[sta->ptk_idx]);
@@ -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; goto skip_offload;
if (sdata->vif.type == NL80211_IFTYPE_AP) { if (sdata->vif.type == NL80211_IFTYPE_AP) {
@@ -192,7 +192,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
goto out; goto out;
skip_offload: skip_offload:
@@ -6420,7 +6440,10 @@ int ieee80211_tx_control_port(struct wip @@ -6422,7 +6442,10 @@ int ieee80211_tx_control_port(struct wip
start_xmit: start_xmit:
local_bh_disable(); local_bh_disable();

View File

@@ -72,7 +72,7 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
--- a/net/mac80211/cfg.c --- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c
@@ -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) if (mpath->flags & MESH_PATH_RESOLVED)
pinfo->flags |= NL80211_MPATH_FLAG_RESOLVED; pinfo->flags |= NL80211_MPATH_FLAG_RESOLVED;
pinfo->hop_count = mpath->hop_count; pinfo->hop_count = mpath->hop_count;

View File

@@ -31,7 +31,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
static void ieee80211_8023_xmit(struct ieee80211_sub_if_data *sdata, static void ieee80211_8023_xmit(struct ieee80211_sub_if_data *sdata,
struct net_device *dev, struct sta_info *sta, struct net_device *dev, struct sta_info *sta,
struct ieee80211_key *key, struct sk_buff *skb, 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 * static struct sk_buff *
@@ -40,7 +40,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
{ {
if (skb_is_gso(skb)) { if (skb_is_gso(skb)) {
struct sk_buff *segs; 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)) if (skb_needs_linearize(skb, features) && __skb_linearize(skb))
goto free; goto free;
@@ -49,7 +49,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
int ofs = skb_checksum_start_offset(skb); int ofs = skb_checksum_start_offset(skb);
if (skb->encapsulation) if (skb->encapsulation)
@@ -3820,7 +3822,7 @@ static bool ieee80211_xmit_fast(struct i @@ -3821,7 +3823,7 @@ static bool ieee80211_xmit_fast(struct i
memcpy(&eth, skb->data, ETH_HLEN - 2); memcpy(&eth, skb->data, ETH_HLEN - 2);
/* after this point (skb is modified) we cannot return false */ /* after this point (skb is modified) we cannot return false */
@@ -58,7 +58,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
if (!skb) if (!skb)
return true; 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. * things so we cannot really handle checksum or GSO offload.
* fix it up in software before we handle anything else. * fix it up in software before we handle anything else.
*/ */
@@ -67,7 +67,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
if (!skb) { if (!skb) {
len = 0; len = 0;
goto out; goto out;
@@ -4739,7 +4741,7 @@ static void ieee80211_8023_xmit(struct i @@ -4741,7 +4743,7 @@ static void ieee80211_8023_xmit(struct i
} }
} }
@@ -78,7 +78,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
--- a/net/mac80211/iface.c --- a/net/mac80211/iface.c
+++ b/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->features |= local->hw.netdev_features;
ndev->priv_flags |= IFF_LIVE_ADDR_CHANGE; ndev->priv_flags |= IFF_LIVE_ADDR_CHANGE;

View File

@@ -23,7 +23,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
--- a/include/net/mac80211.h --- a/include/net/mac80211.h
+++ b/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. * @IEEE80211_HW_SUPPORTS_TID_CLASS_OFFLOAD: Hardware suports tid calssification offload.
* *
@@ -33,7 +33,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays * @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
*/ */
enum ieee80211_hw_flags { enum ieee80211_hw_flags {
@@ -2938,6 +2941,7 @@ enum ieee80211_hw_flags { @@ -2945,6 +2948,7 @@ enum ieee80211_hw_flags {
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD, IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD, IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD,
IEEE80211_HW_SUPPORTS_TID_CLASS_OFFLOAD, IEEE80211_HW_SUPPORTS_TID_CLASS_OFFLOAD,
@@ -43,7 +43,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
NUM_IEEE80211_HW_FLAGS NUM_IEEE80211_HW_FLAGS
--- a/net/mac80211/debugfs.c --- a/net/mac80211/debugfs.c
+++ b/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_NSS_OFFLOAD),
FLAG(SUPPORTS_MESH_NSS_OFFLOAD), FLAG(SUPPORTS_MESH_NSS_OFFLOAD),
FLAG(SUPPORTS_TID_CLASS_OFFLOAD), FLAG(SUPPORTS_TID_CLASS_OFFLOAD),
@@ -83,7 +83,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
return false; return false;
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
@@ -4351,7 +4358,8 @@ void __ieee80211_subif_start_xmit(struct @@ -4353,7 +4360,8 @@ void __ieee80211_subif_start_xmit(struct
} }
} }
@@ -93,7 +93,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
ieee80211_aggr_check(sdata, sta, skb); ieee80211_aggr_check(sdata, sta, skb);
if (sta) { 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; bool multicast;
u8 tid; u8 tid;
@@ -106,7 +106,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
multicast = is_multicast_ether_addr(ra); multicast = is_multicast_ether_addr(ra);
@@ -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)) { if (!IS_ERR(sta)) {
@@ -123,7 +123,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
* for MLO STA, the SA should be the AP MLD address, but * for MLO STA, the SA should be the AP MLD address, but
--- a/net/mac80211/cfg.c --- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c
@@ -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; struct ieee80211_sub_if_data *sdata;
int ret = 0; int ret = 0;
@@ -135,7 +135,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
--- a/net/mac80211/main.c --- a/net/mac80211/main.c
+++ b/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); atomic_set(&local->agg_queue_stop[i], 0);
} }
tasklet_setup(&local->tx_pending_tasklet, ieee80211_tx_pending); tasklet_setup(&local->tx_pending_tasklet, ieee80211_tx_pending);
@@ -149,7 +149,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
skb_queue_head_init(&local->skb_queue); skb_queue_head_init(&local->skb_queue);
--- a/net/mac80211/rx.c --- a/net/mac80211/rx.c
+++ b/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); ieee80211_clear_fast_xmit(sta);

View File

@@ -10,7 +10,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
--- a/net/mac80211/rx.c --- a/net/mac80211/rx.c
+++ b/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; break;
case NL80211_IFTYPE_MESH_POINT: case NL80211_IFTYPE_MESH_POINT:
@@ -30,7 +30,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
default: default:
goto clear; 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]; u8 sa[ETH_ALEN];
} addrs __aligned(2); } addrs __aligned(2);
struct ieee80211_sta_rx_stats *stats; struct ieee80211_sta_rx_stats *stats;
@@ -41,7 +41,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
/* for parallel-rx, we need to have DUP_VALIDATED, otherwise we write /* for parallel-rx, we need to have DUP_VALIDATED, otherwise we write
* to a common data structure; drivers can implement that per queue * 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; snap_offs += IEEE80211_CCMP_HDR_LEN;
} }
@@ -79,7 +79,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
if (!ieee80211_vif_is_mesh(&rx->sdata->vif) && if (!ieee80211_vif_is_mesh(&rx->sdata->vif) &&
!(status->rx_flags & IEEE80211_RX_AMSDU)) { !(status->rx_flags & IEEE80211_RX_AMSDU)) {
if (!pskb_may_pull(skb, snap_offs + sizeof(*payload))) 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; return true;
} }

View File

@@ -27,7 +27,7 @@ Signed-off-by: Balamurugan Ramar <quic_bramar@quicinc.com>
--- a/net/mac80211/mlme.c --- a/net/mac80211/mlme.c
+++ b/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) { if (status_acked) {
ifmgd->assoc_data->timeout = ifmgd->assoc_data->timeout =

View File

@@ -17,7 +17,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
--- a/include/net/cfg80211.h --- a/include/net/cfg80211.h
+++ b/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 * @dev: The device the frame matched to
* @addr: the transmitter address * @addr: the transmitter address
* @gfp: context flags * @gfp: context flags
@@ -25,7 +25,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
* *
* This function is used in AP mode (only!) to inform userspace that * This function is used in AP mode (only!) to inform userspace that
* an associated station sent a 4addr frame but that wasn't expected. * 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.) * for a reason other than not having a subscription.)
*/ */
bool cfg80211_rx_unexpected_4addr_frame(struct net_device *dev, bool cfg80211_rx_unexpected_4addr_frame(struct net_device *dev,
@@ -37,7 +37,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
* cfg80211_probe_status - notify userspace about probe status * cfg80211_probe_status - notify userspace about probe status
--- a/net/mac80211/cfg.c --- a/net/mac80211/cfg.c
+++ b/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); vlansdata = IEEE80211_DEV_TO_SUB_IF(params->vlan);
if (params->vlan->ieee80211_ptr->use_4addr) { if (params->vlan->ieee80211_ptr->use_4addr) {
@@ -54,7 +54,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
rcu_assign_pointer(vlansdata->u.vlan.sta, sta); rcu_assign_pointer(vlansdata->u.vlan.sta, sta);
__ieee80211_check_fast_rx_iface(vlansdata); __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 else
drv_sta_set_4addr(local, sta->sdata, &sta->sta, drv_sta_set_4addr(local, sta->sdata, &sta->sta,
true); true);
@@ -96,7 +96,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
--- a/net/mac80211/rx.c --- a/net/mac80211/rx.c
+++ b/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) void ieee80211_rx_nss_notify_4addr(struct net_device *dev, u8 *sta_addr)
{ {
@@ -105,7 +105,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
} }
EXPORT_SYMBOL(ieee80211_rx_nss_notify_4addr); 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)) if (!test_and_set_sta_flag(sta, WLAN_STA_4ADDR_EVENT))
cfg80211_rx_unexpected_4addr_frame( cfg80211_rx_unexpected_4addr_frame(
rx->sdata->dev, sta->sta.addr, rx->sdata->dev, sta->sta.addr,
@@ -115,7 +115,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
return RX_DROP_M_UNEXPECTED_4ADDR_FRAME; 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 && if (rx->sta &&
!test_and_set_sta_flag(rx->sta, WLAN_STA_4ADDR_EVENT)) !test_and_set_sta_flag(rx->sta, WLAN_STA_4ADDR_EVENT))
cfg80211_rx_unexpected_4addr_frame( cfg80211_rx_unexpected_4addr_frame(
@@ -127,7 +127,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
--- a/net/wireless/nl80211.c --- a/net/wireless/nl80211.c
+++ b/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); EXPORT_SYMBOL(cfg80211_conn_failed);
static bool __nl80211_unexpected_frame(struct net_device *dev, u8 cmd, static bool __nl80211_unexpected_frame(struct net_device *dev, u8 cmd,
@@ -137,7 +137,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
{ {
struct wireless_dev *wdev = dev->ieee80211_ptr; struct wireless_dev *wdev = dev->ieee80211_ptr;
struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy); 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)) nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, addr))
goto nla_put_failure; goto nla_put_failure;
@@ -147,7 +147,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
genlmsg_end(msg, hdr); genlmsg_end(msg, hdr);
genlmsg_unicast(wiphy_net(&rdev->wiphy), msg, nlportid); genlmsg_unicast(wiphy_net(&rdev->wiphy), msg, nlportid);
return true; 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; return false;
} }
ret = __nl80211_unexpected_frame(dev, NL80211_CMD_UNEXPECTED_FRAME, ret = __nl80211_unexpected_frame(dev, NL80211_CMD_UNEXPECTED_FRAME,
@@ -165,7 +165,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
{ {
struct wireless_dev *wdev = dev->ieee80211_ptr; struct wireless_dev *wdev = dev->ieee80211_ptr;
bool ret; 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, ret = __nl80211_unexpected_frame(dev,
NL80211_CMD_UNEXPECTED_4ADDR_FRAME, NL80211_CMD_UNEXPECTED_4ADDR_FRAME,
@@ -176,7 +176,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
} }
--- a/net/mac80211/chan.c --- a/net/mac80211/chan.c
+++ b/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) { list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) {
struct ieee80211_bss_conf *vlan_conf; struct ieee80211_bss_conf *vlan_conf;
@@ -185,7 +185,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
vlan_conf = wiphy_dereference(local->hw.wiphy, vlan_conf = wiphy_dereference(local->hw.wiphy,
vlan->vif.link_conf[link_id]); vlan->vif.link_conf[link_id]);
if (WARN_ON(!vlan_conf)) 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) { list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) {
struct ieee80211_bss_conf *vlan_conf; struct ieee80211_bss_conf *vlan_conf;

View File

@@ -20,7 +20,7 @@ Signed-off-by: Monika Korada <quic_koramoni@quicinc.com>
--- a/net/mac80211/iface.c --- a/net/mac80211/iface.c
+++ b/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: case NL80211_IFTYPE_AP_VLAN:
if (sdata->bss->active) { if (sdata->bss->active) {
ieee80211_link_vlan_copy_chanctx(&sdata->deflink); ieee80211_link_vlan_copy_chanctx(&sdata->deflink);
@@ -30,7 +30,7 @@ Signed-off-by: Monika Korada <quic_koramoni@quicinc.com>
if (ieee80211_hw_check(&local->hw, SUPPORTS_NSS_OFFLOAD)) { if (ieee80211_hw_check(&local->hw, SUPPORTS_NSS_OFFLOAD)) {
ieee80211_set_sdata_offload_flags(sdata); 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); ieee80211_set_vif_encap_ops(sdata);
} else { } else {
@@ -40,7 +40,7 @@ Signed-off-by: Monika Korada <quic_koramoni@quicinc.com>
} }
break; break;
case NL80211_IFTYPE_MONITOR: 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_offload(local);
ieee80211_recalc_idle(local); ieee80211_recalc_idle(local);
@@ -50,7 +50,7 @@ Signed-off-by: Monika Korada <quic_koramoni@quicinc.com>
break; break;
default: default:
if (coming_up) { 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_AP:
case NL80211_IFTYPE_MESH_POINT: case NL80211_IFTYPE_MESH_POINT:
case NL80211_IFTYPE_OCB: case NL80211_IFTYPE_OCB: