mirror of
https://github.com/optim-enterprises-bv/openwrt-ipq.git
synced 2025-11-01 02:38:27 +00:00
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:
@@ -29,7 +29,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
|
||||
|
||||
/* SMBIOS type containing Board Data File Name Extension */
|
||||
#define ATH11K_SMBIOS_BDF_EXT_TYPE 0xF8
|
||||
@@ -419,6 +421,17 @@ struct ath11k_vif_iter {
|
||||
@@ -425,6 +427,17 @@ struct ath11k_vif_iter {
|
||||
struct ath11k_vif *arvif;
|
||||
};
|
||||
|
||||
@@ -47,7 +47,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
|
||||
struct ath11k_rx_peer_stats {
|
||||
u64 num_msdu;
|
||||
u64 num_mpdu_fcs_ok;
|
||||
@@ -430,10 +443,6 @@ struct ath11k_rx_peer_stats {
|
||||
@@ -436,10 +449,6 @@ struct ath11k_rx_peer_stats {
|
||||
u64 non_ampdu_msdu_count;
|
||||
u64 stbc_count;
|
||||
u64 beamformed_count;
|
||||
@@ -58,7 +58,7 @@ Signed-off-by: Manikanta Pubbisetty <mpubbise@codeaurora.org>
|
||||
u64 coding_count[HAL_RX_SU_MU_CODING_MAX];
|
||||
u64 tid_count[IEEE80211_NUM_TIDS + 1];
|
||||
u64 pream_cnt[HAL_RX_PREAMBLE_MAX];
|
||||
@@ -441,6 +450,8 @@ struct ath11k_rx_peer_stats {
|
||||
@@ -447,6 +456,8 @@ struct ath11k_rx_peer_stats {
|
||||
u64 rx_duration;
|
||||
u64 dcm_count;
|
||||
u64 ru_alloc_cnt[HAL_RX_RU_ALLOC_TYPE_MAX];
|
||||
|
||||
@@ -23,7 +23,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
|
||||
#include "fw.h"
|
||||
|
||||
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK)
|
||||
@@ -512,6 +513,8 @@ struct ath11k_htt_data_stats {
|
||||
@@ -518,6 +519,8 @@ struct ath11k_htt_data_stats {
|
||||
u64 bw[ATH11K_COUNTER_TYPE_MAX][ATH11K_BW_NUM];
|
||||
u64 nss[ATH11K_COUNTER_TYPE_MAX][ATH11K_NSS_NUM];
|
||||
u64 gi[ATH11K_COUNTER_TYPE_MAX][ATH11K_GI_NUM];
|
||||
@@ -32,7 +32,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
|
||||
};
|
||||
|
||||
struct ath11k_htt_tx_stats {
|
||||
@@ -519,6 +522,9 @@ struct ath11k_htt_tx_stats {
|
||||
@@ -525,6 +528,9 @@ struct ath11k_htt_tx_stats {
|
||||
u64 tx_duration;
|
||||
u64 ba_fails;
|
||||
u64 ack_fails;
|
||||
@@ -42,7 +42,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
|
||||
};
|
||||
|
||||
struct ath11k_per_ppdu_tx_stats {
|
||||
@@ -635,11 +641,16 @@ struct ath11k_per_peer_tx_stats {
|
||||
@@ -641,11 +647,16 @@ struct ath11k_per_peer_tx_stats {
|
||||
u32 succ_bytes;
|
||||
u32 retry_bytes;
|
||||
u32 failed_bytes;
|
||||
@@ -396,7 +396,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
|
||||
|
||||
#define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_LTF_SIZE_M GENMASK(1, 0)
|
||||
#define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_STBC_M BIT(2)
|
||||
@@ -1364,6 +1422,21 @@ struct htt_ppdu_stats_usr_cmpltn_ack_ba_
|
||||
@@ -1352,16 +1410,33 @@ struct htt_ppdu_stats_usr_cmpltn_ack_ba_
|
||||
u32 success_bytes;
|
||||
} __packed;
|
||||
|
||||
@@ -415,11 +415,6 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
|
||||
+ u32 host_opaque_cookie;
|
||||
+} __packed;
|
||||
+
|
||||
struct htt_ppdu_stats_usr_cmn_array {
|
||||
struct htt_tlv tlv_hdr;
|
||||
u32 num_ppdu_stats;
|
||||
@@ -1377,14 +1450,16 @@ struct htt_ppdu_stats_usr_cmn_array {
|
||||
|
||||
struct htt_ppdu_user_stats {
|
||||
u16 peer_id;
|
||||
+ u16 delay_ba;
|
||||
@@ -436,7 +431,7 @@ Signed-off-by: Miles Hu <milehu@codeaurora.org>
|
||||
#define HTT_PPDU_DESC_MAX_DEPTH 16
|
||||
|
||||
struct htt_ppdu_stats {
|
||||
@@ -1393,7 +1468,7 @@ struct htt_ppdu_stats {
|
||||
@@ -1370,7 +1445,7 @@ struct htt_ppdu_stats {
|
||||
};
|
||||
|
||||
struct htt_ppdu_stats_info {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||
@@ -5515,8 +5515,11 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
@@ -5518,8 +5518,11 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
goto next_skb;
|
||||
}
|
||||
|
||||
|
||||
@@ -247,7 +247,7 @@
|
||||
int ath11k_dp_rx_process_mon_status(struct ath11k_base *ab, int mac_id,
|
||||
struct napi_struct *napi, int budget)
|
||||
{
|
||||
@@ -5517,8 +5682,13 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
@@ -5520,8 +5685,13 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
|
||||
if ((ppdu_info->fc_valid) &&
|
||||
(ppdu_info->ast_index != HAL_AST_IDX_INVALID)) {
|
||||
|
||||
@@ -33,14 +33,15 @@
|
||||
struct ath11k_vif {
|
||||
u32 vdev_id;
|
||||
enum wmi_vdev_type vdev_type;
|
||||
@@ -415,6 +425,7 @@ struct ath11k_vif {
|
||||
@@ -414,7 +424,7 @@ struct ath11k_vif {
|
||||
struct ath11k_rekey_data rekey_data;
|
||||
|
||||
struct ath11k_reg_tpc_power_info reg_tpc_info;
|
||||
-
|
||||
+ struct ath11k_mgmt_frame_stats mgmt_stats;
|
||||
};
|
||||
|
||||
struct ath11k_vif_iter {
|
||||
/* Must be last - ends in a flexible-array member.
|
||||
*
|
||||
* FIXME: Driver should not copy struct ieee80211_chanctx_conf,
|
||||
--- a/drivers/net/wireless/ath/ath11k/debugfs.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/debugfs.c
|
||||
@@ -1589,6 +1589,87 @@ static const struct file_operations fops
|
||||
|
||||
@@ -3017,7 +3017,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
/* TODO: Do we need to enable ANI? */
|
||||
--- a/drivers/net/wireless/ath/ath11k/core.h
|
||||
+++ b/drivers/net/wireless/ath/ath11k/core.h
|
||||
@@ -891,6 +891,8 @@ struct ath11k_soc_dp_tx_err_stats {
|
||||
@@ -896,6 +896,8 @@ struct ath11k_soc_dp_tx_err_stats {
|
||||
* idr unavailable etc.
|
||||
*/
|
||||
atomic_t misc_fail;
|
||||
@@ -3026,7 +3026,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
};
|
||||
|
||||
struct ath11k_soc_dp_stats {
|
||||
@@ -977,6 +979,7 @@ struct ath11k_base {
|
||||
@@ -982,6 +984,7 @@ struct ath11k_base {
|
||||
struct list_head peers;
|
||||
wait_queue_head_t peer_mapping_wq;
|
||||
u8 mac_addr[ETH_ALEN];
|
||||
|
||||
@@ -164,17 +164,17 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
|
||||
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK)
|
||||
|
||||
@@ -426,6 +427,9 @@ struct ath11k_vif {
|
||||
@@ -425,6 +426,9 @@ struct ath11k_vif {
|
||||
|
||||
struct ath11k_reg_tpc_power_info reg_tpc_info;
|
||||
struct ath11k_mgmt_frame_stats mgmt_stats;
|
||||
+#ifdef CPTCFG_ATH11K_NSS_SUPPORT
|
||||
+ struct arvif_nss nss;
|
||||
+#endif
|
||||
};
|
||||
|
||||
struct ath11k_vif_iter {
|
||||
@@ -579,6 +583,9 @@ struct ath11k_sta {
|
||||
/* Must be last - ends in a flexible-array member.
|
||||
*
|
||||
* FIXME: Driver should not copy struct ieee80211_chanctx_conf,
|
||||
@@ -584,6 +588,9 @@ struct ath11k_sta {
|
||||
#endif
|
||||
|
||||
bool use_4addr_set;
|
||||
@@ -184,7 +184,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
u16 tcl_metadata;
|
||||
|
||||
/* Protected with ar->data_lock */
|
||||
@@ -673,6 +680,9 @@ struct ath11k {
|
||||
@@ -678,6 +685,9 @@ struct ath11k {
|
||||
struct ath11k_pdev *pdev;
|
||||
struct ieee80211_hw *hw;
|
||||
struct ath11k_pdev_wmi *wmi;
|
||||
@@ -194,7 +194,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
struct ath11k_pdev_dp dp;
|
||||
u8 mac_addr[ETH_ALEN];
|
||||
struct ath11k_he ar_he;
|
||||
@@ -934,9 +944,11 @@ struct ath11k_base {
|
||||
@@ -939,9 +949,11 @@ struct ath11k_base {
|
||||
struct ath11k_htc htc;
|
||||
|
||||
struct ath11k_dp dp;
|
||||
@@ -443,7 +443,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
int num_buffs_reaped = 0;
|
||||
u32 rx_buf_sz;
|
||||
u16 log_type;
|
||||
@@ -5745,6 +5774,7 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
@@ -5748,6 +5777,7 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
if (ppdu_info->reception_type == HAL_RX_RECEPTION_TYPE_SU) {
|
||||
arsta = (struct ath11k_sta *)peer->sta->drv_priv;
|
||||
ath11k_dp_rx_update_peer_su_stats(arsta, ppdu_info);
|
||||
|
||||
@@ -152,7 +152,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
||||
|
||||
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK)
|
||||
|
||||
@@ -929,6 +929,11 @@ struct ath11k_msi_config {
|
||||
@@ -934,6 +934,11 @@ struct ath11k_msi_config {
|
||||
u16 hw_rev;
|
||||
};
|
||||
|
||||
@@ -164,7 +164,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
||||
/* Master structure to hold the hw data which may be used in core module */
|
||||
struct ath11k_base {
|
||||
enum ath11k_hw_rev hw_rev;
|
||||
@@ -1086,6 +1091,8 @@ struct ath11k_base {
|
||||
@@ -1091,6 +1096,8 @@ struct ath11k_base {
|
||||
DECLARE_BITMAP(fw_features, ATH11K_FW_FEATURE_COUNT);
|
||||
} fw;
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/core.h
|
||||
+++ b/drivers/net/wireless/ath/ath11k/core.h
|
||||
@@ -683,6 +683,7 @@ struct ath11k {
|
||||
@@ -688,6 +688,7 @@ struct ath11k {
|
||||
struct ath11k_pdev_wmi *wmi;
|
||||
#ifdef CPTCFG_ATH11K_NSS_SUPPORT
|
||||
struct ath11k_nss nss;
|
||||
@@ -34,7 +34,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
#endif
|
||||
struct ath11k_pdev_dp dp;
|
||||
u8 mac_addr[ETH_ALEN];
|
||||
@@ -1101,6 +1102,9 @@ struct ath11k_base {
|
||||
@@ -1106,6 +1107,9 @@ struct ath11k_base {
|
||||
} testmode;
|
||||
#endif
|
||||
|
||||
|
||||
@@ -33,14 +33,14 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/core.h
|
||||
+++ b/drivers/net/wireless/ath/ath11k/core.h
|
||||
@@ -431,6 +431,7 @@ struct ath11k_vif {
|
||||
@@ -430,6 +430,7 @@ struct ath11k_vif {
|
||||
#ifdef CPTCFG_ATH11K_NSS_SUPPORT
|
||||
struct arvif_nss nss;
|
||||
#endif
|
||||
+ struct list_head ap_vlan_arvifs;
|
||||
};
|
||||
|
||||
struct ath11k_vif_iter {
|
||||
/* Must be last - ends in a flexible-array member.
|
||||
*
|
||||
* FIXME: Driver should not copy struct ieee80211_chanctx_conf,
|
||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||
@@ -4844,6 +4844,11 @@ static void ath11k_sta_rc_update_wk(stru
|
||||
|
||||
@@ -69,7 +69,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
struct ath11k_vif {
|
||||
u32 vdev_id;
|
||||
enum wmi_vdev_type vdev_type;
|
||||
@@ -432,6 +451,11 @@ struct ath11k_vif {
|
||||
@@ -431,6 +450,11 @@ struct ath11k_vif {
|
||||
struct arvif_nss nss;
|
||||
#endif
|
||||
struct list_head ap_vlan_arvifs;
|
||||
@@ -78,9 +78,9 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
+ /* VLAN keyidx map required for Dynamic VLAN */
|
||||
+ u16 *vlan_keyid_map;
|
||||
+ DECLARE_BITMAP(free_groupidx_map, ATH11K_GROUP_KEYS_NUM_MAX);
|
||||
};
|
||||
|
||||
struct ath11k_vif_iter {
|
||||
/* Must be last - ends in a flexible-array member.
|
||||
*
|
||||
* FIXME: Driver should not copy struct ieee80211_chanctx_conf,
|
||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||
@@ -343,6 +343,10 @@ enum nl80211_he_gi ath11k_mac_he_gi_to_n
|
||||
|
||||
@@ -29,7 +29,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
|
||||
};
|
||||
|
||||
enum ath11k_hw_rev {
|
||||
@@ -1130,6 +1131,7 @@ struct ath11k_base {
|
||||
@@ -1135,6 +1136,7 @@ struct ath11k_base {
|
||||
u32 max_ast_index;
|
||||
u32 num_ast_entries;
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
|
||||
};
|
||||
|
||||
struct ath11k_skb_cb {
|
||||
@@ -925,10 +926,13 @@ struct ath11k_dp_ring_bp_stats {
|
||||
@@ -930,10 +931,13 @@ struct ath11k_dp_ring_bp_stats {
|
||||
struct ath11k_soc_dp_tx_err_stats {
|
||||
/* TCL Ring Descriptor unavailable */
|
||||
u32 desc_na[DP_TCL_NUM_RING_MAX];
|
||||
|
||||
@@ -1014,8 +1014,8 @@ Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@codeaurora.org>
|
||||
+#endif
|
||||
--- a/drivers/net/wireless/ath/ath11k/dp.h
|
||||
+++ b/drivers/net/wireless/ath/ath11k/dp.h
|
||||
@@ -1453,15 +1453,29 @@ struct htt_ppdu_stats_usr_cmn_array {
|
||||
struct htt_tx_ppdu_stats_info tx_ppdu_info[];
|
||||
@@ -1430,15 +1430,29 @@ struct htt_ppdu_stats_user_common {
|
||||
u32 host_opaque_cookie;
|
||||
} __packed;
|
||||
|
||||
+#define HTT_PPDU_STATS_CMPLTN_FLUSH_INFO_FLOW_TYPE GENMASK(7, 0)
|
||||
|
||||
@@ -83,7 +83,7 @@ Signed-off-by: Rameshkumar Sundaram <ramess@codeaurora.org>
|
||||
#include "fw.h"
|
||||
|
||||
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK)
|
||||
@@ -1134,6 +1135,9 @@ struct ath11k_base {
|
||||
@@ -1139,6 +1140,9 @@ struct ath11k_base {
|
||||
|
||||
u32 max_ast_index;
|
||||
u32 num_ast_entries;
|
||||
|
||||
@@ -16,8 +16,8 @@ Signed-off-by: Anilkumar Kolli <quic_akolli@quicinc.com>
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||
@@ -6018,12 +6018,23 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
pmon->mon_ppdu_status = DP_PPDU_STATUS_START;
|
||||
@@ -6021,12 +6021,23 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
}
|
||||
}
|
||||
|
||||
- if (ppdu_info->peer_id == HAL_INVALID_PEERID ||
|
||||
@@ -43,7 +43,7 @@ Signed-off-by: Anilkumar Kolli <quic_akolli@quicinc.com>
|
||||
rcu_read_lock();
|
||||
spin_lock_bh(&ab->base_lock);
|
||||
peer = ath11k_peer_find_by_id(ab, ppdu_info->peer_id);
|
||||
@@ -6347,6 +6358,13 @@ static int ath11k_dp_full_mon_process_rx
|
||||
@@ -6350,6 +6361,13 @@ static int ath11k_dp_full_mon_process_rx
|
||||
|
||||
spin_lock_bh(&pmon->mon_lock);
|
||||
|
||||
@@ -57,7 +57,7 @@ Signed-off-by: Anilkumar Kolli <quic_akolli@quicinc.com>
|
||||
sw_mon_entries = &pmon->sw_mon_entries;
|
||||
rx_mon_stats = &pmon->rx_mon_stats;
|
||||
|
||||
@@ -6386,7 +6404,6 @@ static int ath11k_dp_full_mon_process_rx
|
||||
@@ -6389,7 +6407,6 @@ static int ath11k_dp_full_mon_process_rx
|
||||
}
|
||||
|
||||
rx_mon_stats->dest_ppdu_done++;
|
||||
@@ -65,7 +65,7 @@ Signed-off-by: Anilkumar Kolli <quic_akolli@quicinc.com>
|
||||
pmon->buf_state = DP_MON_STATUS_LAG;
|
||||
pmon->mon_status_paddr = sw_mon_entries->mon_status_paddr;
|
||||
pmon->hold_mon_dst_ring = true;
|
||||
@@ -6417,16 +6434,10 @@ reap_status_ring:
|
||||
@@ -6420,16 +6437,10 @@ reap_status_ring:
|
||||
int ath11k_dp_rx_process_mon_rings(struct ath11k_base *ab, int mac_id,
|
||||
struct napi_struct *napi, int budget)
|
||||
{
|
||||
|
||||
@@ -14,7 +14,7 @@ Signed-off-by: Ramya Gnanasekar <quic_rgnanase@quicinc.com>
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/dp.h
|
||||
+++ b/drivers/net/wireless/ath/ath11k/dp.h
|
||||
@@ -1425,6 +1425,7 @@ struct htt_ppdu_stats_usr_cmpltn_cmn {
|
||||
@@ -1413,6 +1413,7 @@ struct htt_ppdu_stats_usr_cmpltn_cmn {
|
||||
#define HTT_PPDU_STATS_ACK_BA_INFO_TID_NUM GENMASK(31, 25)
|
||||
|
||||
#define HTT_PPDU_STATS_NON_QOS_TID 16
|
||||
|
||||
@@ -41,7 +41,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/core.h
|
||||
+++ b/drivers/net/wireless/ath/ath11k/core.h
|
||||
@@ -944,6 +944,9 @@ struct ath11k_soc_dp_stats {
|
||||
@@ -949,6 +949,9 @@ struct ath11k_soc_dp_stats {
|
||||
u32 rxdma_error[HAL_REO_ENTR_RING_RXDMA_ECODE_MAX];
|
||||
u32 reo_error[HAL_REO_DEST_RING_ERROR_CODE_MAX];
|
||||
u32 hal_reo_error[DP_REO_DST_RING_MAX];
|
||||
|
||||
@@ -67,7 +67,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
|
||||
ppdu_info->peer_id = HAL_INVALID_PEERID;
|
||||
hal_status = ath11k_hal_rx_parse_mon_status(ab, ppdu_info, skb);
|
||||
|
||||
@@ -6135,6 +6136,7 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
@@ -6138,6 +6139,7 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
if ((ppdu_info->peer_id == HAL_INVALID_PEERID ||
|
||||
hal_status != HAL_RX_MON_STATUS_PPDU_DONE)) {
|
||||
dev_kfree_skb_any(skb);
|
||||
|
||||
@@ -111,7 +111,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
|
||||
rxcb = ATH11K_SKB_RXCB(skb);
|
||||
dma_unmap_single(ab->dev, rxcb->paddr,
|
||||
@@ -6423,16 +6414,14 @@ ath11k_dp_rx_full_mon_mpdu_pop(struct at
|
||||
@@ -6426,16 +6417,14 @@ ath11k_dp_rx_full_mon_mpdu_pop(struct at
|
||||
msdu_list.sw_cookie[i]);
|
||||
|
||||
spin_lock_bh(&rx_ring->idr_lock);
|
||||
|
||||
@@ -18,7 +18,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/core.h
|
||||
+++ b/drivers/net/wireless/ath/ath11k/core.h
|
||||
@@ -704,6 +704,11 @@ struct ath11k_per_peer_tx_stats {
|
||||
@@ -709,6 +709,11 @@ struct ath11k_per_peer_tx_stats {
|
||||
#define ATH11K_FLUSH_TIMEOUT (5 * HZ)
|
||||
#define ATH11K_VDEV_DELETE_TIMEOUT_HZ (5 * HZ)
|
||||
|
||||
@@ -30,7 +30,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
struct ath11k {
|
||||
struct ath11k_base *ab;
|
||||
struct ath11k_pdev *pdev;
|
||||
@@ -853,6 +858,7 @@ struct ath11k {
|
||||
@@ -858,6 +863,7 @@ struct ath11k {
|
||||
bool ps_state_enable;
|
||||
bool ps_timekeeper_enable;
|
||||
s8 max_allowed_tx_power;
|
||||
@@ -248,7 +248,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6691,7 +6734,7 @@ next_entry:
|
||||
@@ -6694,7 +6737,7 @@ next_entry:
|
||||
ath11k_dp_rxbufs_replenish(ar->ab, dp->mac_id,
|
||||
&dp->rxdma_mon_buf_ring,
|
||||
rx_bufs_used,
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
INIT_WORK(&ab->restart_work, ath11k_core_restart);
|
||||
--- a/drivers/net/wireless/ath/ath11k/core.h
|
||||
+++ b/drivers/net/wireless/ath/ath11k/core.h
|
||||
@@ -741,9 +741,22 @@ struct ath11k {
|
||||
@@ -746,9 +746,22 @@ struct ath11k {
|
||||
iftype[NUM_NL80211_BANDS][NUM_NL80211_IFTYPES];
|
||||
} mac;
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
u32 min_tx_power;
|
||||
u32 max_tx_power;
|
||||
u32 txpower_limit_2g;
|
||||
@@ -821,6 +834,9 @@ struct ath11k {
|
||||
@@ -826,6 +839,9 @@ struct ath11k {
|
||||
struct work_struct wmi_mgmt_tx_work;
|
||||
struct sk_buff_head wmi_mgmt_tx_queue;
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
struct ath11k_wow wow;
|
||||
struct completion target_suspend;
|
||||
bool target_suspend_ack;
|
||||
@@ -1024,19 +1040,7 @@ struct ath11k_base {
|
||||
@@ -1029,19 +1045,7 @@ struct ath11k_base {
|
||||
struct ath11k_hal_reg_capabilities_ext hal_reg_cap[MAX_RADIOS];
|
||||
unsigned long long free_vdev_map;
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
u8 mac_addr[ETH_ALEN];
|
||||
int userpd_id;
|
||||
int irq_num[ATH11K_IRQ_NUM_MAX];
|
||||
@@ -1413,4 +1417,36 @@ static inline const char *ath11k_bus_str
|
||||
@@ -1418,4 +1422,36 @@ static inline const char *ath11k_bus_str
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
@@ -515,10 +515,10 @@
|
||||
if (peer && peer->sta)
|
||||
pubsta = peer->sta;
|
||||
spin_unlock_bh(&ar->ab->base_lock);
|
||||
@@ -3504,7 +3520,7 @@ try_again:
|
||||
if (unlikely(push_reason !=
|
||||
HAL_REO_DEST_RING_PUSH_REASON_ROUTING_INSTRUCTION)) {
|
||||
dev_kfree_skb_any(msdu);
|
||||
@@ -3462,7 +3478,7 @@ try_again:
|
||||
if (unlikely(push_reason ==
|
||||
HAL_REO_DEST_RING_PUSH_REASON_ERR_DETECTED)) {
|
||||
ath11k_warn(ab,"Received invalid desc\n");
|
||||
- ab->soc_stats.hal_reo_error[dp->reo_dst_ring[ring_id].ring_id]++;
|
||||
+ ab->soc_stats.hal_reo_error[ring_id]++;
|
||||
continue;
|
||||
@@ -569,7 +569,7 @@
|
||||
|
||||
if (test_bit(ATH11K_FLAG_MONITOR_STARTED, &ar->monitor_flags) &&
|
||||
pmon->mon_ppdu_status == DP_PPDU_STATUS_START &&
|
||||
@@ -6423,7 +6439,7 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
@@ -6426,7 +6442,7 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
}
|
||||
rcu_read_lock();
|
||||
spin_lock_bh(&ab->base_lock);
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
rx_stats = arsta->rx_stats;
|
||||
|
||||
if (ar->ab->nss.enabled)
|
||||
@@ -6451,7 +6450,7 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
@@ -6454,7 +6453,7 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
if ((ppdu_info->fc_valid) &&
|
||||
(ppdu_info->ast_index != HAL_AST_IDX_INVALID)) {
|
||||
if (ppdu_info->reception_type == HAL_RX_RECEPTION_TYPE_SU) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/mac80211/tx.c
|
||||
+++ b/net/mac80211/tx.c
|
||||
@@ -4715,8 +4715,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
|
||||
@@ -4717,8 +4717,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
|
||||
if (!key)
|
||||
key = rcu_dereference(sdata->default_unicast_key);
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1485,7 +1501,7 @@ ieee80211_tx_info_clear_status(struct ie
|
||||
@@ -1483,7 +1499,7 @@ ieee80211_tx_info_clear_status(struct ie
|
||||
* @RX_FLAG_AMPDU_EOF_BIT_KNOWN: The EOF value is known
|
||||
* @RX_FLAG_RADIOTAP_HE: HE radiotap data is present
|
||||
* (&struct ieee80211_radiotap_he, mac80211 will fill in
|
||||
@@ -73,7 +73,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
* - DATA3_DATA_MCS
|
||||
* - DATA3_DATA_DCM
|
||||
* - DATA3_CODING
|
||||
@@ -1493,7 +1509,7 @@ ieee80211_tx_info_clear_status(struct ie
|
||||
@@ -1491,7 +1507,7 @@ ieee80211_tx_info_clear_status(struct ie
|
||||
* - DATA5_DATA_BW_RU_ALLOC
|
||||
* - DATA6_NSTS
|
||||
* - DATA3_STBC
|
||||
@@ -82,7 +82,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
* from the RX info data, so leave those zeroed when building this data)
|
||||
* @RX_FLAG_RADIOTAP_HE_MU: HE MU radiotap data is present
|
||||
* (&struct ieee80211_radiotap_he_mu)
|
||||
@@ -2128,6 +2144,16 @@ static inline bool lockdep_vif_wiphy_mut
|
||||
@@ -2127,6 +2143,16 @@ static inline bool lockdep_vif_wiphy_mut
|
||||
lockdep_vif_wiphy_mutex_held(vif))
|
||||
|
||||
/**
|
||||
@@ -99,7 +99,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
* enum ieee80211_key_flags - key flags
|
||||
*
|
||||
* These flags are used for communication about keys between the driver
|
||||
@@ -2826,6 +2852,8 @@ struct ieee80211_txq {
|
||||
@@ -2830,6 +2856,8 @@ struct ieee80211_txq {
|
||||
* implements MLO, so operation can continue on other links when one
|
||||
* link is switching.
|
||||
*
|
||||
@@ -108,7 +108,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
|
||||
*/
|
||||
enum ieee80211_hw_flags {
|
||||
@@ -2885,6 +2913,7 @@ enum ieee80211_hw_flags {
|
||||
@@ -2890,6 +2918,7 @@ enum ieee80211_hw_flags {
|
||||
IEEE80211_HW_DISALLOW_PUNCTURING,
|
||||
IEEE80211_HW_DISALLOW_PUNCTURING_5GHZ,
|
||||
IEEE80211_HW_HANDLES_QUIET_CSA,
|
||||
@@ -116,7 +116,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
|
||||
/* keep last, obviously */
|
||||
NUM_IEEE80211_HW_FLAGS
|
||||
@@ -3900,6 +3929,10 @@ struct ieee80211_prep_tx_info {
|
||||
@@ -3918,6 +3947,10 @@ struct ieee80211_prep_tx_info {
|
||||
* non-MLO connections.
|
||||
* The callback can sleep.
|
||||
*
|
||||
@@ -127,7 +127,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
* @prepare_multicast: Prepare for multicast filter configuration.
|
||||
* This callback is optional, and its return value is passed
|
||||
* to configure_filter(). This callback must be atomic.
|
||||
@@ -4462,7 +4495,9 @@ struct ieee80211_ops {
|
||||
@@ -4480,7 +4513,9 @@ struct ieee80211_ops {
|
||||
struct ieee80211_vif *vif,
|
||||
struct ieee80211_bss_conf *info,
|
||||
u64 changed);
|
||||
@@ -138,7 +138,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
int (*start_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
struct ieee80211_bss_conf *link_conf);
|
||||
void (*stop_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
@@ -4772,7 +4807,7 @@ struct ieee80211_ops {
|
||||
@@ -4790,7 +4825,7 @@ struct ieee80211_ops {
|
||||
int (*reset_tid_config)(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif,
|
||||
struct ieee80211_sta *sta, u8 tids);
|
||||
@@ -149,7 +149,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
struct ieee80211_sta *sta, bool enabled);
|
||||
--- a/net/mac80211/debugfs.c
|
||||
+++ b/net/mac80211/debugfs.c
|
||||
@@ -508,6 +508,7 @@ static const char *hw_flag_names[] = {
|
||||
@@ -509,6 +509,7 @@ static const char *hw_flag_names[] = {
|
||||
FLAG(DISALLOW_PUNCTURING),
|
||||
FLAG(DISALLOW_PUNCTURING_5GHZ),
|
||||
FLAG(HANDLES_QUIET_CSA),
|
||||
@@ -184,7 +184,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
* the suspend->resume cycle. Since we can't check each caller
|
||||
--- a/net/mac80211/main.c
|
||||
+++ b/net/mac80211/main.c
|
||||
@@ -414,6 +414,17 @@ void ieee80211_link_info_change_notify(s
|
||||
@@ -416,6 +416,17 @@ void ieee80211_link_info_change_notify(s
|
||||
drv_link_info_changed(local, sdata, link->conf, link->link_id, changed);
|
||||
}
|
||||
|
||||
@@ -202,7 +202,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
u64 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata)
|
||||
{
|
||||
sdata->vif.bss_conf.use_cts_prot = false;
|
||||
@@ -852,12 +863,6 @@ struct ieee80211_hw *ieee80211_alloc_hw_
|
||||
@@ -854,12 +865,6 @@ struct ieee80211_hw *ieee80211_alloc_hw_
|
||||
NL80211_FEATURE_FULL_AP_CLIENT_STATE;
|
||||
wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_FILS_STA);
|
||||
wiphy_ext_feature_set(wiphy,
|
||||
@@ -215,7 +215,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
NL80211_EXT_FEATURE_SCAN_FREQ_KHZ);
|
||||
wiphy_ext_feature_set(wiphy,
|
||||
NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE);
|
||||
@@ -1185,6 +1190,18 @@ int ieee80211_register_hw(struct ieee802
|
||||
@@ -1187,6 +1192,18 @@ int ieee80211_register_hw(struct ieee802
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -272,7 +272,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
ac = skb_get_queue_mapping(skb);
|
||||
tx->sta->deflink.tx_stats.bytes[ac] += skb->len;
|
||||
}
|
||||
@@ -2876,7 +2888,9 @@ static struct sk_buff *ieee80211_build_h
|
||||
@@ -2877,7 +2889,9 @@ static struct sk_buff *ieee80211_build_h
|
||||
if (unlikely(!multicast &&
|
||||
((skb->sk &&
|
||||
skb_shinfo(skb)->tx_flags & SKBTX_WIFI_STATUS) ||
|
||||
@@ -283,7 +283,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
info_id = ieee80211_store_ack_skb(local, skb, &info_flags,
|
||||
cookie);
|
||||
|
||||
@@ -4665,7 +4679,8 @@ static void ieee80211_8023_xmit(struct i
|
||||
@@ -4667,7 +4681,8 @@ static void ieee80211_8023_xmit(struct i
|
||||
}
|
||||
|
||||
if (unlikely(skb->sk &&
|
||||
@@ -293,7 +293,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
info->status_data = ieee80211_store_ack_skb(local, skb,
|
||||
&info->flags, NULL);
|
||||
if (info->status_data)
|
||||
@@ -4673,8 +4688,10 @@ static void ieee80211_8023_xmit(struct i
|
||||
@@ -4675,8 +4690,10 @@ static void ieee80211_8023_xmit(struct i
|
||||
}
|
||||
|
||||
dev_sw_netstats_tx_add(dev, skbs, len);
|
||||
@@ -320,7 +320,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
gfp);
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -2695,7 +2695,7 @@ static int ieee80211_change_bss(struct w
|
||||
@@ -2704,7 +2704,7 @@ static int ieee80211_change_bss(struct w
|
||||
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
|
||||
struct ieee80211_link_data *link;
|
||||
struct ieee80211_supported_band *sband;
|
||||
@@ -329,7 +329,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
|
||||
link = ieee80211_link_or_deflink(sdata, params->link_id, true);
|
||||
if (IS_ERR(link))
|
||||
@@ -2745,6 +2745,8 @@ static int ieee80211_change_bss(struct w
|
||||
@@ -2754,6 +2754,8 @@ static int ieee80211_change_bss(struct w
|
||||
sdata->flags |= IEEE80211_SDATA_DONT_BRIDGE_PACKETS;
|
||||
else
|
||||
sdata->flags &= ~IEEE80211_SDATA_DONT_BRIDGE_PACKETS;
|
||||
@@ -338,7 +338,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
ieee80211_check_fast_rx_iface(sdata);
|
||||
}
|
||||
|
||||
@@ -2773,6 +2775,8 @@ static int ieee80211_change_bss(struct w
|
||||
@@ -2782,6 +2784,8 @@ static int ieee80211_change_bss(struct w
|
||||
|
||||
ieee80211_link_info_change_notify(sdata, link, changed);
|
||||
|
||||
@@ -375,7 +375,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
{
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -1860,6 +1860,8 @@ void ieee80211_vif_cfg_change_notify(str
|
||||
@@ -1859,6 +1859,8 @@ void ieee80211_vif_cfg_change_notify(str
|
||||
void ieee80211_link_info_change_notify(struct ieee80211_sub_if_data *sdata,
|
||||
struct ieee80211_link_data *link,
|
||||
u64 changed);
|
||||
@@ -427,7 +427,7 @@ Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
||||
TP_PROTO(struct ieee80211_local *local,
|
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -984,7 +984,8 @@ static bool ieee80211_set_sdata_offload_
|
||||
@@ -986,7 +986,8 @@ static bool ieee80211_set_sdata_offload_
|
||||
local->hw.wiphy->frag_threshold != (u32)-1)
|
||||
flags &= ~IEEE80211_OFFLOAD_ENCAP_ENABLED;
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
|
||||
|
||||
--- a/net/mac80211/tx.c
|
||||
+++ b/net/mac80211/tx.c
|
||||
@@ -6260,7 +6260,13 @@ int ieee80211_tx_control_port(struct wip
|
||||
@@ -6262,7 +6262,13 @@ int ieee80211_tx_control_port(struct wip
|
||||
|
||||
start_xmit:
|
||||
local_bh_disable();
|
||||
|
||||
@@ -31,7 +31,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
|
||||
|
||||
--- a/include/net/cfg80211.h
|
||||
+++ b/include/net/cfg80211.h
|
||||
@@ -9701,4 +9701,15 @@ ssize_t wiphy_locked_debugfs_write(struc
|
||||
@@ -9766,4 +9766,15 @@ ssize_t wiphy_locked_debugfs_write(struc
|
||||
void *data);
|
||||
#endif
|
||||
|
||||
@@ -49,7 +49,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
|
||||
#endif /* __NET_CFG80211_H */
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -7561,6 +7561,20 @@ u32 ieee80211_calc_rx_airtime(struct iee
|
||||
@@ -7595,6 +7595,20 @@ u32 ieee80211_calc_rx_airtime(struct iee
|
||||
int len);
|
||||
|
||||
/**
|
||||
@@ -91,18 +91,18 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
|
||||
/* add new commands above here */
|
||||
|
||||
/* used to define NL80211_CMD_MAX below */
|
||||
@@ -2868,6 +2873,8 @@ enum nl80211_commands {
|
||||
* nested item, it contains attributes defined in
|
||||
* &enum nl80211_if_combination_attrs.
|
||||
@@ -2871,6 +2876,8 @@ enum nl80211_commands {
|
||||
* @NL80211_ATTR_VIF_RADIO_MASK: Bitmask of allowed radios (u32).
|
||||
* A value of 0 means all radios.
|
||||
*
|
||||
+ * @NL80211_ATTR_HE_MUEDCA_PARAMS: MU-EDCA AC parameters for the
|
||||
+ * %NL80211_CMD_UPDATE_HE_MUEDCA_PARAMS command.
|
||||
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||
@@ -3416,6 +3423,8 @@ enum nl80211_attrs {
|
||||
NL80211_ATTR_WIPHY_RADIOS,
|
||||
NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS,
|
||||
@@ -3421,6 +3428,8 @@ enum nl80211_attrs {
|
||||
|
||||
NL80211_ATTR_VIF_RADIO_MASK,
|
||||
|
||||
+ NL80211_ATTR_HE_MUEDCA_PARAMS,
|
||||
+
|
||||
@@ -111,7 +111,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
--- a/net/mac80211/mlme.c
|
||||
+++ b/net/mac80211/mlme.c
|
||||
@@ -9341,3 +9341,15 @@ void ieee80211_disable_rssi_reports(stru
|
||||
@@ -9339,3 +9339,15 @@ void ieee80211_disable_rssi_reports(stru
|
||||
_ieee80211_enable_rssi_reports(sdata, 0, 0);
|
||||
}
|
||||
EXPORT_SYMBOL(ieee80211_disable_rssi_reports);
|
||||
@@ -166,7 +166,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
|
||||
[NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA] = { .type = NLA_FLAG },
|
||||
[NL80211_ATTR_MLO_TTLM_DLINK] = NLA_POLICY_EXACT_LEN(sizeof(u16) * 8),
|
||||
[NL80211_ATTR_MLO_TTLM_ULINK] = NLA_POLICY_EXACT_LEN(sizeof(u16) * 8),
|
||||
@@ -20396,6 +20397,42 @@ void cfg80211_schedule_channels_check(st
|
||||
@@ -20447,6 +20448,42 @@ void cfg80211_schedule_channels_check(st
|
||||
}
|
||||
EXPORT_SYMBOL(cfg80211_schedule_channels_check);
|
||||
|
||||
@@ -211,7 +211,7 @@ Signed-off-by: Muna Sinada <msinada@codeaurora.org>
|
||||
int __init nl80211_init(void)
|
||||
--- a/net/wireless/trace.h
|
||||
+++ b/net/wireless/trace.h
|
||||
@@ -3975,6 +3975,46 @@ TRACE_EVENT(cfg80211_update_owe_info_eve
|
||||
@@ -3977,6 +3977,46 @@ TRACE_EVENT(cfg80211_update_owe_info_eve
|
||||
__entry->assoc_link_id, __entry->peer_mld_addr)
|
||||
);
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
/* misc utils */
|
||||
|
||||
static __le16 ieee80211_duration(struct ieee80211_tx_data *tx,
|
||||
@@ -4292,6 +4295,8 @@ void __ieee80211_subif_start_xmit(struct
|
||||
@@ -4294,6 +4297,8 @@ void __ieee80211_subif_start_xmit(struct
|
||||
struct sta_info *sta;
|
||||
struct sk_buff *next;
|
||||
int len = skb->len;
|
||||
@@ -38,7 +38,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
|
||||
if (unlikely(!ieee80211_sdata_running(sdata) || skb->len < ETH_HLEN)) {
|
||||
kfree_skb(skb);
|
||||
@@ -4313,6 +4318,19 @@ void __ieee80211_subif_start_xmit(struct
|
||||
@@ -4315,6 +4320,19 @@ void __ieee80211_subif_start_xmit(struct
|
||||
if (IS_ERR(sta))
|
||||
sta = NULL;
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
|
||||
extern const struct cfg80211_ops mac80211_config_ops;
|
||||
|
||||
@@ -1185,6 +1188,9 @@ struct ieee80211_sub_if_data {
|
||||
@@ -1184,6 +1187,9 @@ struct ieee80211_sub_if_data {
|
||||
struct dentry *default_beacon_key;
|
||||
} debugfs;
|
||||
#endif
|
||||
@@ -65,7 +65,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
/**
|
||||
* DOC: Interface list locking
|
||||
*
|
||||
@@ -774,6 +780,13 @@ static int ieee80211_stop(struct net_dev
|
||||
@@ -776,6 +782,13 @@ static int ieee80211_stop(struct net_dev
|
||||
ieee80211_stop_mbssid(sdata);
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
wiphy_lock(sdata->local->hw.wiphy);
|
||||
wiphy_work_cancel(sdata->local->hw.wiphy, &sdata->activate_links_work);
|
||||
|
||||
@@ -1219,6 +1232,34 @@ void ieee80211_del_virtual_monitor(struc
|
||||
@@ -1227,6 +1240,34 @@ void ieee80211_del_virtual_monitor(struc
|
||||
kfree(sdata);
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
/*
|
||||
* NOTE: Be very careful when changing this function, it must NOT return
|
||||
* an error on interface type changes that have been pre-checked, so most
|
||||
@@ -1446,6 +1487,21 @@ int ieee80211_do_open(struct wireless_de
|
||||
@@ -1457,6 +1498,21 @@ int ieee80211_do_open(struct wireless_de
|
||||
|
||||
ieee80211_recalc_ps(local);
|
||||
|
||||
@@ -138,7 +138,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
return 0;
|
||||
--- a/net/mac80211/rx.c
|
||||
+++ b/net/mac80211/rx.c
|
||||
@@ -2606,6 +2606,60 @@ static bool ieee80211_frame_allowed(stru
|
||||
@@ -2613,6 +2613,60 @@ static bool ieee80211_frame_allowed(stru
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
static void ieee80211_deliver_skb_to_local_stack(struct sk_buff *skb,
|
||||
struct ieee80211_rx_data *rx)
|
||||
{
|
||||
@@ -2645,11 +2699,15 @@ static void ieee80211_deliver_skb_to_loc
|
||||
@@ -2652,11 +2706,15 @@ static void ieee80211_deliver_skb_to_loc
|
||||
!ether_addr_equal(ehdr->h_dest, sdata->vif.addr)))
|
||||
ether_addr_copy(ehdr->h_dest, sdata->vif.addr);
|
||||
|
||||
@@ -217,7 +217,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
|
||||
--- a/net/mac80211/tx.c
|
||||
+++ b/net/mac80211/tx.c
|
||||
@@ -4525,6 +4525,35 @@ static void ieee80211_mlo_multicast_tx(s
|
||||
@@ -4527,6 +4527,35 @@ static void ieee80211_mlo_multicast_tx(s
|
||||
kfree_skb(skb);
|
||||
}
|
||||
|
||||
@@ -253,7 +253,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
/**
|
||||
* ieee80211_subif_start_xmit - netif start_xmit function for 802.3 vifs
|
||||
* @skb: packet to be sent
|
||||
@@ -4540,6 +4569,10 @@ netdev_tx_t ieee80211_subif_start_xmit(s
|
||||
@@ -4542,6 +4571,10 @@ netdev_tx_t ieee80211_subif_start_xmit(s
|
||||
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
|
||||
const struct ethhdr *eth = (void *)skb->data;
|
||||
|
||||
@@ -264,7 +264,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
if (likely(!is_multicast_ether_addr(eth->h_dest)))
|
||||
goto normal;
|
||||
|
||||
@@ -4729,6 +4762,9 @@ netdev_tx_t ieee80211_subif_start_xmit_8
|
||||
@@ -4731,6 +4764,9 @@ netdev_tx_t ieee80211_subif_start_xmit_8
|
||||
struct ieee80211_key *key;
|
||||
struct sta_info *sta;
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -5271,6 +5271,17 @@ void ieee80211_sta_pspoll(struct ieee802
|
||||
@@ -5289,6 +5289,17 @@ void ieee80211_sta_pspoll(struct ieee802
|
||||
*/
|
||||
void ieee80211_sta_uapsd_trigger(struct ieee80211_sta *sta, u8 tid);
|
||||
|
||||
@@ -41,7 +41,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
* This is enough for the radiotap header.
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -2208,7 +2208,13 @@ static int ieee80211_change_station(stru
|
||||
@@ -2217,7 +2217,13 @@ static int ieee80211_change_station(stru
|
||||
|
||||
rcu_assign_pointer(vlansdata->u.vlan.sta, sta);
|
||||
__ieee80211_check_fast_rx_iface(vlansdata);
|
||||
@@ -58,7 +58,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
|
||||
--- a/net/mac80211/driver-ops.c
|
||||
+++ b/net/mac80211/driver-ops.c
|
||||
@@ -62,10 +62,9 @@ int drv_add_interface(struct ieee80211_l
|
||||
@@ -62,11 +62,10 @@ int drv_add_interface(struct ieee80211_l
|
||||
might_sleep();
|
||||
lockdep_assert_wiphy(local->hw.wiphy);
|
||||
|
||||
@@ -66,6 +66,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
- (sdata->vif.type == NL80211_IFTYPE_MONITOR &&
|
||||
+ if (WARN_ON(sdata->vif.type == NL80211_IFTYPE_MONITOR &&
|
||||
!ieee80211_hw_check(&local->hw, WANT_MONITOR_VIF) &&
|
||||
!ieee80211_hw_check(&local->hw, NO_VIRTUAL_MONITOR) &&
|
||||
- !(sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE))))
|
||||
+ !(sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE)))
|
||||
return -EINVAL;
|
||||
@@ -83,7 +84,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
break;
|
||||
case NL80211_IFTYPE_MONITOR:
|
||||
if (local->monitors == 0)
|
||||
@@ -975,6 +978,7 @@ static bool ieee80211_iftype_supports_hd
|
||||
@@ -977,6 +980,7 @@ static bool ieee80211_iftype_supports_hd
|
||||
switch (iftype) {
|
||||
/* P2P GO and client are mapped to AP/STATION types */
|
||||
case NL80211_IFTYPE_AP:
|
||||
@@ -91,7 +92,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
case NL80211_IFTYPE_STATION:
|
||||
return true;
|
||||
default:
|
||||
@@ -1029,7 +1033,8 @@ static void ieee80211_set_vif_encap_ops(
|
||||
@@ -1031,7 +1035,8 @@ static void ieee80211_set_vif_encap_ops(
|
||||
struct ieee80211_sub_if_data *bss = sdata;
|
||||
bool enabled;
|
||||
|
||||
@@ -101,8 +102,8 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
if (!sdata->bss)
|
||||
return;
|
||||
|
||||
@@ -1355,10 +1360,17 @@ int ieee80211_do_open(struct wireless_de
|
||||
|
||||
@@ -1365,10 +1370,17 @@ int ieee80211_do_open(struct wireless_de
|
||||
(sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE);
|
||||
switch (sdata->vif.type) {
|
||||
case NL80211_IFTYPE_AP_VLAN:
|
||||
- /* no need to tell driver, but set carrier and chanctx */
|
||||
@@ -122,7 +123,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
netif_carrier_off(dev);
|
||||
--- a/net/mac80211/rx.c
|
||||
+++ b/net/mac80211/rx.c
|
||||
@@ -1683,6 +1683,12 @@ void ieee80211_sta_uapsd_trigger(struct
|
||||
@@ -1690,6 +1690,12 @@ void ieee80211_sta_uapsd_trigger(struct
|
||||
}
|
||||
EXPORT_SYMBOL(ieee80211_sta_uapsd_trigger);
|
||||
|
||||
@@ -137,7 +138,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
{
|
||||
--- a/net/mac80211/tx.c
|
||||
+++ b/net/mac80211/tx.c
|
||||
@@ -4319,8 +4319,11 @@ void __ieee80211_subif_start_xmit(struct
|
||||
@@ -4321,8 +4321,11 @@ void __ieee80211_subif_start_xmit(struct
|
||||
sta = NULL;
|
||||
|
||||
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
|
||||
@@ -151,7 +152,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
if (ap_sdata->vif.offload_flags & IEEE80211_OFFLOAD_ENCAP_ENABLED &&
|
||||
!is_multicast_ether_addr(skb->data)) {
|
||||
if (sta)
|
||||
@@ -4712,7 +4715,8 @@ static void ieee80211_8023_xmit(struct i
|
||||
@@ -4714,7 +4717,8 @@ static void ieee80211_8023_xmit(struct i
|
||||
|
||||
info->hw_queue = sdata->vif.hw_queue[queue];
|
||||
|
||||
@@ -173,29 +174,29 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
conf = rcu_dereference_protected(link->conf->chanctx_conf,
|
||||
lockdep_is_held(&local->hw.wiphy->mtx));
|
||||
if (conf) {
|
||||
@@ -1873,7 +1876,8 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
}
|
||||
|
||||
list_for_each_entry(sdata, &local->interfaces, list) {
|
||||
@@ -1876,7 +1879,8 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
if (sdata->vif.type == NL80211_IFTYPE_MONITOR &&
|
||||
!ieee80211_hw_check(&local->hw, NO_VIRTUAL_MONITOR))
|
||||
continue;
|
||||
- if (sdata->vif.type != NL80211_IFTYPE_AP_VLAN &&
|
||||
+ if ((sdata->vif.type != NL80211_IFTYPE_AP_VLAN ||
|
||||
+ ieee80211_hw_check(&local->hw, SUPPORTS_NSS_OFFLOAD)) &&
|
||||
sdata->vif.type != NL80211_IFTYPE_MONITOR &&
|
||||
ieee80211_sdata_running(sdata)) {
|
||||
res = drv_add_interface(local, sdata);
|
||||
@@ -1888,7 +1892,8 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
if (res) {
|
||||
list_for_each_entry_continue_reverse(sdata, &local->interfaces,
|
||||
list)
|
||||
if (WARN_ON(res))
|
||||
@@ -1893,7 +1897,8 @@ int ieee80211_reconfig(struct ieee80211_
|
||||
if (sdata->vif.type == NL80211_IFTYPE_MONITOR &&
|
||||
!ieee80211_hw_check(&local->hw, NO_VIRTUAL_MONITOR))
|
||||
continue;
|
||||
- if (sdata->vif.type != NL80211_IFTYPE_AP_VLAN &&
|
||||
+ if ((sdata->vif.type != NL80211_IFTYPE_AP_VLAN ||
|
||||
+ ieee80211_hw_check(&local->hw, SUPPORTS_NSS_OFFLOAD)) &&
|
||||
sdata->vif.type != NL80211_IFTYPE_MONITOR &&
|
||||
ieee80211_sdata_running(sdata))
|
||||
drv_remove_interface(local, sdata);
|
||||
}
|
||||
--- a/net/mac80211/mlme.c
|
||||
+++ b/net/mac80211/mlme.c
|
||||
@@ -5700,7 +5700,8 @@ static bool ieee80211_assoc_success(stru
|
||||
@@ -5698,7 +5698,8 @@ static bool ieee80211_assoc_success(stru
|
||||
* If we're using 4-addr mode, let the AP know that we're
|
||||
* doing so, so that it can create the STA VLAN on its side
|
||||
*/
|
||||
|
||||
@@ -24,7 +24,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -2228,6 +2228,8 @@ enum ieee80211_key_flags {
|
||||
@@ -2227,6 +2227,8 @@ enum ieee80211_key_flags {
|
||||
* @tx_pn: PN used for TX keys, may be used by the driver as well if it
|
||||
* needs to do software PN assignment by itself (e.g. due to TSO)
|
||||
* @flags: key flags, see &enum ieee80211_key_flags.
|
||||
@@ -33,7 +33,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
* @keyidx: the key index (0-3)
|
||||
* @keylen: key material length
|
||||
* @key: key material. For ALG_TKIP the key is encoded as a 256-bit (32 byte)
|
||||
@@ -2247,6 +2249,7 @@ struct ieee80211_key_conf {
|
||||
@@ -2246,6 +2248,7 @@ struct ieee80211_key_conf {
|
||||
u8 hw_key_idx;
|
||||
s8 keyidx;
|
||||
u16 flags;
|
||||
@@ -43,7 +43,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
u8 key[];
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -535,6 +535,7 @@ static int ieee80211_add_key(struct wiph
|
||||
@@ -540,6 +540,7 @@ static int ieee80211_add_key(struct wiph
|
||||
break;
|
||||
case NL80211_IFTYPE_AP:
|
||||
case NL80211_IFTYPE_AP_VLAN:
|
||||
@@ -53,7 +53,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
key->conf.flags |= IEEE80211_KEY_FLAG_RX_MGMT;
|
||||
--- a/net/mac80211/driver-ops.c
|
||||
+++ b/net/mac80211/driver-ops.c
|
||||
@@ -134,7 +134,11 @@ int drv_sta_state(struct ieee80211_local
|
||||
@@ -135,7 +135,11 @@ int drv_sta_state(struct ieee80211_local
|
||||
might_sleep();
|
||||
lockdep_assert_wiphy(local->hw.wiphy);
|
||||
|
||||
@@ -102,7 +102,7 @@ Signed-off-by: Sathishkumar Muruganandam <murugana@codeaurora.org>
|
||||
key->conf.cipher = cipher;
|
||||
--- a/net/mac80211/tx.c
|
||||
+++ b/net/mac80211/tx.c
|
||||
@@ -4671,16 +4671,25 @@ static void ieee80211_8023_xmit(struct i
|
||||
@@ -4673,16 +4673,25 @@ static void ieee80211_8023_xmit(struct i
|
||||
struct ieee80211_key *key, struct sk_buff *skb)
|
||||
{
|
||||
struct ieee80211_tx_info *info;
|
||||
|
||||
@@ -30,7 +30,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
struct ieee80211_local *local;
|
||||
--- a/net/mac80211/tx.c
|
||||
+++ b/net/mac80211/tx.c
|
||||
@@ -4700,19 +4700,21 @@ static void ieee80211_8023_xmit(struct i
|
||||
@@ -4702,19 +4702,21 @@ static void ieee80211_8023_xmit(struct i
|
||||
|
||||
ieee80211_aggr_check(sdata, sta, skb);
|
||||
|
||||
@@ -64,7 +64,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
}
|
||||
|
||||
skb = ieee80211_tx_skb_fixup(skb, ieee80211_sdata_netdev_features(sdata));
|
||||
@@ -4772,7 +4774,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
|
||||
@@ -4774,7 +4776,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
|
||||
{
|
||||
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
|
||||
struct ethhdr *ehdr = (struct ethhdr *)skb->data;
|
||||
@@ -73,7 +73,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
struct sta_info *sta;
|
||||
|
||||
#ifdef CPTCFG_MAC80211_NSS_SUPPORT
|
||||
@@ -4790,9 +4792,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
|
||||
@@ -4792,9 +4794,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
goto skip_offload;
|
||||
|
||||
key = rcu_dereference(sta->ptk[sta->ptk_idx]);
|
||||
@@ -4803,6 +4809,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
|
||||
@@ -4805,6 +4811,7 @@ netdev_tx_t ieee80211_subif_start_xmit_8
|
||||
goto skip_offload;
|
||||
|
||||
sk_pacing_shift_update(skb->sk, sdata->local->hw.tx_sk_pacing_shift);
|
||||
@@ -98,7 +98,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
ieee80211_8023_xmit(sdata, dev, sta, key, skb);
|
||||
goto out;
|
||||
|
||||
@@ -6327,13 +6334,7 @@ int ieee80211_tx_control_port(struct wip
|
||||
@@ -6329,13 +6336,7 @@ int ieee80211_tx_control_port(struct wip
|
||||
|
||||
start_xmit:
|
||||
local_bh_disable();
|
||||
|
||||
@@ -96,7 +96,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1860,6 +1878,7 @@ struct ieee80211_channel_switch {
|
||||
@@ -1856,6 +1874,7 @@ struct ieee80211_channel_switch {
|
||||
* operation on this interface and request a channel context without
|
||||
* the AP definition. Use this e.g. because the device is able to
|
||||
* handle OFDMA (downlink and trigger for uplink) on a per-AP basis.
|
||||
@@ -104,7 +104,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
*/
|
||||
enum ieee80211_vif_flags {
|
||||
IEEE80211_VIF_BEACON_FILTER = BIT(0),
|
||||
@@ -1868,6 +1887,7 @@ enum ieee80211_vif_flags {
|
||||
@@ -1864,6 +1883,7 @@ enum ieee80211_vif_flags {
|
||||
IEEE80211_VIF_GET_NOA_UPDATE = BIT(3),
|
||||
IEEE80211_VIF_EML_ACTIVE = BIT(4),
|
||||
IEEE80211_VIF_IGNORE_OFDMA_WIDER_BW = BIT(5),
|
||||
@@ -112,7 +112,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
};
|
||||
|
||||
|
||||
@@ -2917,6 +2937,7 @@ enum ieee80211_hw_flags {
|
||||
@@ -2922,6 +2942,7 @@ enum ieee80211_hw_flags {
|
||||
IEEE80211_HW_DISALLOW_PUNCTURING_5GHZ,
|
||||
IEEE80211_HW_HANDLES_QUIET_CSA,
|
||||
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
|
||||
@@ -120,7 +120,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
|
||||
/* keep last, obviously */
|
||||
NUM_IEEE80211_HW_FLAGS
|
||||
@@ -4425,6 +4446,8 @@ struct ieee80211_prep_tx_info {
|
||||
@@ -4443,6 +4464,8 @@ struct ieee80211_prep_tx_info {
|
||||
* @set_sar_specs: Update the SAR (TX power) settings.
|
||||
* @sta_set_decap_offload: Called to notify the driver when a station is allowed
|
||||
* to use rx decapsulation offload
|
||||
@@ -129,7 +129,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
* @add_twt_setup: Update hw with TWT agreement parameters received from the peer.
|
||||
* This callback allows the hw to check if requested parameters
|
||||
* are supported and if there is enough room for a new agreement.
|
||||
@@ -4819,6 +4842,12 @@ struct ieee80211_ops {
|
||||
@@ -4837,6 +4860,12 @@ struct ieee80211_ops {
|
||||
void (*sta_set_decap_offload)(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif,
|
||||
struct ieee80211_sta *sta, bool enabled);
|
||||
@@ -142,7 +142,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
void (*add_twt_setup)(struct ieee80211_hw *hw,
|
||||
struct ieee80211_sta *sta,
|
||||
struct ieee80211_twt_setup *twt);
|
||||
@@ -7726,4 +7755,100 @@ int ieee80211_emulate_switch_vif_chanctx
|
||||
@@ -7760,4 +7789,100 @@ int ieee80211_emulate_switch_vif_chanctx
|
||||
int n_vifs,
|
||||
enum ieee80211_chanctx_switch_mode mode);
|
||||
|
||||
@@ -245,7 +245,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
#endif /* MAC80211_H */
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -2538,6 +2538,7 @@ static int ieee80211_update_mesh_config(
|
||||
@@ -2547,6 +2547,7 @@ static int ieee80211_update_mesh_config(
|
||||
struct mesh_config *conf;
|
||||
struct ieee80211_sub_if_data *sdata;
|
||||
struct ieee80211_if_mesh *ifmsh;
|
||||
@@ -253,7 +253,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
|
||||
sdata = IEEE80211_DEV_TO_SUB_IF(dev);
|
||||
ifmsh = &sdata->u.mesh;
|
||||
@@ -2554,8 +2555,11 @@ static int ieee80211_update_mesh_config(
|
||||
@@ -2563,8 +2564,11 @@ static int ieee80211_update_mesh_config(
|
||||
conf->dot11MeshMaxPeerLinks = nconf->dot11MeshMaxPeerLinks;
|
||||
if (_chg_mesh_attr(NL80211_MESHCONF_MAX_RETRIES, mask))
|
||||
conf->dot11MeshMaxRetries = nconf->dot11MeshMaxRetries;
|
||||
@@ -266,7 +266,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
if (_chg_mesh_attr(NL80211_MESHCONF_ELEMENT_TTL, mask))
|
||||
conf->element_ttl = nconf->element_ttl;
|
||||
if (_chg_mesh_attr(NL80211_MESHCONF_AUTO_OPEN_PLINKS, mask)) {
|
||||
@@ -2569,8 +2573,12 @@ static int ieee80211_update_mesh_config(
|
||||
@@ -2578,8 +2582,12 @@ static int ieee80211_update_mesh_config(
|
||||
if (_chg_mesh_attr(NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES, mask))
|
||||
conf->dot11MeshHWMPmaxPREQretries =
|
||||
nconf->dot11MeshHWMPmaxPREQretries;
|
||||
@@ -280,7 +280,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
if (_chg_mesh_attr(NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT, mask))
|
||||
conf->min_discovery_timeout = nconf->min_discovery_timeout;
|
||||
if (_chg_mesh_attr(NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT, mask))
|
||||
@@ -2605,8 +2613,12 @@ static int ieee80211_update_mesh_config(
|
||||
@@ -2614,8 +2622,12 @@ static int ieee80211_update_mesh_config(
|
||||
if (_chg_mesh_attr(NL80211_MESHCONF_HWMP_RANN_INTERVAL, mask))
|
||||
conf->dot11MeshHWMPRannInterval =
|
||||
nconf->dot11MeshHWMPRannInterval;
|
||||
@@ -294,7 +294,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
if (_chg_mesh_attr(NL80211_MESHCONF_RSSI_THRESHOLD, mask)) {
|
||||
/* our RSSI threshold implementation is supported only for
|
||||
* devices that report signal in dBm.
|
||||
@@ -2648,6 +2660,7 @@ static int ieee80211_update_mesh_config(
|
||||
@@ -2657,6 +2669,7 @@ static int ieee80211_update_mesh_config(
|
||||
conf->dot11MeshConnectedToAuthServer =
|
||||
nconf->dot11MeshConnectedToAuthServer;
|
||||
ieee80211_mbss_info_change_notify(sdata, BSS_CHANGED_BEACON);
|
||||
@@ -330,7 +330,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
sdata, fmt, ##__VA_ARGS__)
|
||||
--- a/net/mac80211/debugfs.c
|
||||
+++ b/net/mac80211/debugfs.c
|
||||
@@ -509,6 +509,7 @@ static const char *hw_flag_names[] = {
|
||||
@@ -510,6 +510,7 @@ static const char *hw_flag_names[] = {
|
||||
FLAG(DISALLOW_PUNCTURING_5GHZ),
|
||||
FLAG(HANDLES_QUIET_CSA),
|
||||
FLAG(SUPPORTS_NSS_OFFLOAD),
|
||||
@@ -340,7 +340,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
|
||||
--- a/net/mac80211/driver-ops.c
|
||||
+++ b/net/mac80211/driver-ops.c
|
||||
@@ -621,3 +621,23 @@ int drv_change_sta_links(struct ieee8021
|
||||
@@ -622,3 +622,23 @@ int drv_change_sta_links(struct ieee8021
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1160,7 +1160,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
void mesh_pathtbl_unregister(struct ieee80211_sub_if_data *sdata)
|
||||
--- a/net/mac80211/tx.c
|
||||
+++ b/net/mac80211/tx.c
|
||||
@@ -2628,7 +2628,7 @@ static struct sk_buff *ieee80211_build_h
|
||||
@@ -2629,7 +2629,7 @@ static struct sk_buff *ieee80211_build_h
|
||||
bool multicast;
|
||||
u16 info_id = 0;
|
||||
struct ieee80211_chanctx_conf *chanctx_conf = NULL;
|
||||
@@ -1169,7 +1169,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
int ret;
|
||||
u8 link_id = u32_get_bits(ctrl_flags, IEEE80211_TX_CTRL_MLO_LINK);
|
||||
|
||||
@@ -2640,6 +2640,9 @@ static struct sk_buff *ieee80211_build_h
|
||||
@@ -2641,6 +2641,9 @@ static struct sk_buff *ieee80211_build_h
|
||||
info_flags |= IEEE80211_TX_CTL_REQ_TX_STATUS;
|
||||
#endif
|
||||
|
||||
@@ -1179,7 +1179,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
/* convert Ethernet header to proper 802.11 header (based on
|
||||
* operation mode) */
|
||||
ethertype = (skb->data[12] << 8) | skb->data[13];
|
||||
@@ -2710,6 +2713,13 @@ static struct sk_buff *ieee80211_build_h
|
||||
@@ -2711,6 +2714,13 @@ static struct sk_buff *ieee80211_build_h
|
||||
break;
|
||||
#ifdef CPTCFG_MAC80211_MESH
|
||||
case NL80211_IFTYPE_MESH_POINT:
|
||||
@@ -1193,7 +1193,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
if (!is_multicast_ether_addr(skb->data)) {
|
||||
struct sta_info *next_hop;
|
||||
bool mpp_lookup = true;
|
||||
@@ -2973,6 +2983,9 @@ static struct sk_buff *ieee80211_build_h
|
||||
@@ -2974,6 +2984,9 @@ static struct sk_buff *ieee80211_build_h
|
||||
|
||||
skb_reset_mac_header(skb);
|
||||
|
||||
@@ -1203,7 +1203,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
info = IEEE80211_SKB_CB(skb);
|
||||
memset(info, 0, sizeof(*info));
|
||||
|
||||
@@ -4296,6 +4309,7 @@ void __ieee80211_subif_start_xmit(struct
|
||||
@@ -4298,6 +4311,7 @@ void __ieee80211_subif_start_xmit(struct
|
||||
struct sk_buff *next;
|
||||
int len = skb->len;
|
||||
struct ieee80211_key *key = NULL;
|
||||
@@ -1211,7 +1211,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
struct ieee80211_sub_if_data *ap_sdata;
|
||||
|
||||
if (unlikely(!ieee80211_sdata_running(sdata) || skb->len < ETH_HLEN)) {
|
||||
@@ -4370,9 +4384,15 @@ void __ieee80211_subif_start_xmit(struct
|
||||
@@ -4372,9 +4386,15 @@ void __ieee80211_subif_start_xmit(struct
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -2877,6 +2877,8 @@ struct ieee80211_txq {
|
||||
@@ -2881,6 +2881,8 @@ struct ieee80211_txq {
|
||||
*
|
||||
* @IEEE80211_HW_SUPPORTS_NSS_OFFLOAD: Hardware/driver supports NSS offload
|
||||
*
|
||||
@@ -25,7 +25,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
|
||||
*/
|
||||
enum ieee80211_hw_flags {
|
||||
@@ -2938,6 +2940,7 @@ enum ieee80211_hw_flags {
|
||||
@@ -2943,6 +2945,7 @@ enum ieee80211_hw_flags {
|
||||
IEEE80211_HW_HANDLES_QUIET_CSA,
|
||||
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
|
||||
IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD,
|
||||
@@ -35,7 +35,7 @@ Signed-off-by: Gautham Kumar Senthilkumaran <quic_gauthamk@quicinc.com>
|
||||
NUM_IEEE80211_HW_FLAGS
|
||||
--- a/net/mac80211/debugfs.c
|
||||
+++ b/net/mac80211/debugfs.c
|
||||
@@ -510,6 +510,7 @@ static const char *hw_flag_names[] = {
|
||||
@@ -511,6 +511,7 @@ static const char *hw_flag_names[] = {
|
||||
FLAG(HANDLES_QUIET_CSA),
|
||||
FLAG(SUPPORTS_NSS_OFFLOAD),
|
||||
FLAG(SUPPORTS_MESH_NSS_OFFLOAD),
|
||||
|
||||
@@ -14,7 +14,7 @@ Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
|
||||
|
||||
--- a/net/mac80211/tx.c
|
||||
+++ b/net/mac80211/tx.c
|
||||
@@ -4789,6 +4789,67 @@ out_free:
|
||||
@@ -4791,6 +4791,67 @@ out_free:
|
||||
kfree_skb(skb);
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
|
||||
netdev_tx_t ieee80211_subif_start_xmit_8023(struct sk_buff *skb,
|
||||
struct net_device *dev)
|
||||
{
|
||||
@@ -4828,6 +4889,11 @@ netdev_tx_t ieee80211_subif_start_xmit_8
|
||||
@@ -4830,6 +4891,11 @@ netdev_tx_t ieee80211_subif_start_xmit_8
|
||||
if (key && (!(key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE)))
|
||||
goto skip_offload;
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
|
||||
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -1761,6 +1761,8 @@ static void sta_apply_mesh_params(struct
|
||||
@@ -1770,6 +1770,8 @@ static void sta_apply_mesh_params(struct
|
||||
/* init at low value */
|
||||
ewma_mesh_tx_rate_avg_add(&sta->mesh->tx_rate_avg, 10);
|
||||
|
||||
@@ -29,7 +29,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
|
||||
break;
|
||||
case NL80211_PLINK_LISTEN:
|
||||
case NL80211_PLINK_BLOCKED:
|
||||
@@ -1775,6 +1777,7 @@ static void sta_apply_mesh_params(struct
|
||||
@@ -1784,6 +1786,7 @@ static void sta_apply_mesh_params(struct
|
||||
ieee80211_mps_sta_status_update(sta);
|
||||
changed |= ieee80211_mps_set_sta_local_pm(sta,
|
||||
NL80211_MESH_POWER_UNKNOWN);
|
||||
@@ -94,7 +94,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
|
||||
if (action) {
|
||||
--- a/net/mac80211/rx.c
|
||||
+++ b/net/mac80211/rx.c
|
||||
@@ -4717,10 +4717,15 @@ void ieee80211_check_fast_rx(struct sta_
|
||||
@@ -4724,10 +4724,15 @@ void ieee80211_check_fast_rx(struct sta_
|
||||
|
||||
break;
|
||||
case NL80211_IFTYPE_MESH_POINT:
|
||||
@@ -112,7 +112,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
|
||||
break;
|
||||
default:
|
||||
goto clear;
|
||||
@@ -4761,7 +4766,7 @@ void ieee80211_check_fast_rx(struct sta_
|
||||
@@ -4768,7 +4773,7 @@ void ieee80211_check_fast_rx(struct sta_
|
||||
__release(check_fast_rx);
|
||||
|
||||
if (assign)
|
||||
@@ -121,7 +121,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
|
||||
|
||||
offload_flags = get_bss_sdata(sdata)->vif.offload_flags;
|
||||
offload = offload_flags & IEEE80211_OFFLOAD_DECAP_ENABLED;
|
||||
@@ -4943,6 +4948,10 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
@@ -4950,6 +4955,10 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
u8 sa[ETH_ALEN];
|
||||
} addrs __aligned(2);
|
||||
struct ieee80211_sta_rx_stats *stats;
|
||||
@@ -132,7 +132,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
|
||||
|
||||
/* for parallel-rx, we need to have DUP_VALIDATED, otherwise we write
|
||||
* to a common data structure; drivers can implement that per queue
|
||||
@@ -4992,6 +5001,37 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
@@ -4999,6 +5008,37 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
snap_offs += IEEE80211_CCMP_HDR_LEN;
|
||||
}
|
||||
|
||||
@@ -170,7 +170,7 @@ Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
|
||||
if (!ieee80211_vif_is_mesh(&rx->sdata->vif) &&
|
||||
!(status->rx_flags & IEEE80211_RX_AMSDU)) {
|
||||
if (!pskb_may_pull(skb, snap_offs + sizeof(*payload)))
|
||||
@@ -5029,9 +5069,33 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
@@ -5036,9 +5076,33 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
|
||||
--- a/net/mac80211/tx.c
|
||||
+++ b/net/mac80211/tx.c
|
||||
@@ -4720,7 +4720,7 @@ static void ieee80211_8023_xmit(struct i
|
||||
@@ -4722,7 +4722,7 @@ static void ieee80211_8023_xmit(struct i
|
||||
|
||||
ieee80211_aggr_check(sdata, sta, skb);
|
||||
|
||||
@@ -42,7 +42,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
tid = skb->priority & IEEE80211_QOS_CTL_TAG1D_MASK;
|
||||
tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[tid]);
|
||||
if (tid_tx) {
|
||||
@@ -4774,7 +4774,7 @@ static void ieee80211_8023_xmit(struct i
|
||||
@@ -4776,7 +4776,7 @@ static void ieee80211_8023_xmit(struct i
|
||||
}
|
||||
|
||||
dev_sw_netstats_tx_add(dev, skbs, len);
|
||||
|
||||
@@ -21,7 +21,7 @@ Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com>
|
||||
|
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -1013,7 +1013,8 @@ static bool ieee80211_set_sdata_offload_
|
||||
@@ -1015,7 +1015,8 @@ static bool ieee80211_set_sdata_offload_
|
||||
flags |= IEEE80211_OFFLOAD_DECAP_ENABLED;
|
||||
|
||||
if (local->monitors &&
|
||||
|
||||
@@ -1,29 +1,6 @@
|
||||
From 11d0cce62afc157468e1d97ea80a2510091ea2c2 Mon Sep 17 00:00:00 2001
|
||||
From: P Praneesh <quic_ppranees@quicinc.com>
|
||||
Date: Fri, 1 Jul 2022 11:57:00 +0530
|
||||
Subject: [PATCH] mac80211: Remove unused RX_FLAGS from mac80211_rx_flags
|
||||
|
||||
Remove unused RX_FLAG_AMPDU_DELIM_CRC_KNOWN flag from
|
||||
mac80211_rx_flags to provide space for new EHT flags.
|
||||
|
||||
Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
|
||||
---
|
||||
include/net/mac80211.h | 33 +++++++++++++++------------------
|
||||
net/mac80211/rx.c | 7 +------
|
||||
2 files changed, 16 insertions(+), 24 deletions(-)
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -1482,8 +1482,6 @@ ieee80211_tx_info_clear_status(struct ie
|
||||
* @RX_FLAG_AMPDU_IS_LAST: this subframe is the last subframe of the A-MPDU
|
||||
* @RX_FLAG_AMPDU_DELIM_CRC_ERROR: A delimiter CRC error has been detected
|
||||
* on this subframe
|
||||
- * @RX_FLAG_AMPDU_DELIM_CRC_KNOWN: The delimiter CRC field is known (the CRC
|
||||
- * is stored in the @ampdu_delimiter_crc field)
|
||||
* @RX_FLAG_MIC_STRIPPED: The mic was stripped of this packet. Decryption was
|
||||
* done by the hardware
|
||||
* @RX_FLAG_ONLY_MONITOR: Report frame only to monitor interfaces without
|
||||
@@ -1540,39 +1538,38 @@ ieee80211_tx_info_clear_status(struct ie
|
||||
@@ -1538,39 +1538,38 @@ ieee80211_tx_info_clear_status(struct ie
|
||||
* hardware or driver)
|
||||
*/
|
||||
enum mac80211_rx_flags {
|
||||
@@ -42,7 +19,7 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
|
||||
- RX_FLAG_AMPDU_LAST_KNOWN = BIT(12),
|
||||
- RX_FLAG_AMPDU_IS_LAST = BIT(13),
|
||||
- RX_FLAG_AMPDU_DELIM_CRC_ERROR = BIT(14),
|
||||
- RX_FLAG_AMPDU_DELIM_CRC_KNOWN = BIT(15),
|
||||
- /* one free bit at 15 */
|
||||
- RX_FLAG_MACTIME = BIT(16) | BIT(17),
|
||||
- RX_FLAG_MACTIME_PLCP_START = 1 << 16,
|
||||
- RX_FLAG_MACTIME_START = 2 << 16,
|
||||
@@ -95,25 +72,3 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
|
||||
};
|
||||
|
||||
/**
|
||||
--- a/net/mac80211/rx.c
|
||||
+++ b/net/mac80211/rx.c
|
||||
@@ -508,18 +508,13 @@ ieee80211_add_rx_radiotap_header(struct
|
||||
flags |= IEEE80211_RADIOTAP_AMPDU_IS_LAST;
|
||||
if (status->flag & RX_FLAG_AMPDU_DELIM_CRC_ERROR)
|
||||
flags |= IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_ERR;
|
||||
- if (status->flag & RX_FLAG_AMPDU_DELIM_CRC_KNOWN)
|
||||
- flags |= IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_KNOWN;
|
||||
if (status->flag & RX_FLAG_AMPDU_EOF_BIT_KNOWN)
|
||||
flags |= IEEE80211_RADIOTAP_AMPDU_EOF_KNOWN;
|
||||
if (status->flag & RX_FLAG_AMPDU_EOF_BIT)
|
||||
flags |= IEEE80211_RADIOTAP_AMPDU_EOF;
|
||||
put_unaligned_le16(flags, pos);
|
||||
pos += 2;
|
||||
- if (status->flag & RX_FLAG_AMPDU_DELIM_CRC_KNOWN)
|
||||
- *pos++ = status->ampdu_delimiter_crc;
|
||||
- else
|
||||
- *pos++ = 0;
|
||||
+ *pos++ = 0;
|
||||
*pos++ = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
|
||||
/* misc utils */
|
||||
|
||||
static __le16 ieee80211_duration(struct ieee80211_tx_data *tx,
|
||||
@@ -4342,7 +4343,7 @@ void __ieee80211_subif_start_xmit(struct
|
||||
@@ -4344,7 +4345,7 @@ void __ieee80211_subif_start_xmit(struct
|
||||
!is_multicast_ether_addr(skb->data)) {
|
||||
if (sta)
|
||||
key = rcu_dereference(sta->ptk[sta->ptk_idx]);
|
||||
@@ -53,7 +53,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
|
||||
rcu_read_unlock();
|
||||
return;
|
||||
}
|
||||
@@ -4388,7 +4389,7 @@ void __ieee80211_subif_start_xmit(struct
|
||||
@@ -4390,7 +4391,7 @@ void __ieee80211_subif_start_xmit(struct
|
||||
if (info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) {
|
||||
if (sta)
|
||||
key = rcu_dereference(sta->ptk[sta->ptk_idx]);
|
||||
@@ -62,7 +62,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
|
||||
} else {
|
||||
dev_sw_netstats_tx_add(dev, 1, skb->len);
|
||||
ieee80211_xmit(sdata, sta, skb);
|
||||
@@ -4688,7 +4689,8 @@ static bool ieee80211_tx_8023(struct iee
|
||||
@@ -4690,7 +4691,8 @@ static bool ieee80211_tx_8023(struct iee
|
||||
|
||||
static void ieee80211_8023_xmit(struct ieee80211_sub_if_data *sdata,
|
||||
struct net_device *dev, struct sta_info *sta,
|
||||
@@ -72,7 +72,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
|
||||
{
|
||||
struct ieee80211_tx_info *info;
|
||||
struct ethhdr *ehdr = (struct ethhdr *)skb->data;
|
||||
@@ -4744,6 +4746,7 @@ static void ieee80211_8023_xmit(struct i
|
||||
@@ -4746,6 +4748,7 @@ static void ieee80211_8023_xmit(struct i
|
||||
info = IEEE80211_SKB_CB(skb);
|
||||
memset(info, 0, sizeof(*info));
|
||||
|
||||
@@ -80,7 +80,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
|
||||
info->hw_queue = sdata->vif.hw_queue[queue];
|
||||
|
||||
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
|
||||
@@ -4764,11 +4767,12 @@ static void ieee80211_8023_xmit(struct i
|
||||
@@ -4766,11 +4769,12 @@ static void ieee80211_8023_xmit(struct i
|
||||
memcpy(IEEE80211_SKB_CB(seg), info, sizeof(*info));
|
||||
}
|
||||
|
||||
@@ -96,7 +96,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
|
||||
if (info->status_data)
|
||||
info->status_data_idr = 1;
|
||||
}
|
||||
@@ -4791,7 +4795,8 @@ out_free:
|
||||
@@ -4793,7 +4797,8 @@ out_free:
|
||||
|
||||
void ieee80211_8023_xmit_ap(struct ieee80211_sub_if_data *sdata,
|
||||
struct net_device *dev, struct sta_info *sta,
|
||||
@@ -106,7 +106,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
|
||||
{
|
||||
struct ieee80211_tx_info *info;
|
||||
struct ieee80211_local *local = sdata->local;
|
||||
@@ -4800,6 +4805,9 @@ void ieee80211_8023_xmit_ap(struct ieee8
|
||||
@@ -4802,6 +4807,9 @@ void ieee80211_8023_xmit_ap(struct ieee8
|
||||
unsigned long flags;
|
||||
int q;
|
||||
u16 q_map;
|
||||
@@ -116,7 +116,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
|
||||
|
||||
/*
|
||||
* If the skb is shared we need to obtain our own copy.
|
||||
@@ -4811,11 +4819,13 @@ void ieee80211_8023_xmit_ap(struct ieee8
|
||||
@@ -4813,11 +4821,13 @@ void ieee80211_8023_xmit_ap(struct ieee8
|
||||
|
||||
info = IEEE80211_SKB_CB(skb);
|
||||
memset(info, 0, sizeof(*info));
|
||||
@@ -133,7 +133,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
|
||||
|
||||
info->flags |= IEEE80211_TX_CTL_HW_80211_ENCAP;
|
||||
info->control.vif = &sdata->vif;
|
||||
@@ -4849,14 +4859,23 @@ void ieee80211_8023_xmit_ap(struct ieee8
|
||||
@@ -4851,14 +4861,23 @@ void ieee80211_8023_xmit_ap(struct ieee8
|
||||
drv_tx(local, &control, skb);
|
||||
|
||||
}
|
||||
@@ -158,7 +158,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
|
||||
|
||||
#ifdef CPTCFG_MAC80211_NSS_SUPPORT
|
||||
ieee80211_xmit_nss_fixup(skb, dev);
|
||||
@@ -4872,14 +4891,15 @@ netdev_tx_t ieee80211_subif_start_xmit_8
|
||||
@@ -4874,14 +4893,15 @@ netdev_tx_t ieee80211_subif_start_xmit_8
|
||||
kfree_skb(skb);
|
||||
goto out;
|
||||
}
|
||||
@@ -176,7 +176,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
|
||||
goto skip_offload;
|
||||
|
||||
key = rcu_dereference(sta->ptk[sta->ptk_idx]);
|
||||
@@ -4890,13 +4910,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
|
||||
@@ -4892,13 +4912,13 @@ netdev_tx_t ieee80211_subif_start_xmit_8
|
||||
goto skip_offload;
|
||||
|
||||
if (sdata->vif.type == NL80211_IFTYPE_AP) {
|
||||
@@ -192,7 +192,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
|
||||
goto out;
|
||||
|
||||
skip_offload:
|
||||
@@ -6420,7 +6440,10 @@ int ieee80211_tx_control_port(struct wip
|
||||
@@ -6422,7 +6442,10 @@ int ieee80211_tx_control_port(struct wip
|
||||
|
||||
start_xmit:
|
||||
local_bh_disable();
|
||||
|
||||
@@ -72,7 +72,7 @@ Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
|
||||
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -2365,7 +2365,7 @@ static void mpath_set_pinfo(struct mesh_
|
||||
@@ -2374,7 +2374,7 @@ static void mpath_set_pinfo(struct mesh_
|
||||
if (mpath->flags & MESH_PATH_RESOLVED)
|
||||
pinfo->flags |= NL80211_MPATH_FLAG_RESOLVED;
|
||||
pinfo->hop_count = mpath->hop_count;
|
||||
|
||||
@@ -31,7 +31,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
|
||||
static void ieee80211_8023_xmit(struct ieee80211_sub_if_data *sdata,
|
||||
struct net_device *dev, struct sta_info *sta,
|
||||
struct ieee80211_key *key, struct sk_buff *skb,
|
||||
@@ -3656,7 +3658,7 @@ ieee80211_sdata_netdev_features(struct i
|
||||
@@ -3657,7 +3659,7 @@ ieee80211_sdata_netdev_features(struct i
|
||||
}
|
||||
|
||||
static struct sk_buff *
|
||||
@@ -40,7 +40,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
|
||||
{
|
||||
if (skb_is_gso(skb)) {
|
||||
struct sk_buff *segs;
|
||||
@@ -3674,7 +3676,7 @@ ieee80211_tx_skb_fixup(struct sk_buff *s
|
||||
@@ -3675,7 +3677,7 @@ ieee80211_tx_skb_fixup(struct sk_buff *s
|
||||
if (skb_needs_linearize(skb, features) && __skb_linearize(skb))
|
||||
goto free;
|
||||
|
||||
@@ -49,7 +49,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
|
||||
int ofs = skb_checksum_start_offset(skb);
|
||||
|
||||
if (skb->encapsulation)
|
||||
@@ -3820,7 +3822,7 @@ static bool ieee80211_xmit_fast(struct i
|
||||
@@ -3821,7 +3823,7 @@ static bool ieee80211_xmit_fast(struct i
|
||||
memcpy(ð, skb->data, ETH_HLEN - 2);
|
||||
|
||||
/* after this point (skb is modified) we cannot return false */
|
||||
@@ -58,7 +58,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
|
||||
if (!skb)
|
||||
return true;
|
||||
|
||||
@@ -4366,7 +4368,7 @@ void __ieee80211_subif_start_xmit(struct
|
||||
@@ -4368,7 +4370,7 @@ void __ieee80211_subif_start_xmit(struct
|
||||
* things so we cannot really handle checksum or GSO offload.
|
||||
* fix it up in software before we handle anything else.
|
||||
*/
|
||||
@@ -67,7 +67,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
|
||||
if (!skb) {
|
||||
len = 0;
|
||||
goto out;
|
||||
@@ -4739,7 +4741,7 @@ static void ieee80211_8023_xmit(struct i
|
||||
@@ -4741,7 +4743,7 @@ static void ieee80211_8023_xmit(struct i
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
|
||||
|
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -2259,6 +2259,10 @@ int ieee80211_if_add(struct ieee80211_lo
|
||||
@@ -2270,6 +2270,10 @@ int ieee80211_if_add(struct ieee80211_lo
|
||||
|
||||
ndev->features |= local->hw.netdev_features;
|
||||
ndev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
|
||||
|
||||
@@ -23,7 +23,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -2876,6 +2876,9 @@ struct ieee80211_txq {
|
||||
@@ -2882,6 +2882,9 @@ struct ieee80211_txq {
|
||||
*
|
||||
* @IEEE80211_HW_SUPPORTS_TID_CLASS_OFFLOAD: Hardware suports tid calssification offload.
|
||||
*
|
||||
@@ -33,7 +33,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
|
||||
* @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays
|
||||
*/
|
||||
enum ieee80211_hw_flags {
|
||||
@@ -2938,6 +2941,7 @@ enum ieee80211_hw_flags {
|
||||
@@ -2945,6 +2948,7 @@ enum ieee80211_hw_flags {
|
||||
IEEE80211_HW_SUPPORTS_NSS_OFFLOAD,
|
||||
IEEE80211_HW_SUPPORTS_MESH_NSS_OFFLOAD,
|
||||
IEEE80211_HW_SUPPORTS_TID_CLASS_OFFLOAD,
|
||||
@@ -43,7 +43,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
|
||||
NUM_IEEE80211_HW_FLAGS
|
||||
--- a/net/mac80211/debugfs.c
|
||||
+++ b/net/mac80211/debugfs.c
|
||||
@@ -511,6 +511,7 @@ static const char *hw_flag_names[] = {
|
||||
@@ -512,6 +512,7 @@ static const char *hw_flag_names[] = {
|
||||
FLAG(SUPPORTS_NSS_OFFLOAD),
|
||||
FLAG(SUPPORTS_MESH_NSS_OFFLOAD),
|
||||
FLAG(SUPPORTS_TID_CLASS_OFFLOAD),
|
||||
@@ -83,7 +83,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
|
||||
return false;
|
||||
|
||||
if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
|
||||
@@ -4351,7 +4358,8 @@ void __ieee80211_subif_start_xmit(struct
|
||||
@@ -4353,7 +4360,8 @@ void __ieee80211_subif_start_xmit(struct
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
|
||||
ieee80211_aggr_check(sdata, sta, skb);
|
||||
|
||||
if (sta) {
|
||||
@@ -4705,8 +4713,10 @@ static void ieee80211_8023_xmit(struct i
|
||||
@@ -4707,8 +4715,10 @@ static void ieee80211_8023_xmit(struct i
|
||||
bool multicast;
|
||||
u8 tid;
|
||||
|
||||
@@ -106,7 +106,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
|
||||
|
||||
multicast = is_multicast_ether_addr(ra);
|
||||
|
||||
@@ -6427,9 +6437,12 @@ int ieee80211_tx_control_port(struct wip
|
||||
@@ -6429,9 +6439,12 @@ int ieee80211_tx_control_port(struct wip
|
||||
}
|
||||
|
||||
if (!IS_ERR(sta)) {
|
||||
@@ -123,7 +123,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
|
||||
* for MLO STA, the SA should be the AP MLD address, but
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -4584,6 +4584,9 @@ static int ieee80211_get_txq_stats(struc
|
||||
@@ -4601,6 +4601,9 @@ static int ieee80211_get_txq_stats(struc
|
||||
struct ieee80211_sub_if_data *sdata;
|
||||
int ret = 0;
|
||||
|
||||
@@ -135,7 +135,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
|
||||
|
||||
--- a/net/mac80211/main.c
|
||||
+++ b/net/mac80211/main.c
|
||||
@@ -1001,7 +1001,10 @@ struct ieee80211_hw *ieee80211_alloc_hw_
|
||||
@@ -1003,7 +1003,10 @@ struct ieee80211_hw *ieee80211_alloc_hw_
|
||||
atomic_set(&local->agg_queue_stop[i], 0);
|
||||
}
|
||||
tasklet_setup(&local->tx_pending_tasklet, ieee80211_tx_pending);
|
||||
@@ -149,7 +149,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
|
||||
skb_queue_head_init(&local->skb_queue);
|
||||
--- a/net/mac80211/rx.c
|
||||
+++ b/net/mac80211/rx.c
|
||||
@@ -1576,6 +1576,9 @@ static void sta_ps_start(struct sta_info
|
||||
@@ -1588,6 +1588,9 @@ static void sta_ps_start(struct sta_info
|
||||
|
||||
ieee80211_clear_fast_xmit(sta);
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
|
||||
|
||||
--- a/net/mac80211/rx.c
|
||||
+++ b/net/mac80211/rx.c
|
||||
@@ -4715,16 +4715,14 @@ void ieee80211_check_fast_rx(struct sta_
|
||||
@@ -4727,16 +4727,14 @@ void ieee80211_check_fast_rx(struct sta_
|
||||
|
||||
break;
|
||||
case NL80211_IFTYPE_MESH_POINT:
|
||||
@@ -30,7 +30,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
|
||||
default:
|
||||
goto clear;
|
||||
}
|
||||
@@ -4946,10 +4944,7 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
@@ -4958,10 +4956,7 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
u8 sa[ETH_ALEN];
|
||||
} addrs __aligned(2);
|
||||
struct ieee80211_sta_rx_stats *stats;
|
||||
@@ -41,7 +41,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
|
||||
|
||||
/* for parallel-rx, we need to have DUP_VALIDATED, otherwise we write
|
||||
* to a common data structure; drivers can implement that per queue
|
||||
@@ -4999,37 +4994,6 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
@@ -5011,37 +5006,6 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
snap_offs += IEEE80211_CCMP_HDR_LEN;
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
|
||||
if (!ieee80211_vif_is_mesh(&rx->sdata->vif) &&
|
||||
!(status->rx_flags & IEEE80211_RX_AMSDU)) {
|
||||
if (!pskb_may_pull(skb, snap_offs + sizeof(*payload)))
|
||||
@@ -5067,30 +5031,6 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
@@ -5079,30 +5043,6 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ Signed-off-by: Balamurugan Ramar <quic_bramar@quicinc.com>
|
||||
|
||||
--- a/net/mac80211/mlme.c
|
||||
+++ b/net/mac80211/mlme.c
|
||||
@@ -7757,7 +7757,7 @@ void ieee80211_sta_work(struct ieee80211
|
||||
@@ -7755,7 +7755,7 @@ void ieee80211_sta_work(struct ieee80211
|
||||
*/
|
||||
if (status_acked) {
|
||||
ifmgd->assoc_data->timeout =
|
||||
|
||||
@@ -17,7 +17,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
|
||||
--- a/include/net/cfg80211.h
|
||||
+++ b/include/net/cfg80211.h
|
||||
@@ -8806,6 +8806,7 @@ bool cfg80211_rx_spurious_frame(struct n
|
||||
@@ -8871,6 +8871,7 @@ bool cfg80211_rx_spurious_frame(struct n
|
||||
* @dev: The device the frame matched to
|
||||
* @addr: the transmitter address
|
||||
* @gfp: context flags
|
||||
@@ -25,7 +25,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
*
|
||||
* This function is used in AP mode (only!) to inform userspace that
|
||||
* an associated station sent a 4addr frame but that wasn't expected.
|
||||
@@ -8815,7 +8816,8 @@ bool cfg80211_rx_spurious_frame(struct n
|
||||
@@ -8880,7 +8881,8 @@ bool cfg80211_rx_spurious_frame(struct n
|
||||
* for a reason other than not having a subscription.)
|
||||
*/
|
||||
bool cfg80211_rx_unexpected_4addr_frame(struct net_device *dev,
|
||||
@@ -37,7 +37,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
* cfg80211_probe_status - notify userspace about probe status
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -2207,9 +2207,16 @@ static int ieee80211_change_station(stru
|
||||
@@ -2216,9 +2216,16 @@ static int ieee80211_change_station(stru
|
||||
vlansdata = IEEE80211_DEV_TO_SUB_IF(params->vlan);
|
||||
|
||||
if (params->vlan->ieee80211_ptr->use_4addr) {
|
||||
@@ -54,7 +54,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
rcu_assign_pointer(vlansdata->u.vlan.sta, sta);
|
||||
__ieee80211_check_fast_rx_iface(vlansdata);
|
||||
|
||||
@@ -2219,6 +2226,39 @@ static int ieee80211_change_station(stru
|
||||
@@ -2228,6 +2235,39 @@ static int ieee80211_change_station(stru
|
||||
else
|
||||
drv_sta_set_4addr(local, sta->sdata, &sta->sta,
|
||||
true);
|
||||
@@ -96,7 +96,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
|
||||
--- a/net/mac80211/rx.c
|
||||
+++ b/net/mac80211/rx.c
|
||||
@@ -1683,7 +1683,7 @@ EXPORT_SYMBOL(ieee80211_sta_uapsd_trigge
|
||||
@@ -1695,7 +1695,7 @@ EXPORT_SYMBOL(ieee80211_sta_uapsd_trigge
|
||||
|
||||
void ieee80211_rx_nss_notify_4addr(struct net_device *dev, u8 *sta_addr)
|
||||
{
|
||||
@@ -105,7 +105,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
}
|
||||
EXPORT_SYMBOL(ieee80211_rx_nss_notify_4addr);
|
||||
|
||||
@@ -1858,7 +1858,8 @@ ieee80211_rx_h_sta_process(struct ieee80
|
||||
@@ -1870,7 +1870,8 @@ ieee80211_rx_h_sta_process(struct ieee80
|
||||
if (!test_and_set_sta_flag(sta, WLAN_STA_4ADDR_EVENT))
|
||||
cfg80211_rx_unexpected_4addr_frame(
|
||||
rx->sdata->dev, sta->sta.addr,
|
||||
@@ -115,7 +115,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
return RX_DROP_M_UNEXPECTED_4ADDR_FRAME;
|
||||
}
|
||||
/*
|
||||
@@ -3245,7 +3246,8 @@ ieee80211_rx_h_data(struct ieee80211_rx_
|
||||
@@ -3257,7 +3258,8 @@ ieee80211_rx_h_data(struct ieee80211_rx_
|
||||
if (rx->sta &&
|
||||
!test_and_set_sta_flag(rx->sta, WLAN_STA_4ADDR_EVENT))
|
||||
cfg80211_rx_unexpected_4addr_frame(
|
||||
@@ -127,7 +127,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
|
||||
--- a/net/wireless/nl80211.c
|
||||
+++ b/net/wireless/nl80211.c
|
||||
@@ -18945,7 +18945,8 @@ void cfg80211_conn_failed(struct net_dev
|
||||
@@ -18996,7 +18996,8 @@ void cfg80211_conn_failed(struct net_dev
|
||||
EXPORT_SYMBOL(cfg80211_conn_failed);
|
||||
|
||||
static bool __nl80211_unexpected_frame(struct net_device *dev, u8 cmd,
|
||||
@@ -137,7 +137,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
{
|
||||
struct wireless_dev *wdev = dev->ieee80211_ptr;
|
||||
struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
|
||||
@@ -18971,6 +18972,9 @@ static bool __nl80211_unexpected_frame(s
|
||||
@@ -19022,6 +19023,9 @@ static bool __nl80211_unexpected_frame(s
|
||||
nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, addr))
|
||||
goto nla_put_failure;
|
||||
|
||||
@@ -147,7 +147,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
genlmsg_end(msg, hdr);
|
||||
genlmsg_unicast(wiphy_net(&rdev->wiphy), msg, nlportid);
|
||||
return true;
|
||||
@@ -18994,14 +18998,15 @@ bool cfg80211_rx_spurious_frame(struct n
|
||||
@@ -19045,14 +19049,15 @@ bool cfg80211_rx_spurious_frame(struct n
|
||||
return false;
|
||||
}
|
||||
ret = __nl80211_unexpected_frame(dev, NL80211_CMD_UNEXPECTED_FRAME,
|
||||
@@ -165,7 +165,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
{
|
||||
struct wireless_dev *wdev = dev->ieee80211_ptr;
|
||||
bool ret;
|
||||
@@ -19016,7 +19021,7 @@ bool cfg80211_rx_unexpected_4addr_frame(
|
||||
@@ -19067,7 +19072,7 @@ bool cfg80211_rx_unexpected_4addr_frame(
|
||||
}
|
||||
ret = __nl80211_unexpected_frame(dev,
|
||||
NL80211_CMD_UNEXPECTED_4ADDR_FRAME,
|
||||
@@ -176,7 +176,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
}
|
||||
--- a/net/mac80211/chan.c
|
||||
+++ b/net/mac80211/chan.c
|
||||
@@ -1036,6 +1036,8 @@ __ieee80211_link_copy_chanctx_to_vlans(s
|
||||
@@ -1050,6 +1050,8 @@ __ieee80211_link_copy_chanctx_to_vlans(s
|
||||
list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) {
|
||||
struct ieee80211_bss_conf *vlan_conf;
|
||||
|
||||
@@ -185,7 +185,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
vlan_conf = wiphy_dereference(local->hw.wiphy,
|
||||
vlan->vif.link_conf[link_id]);
|
||||
if (WARN_ON(!vlan_conf))
|
||||
@@ -1277,6 +1279,8 @@ ieee80211_link_update_chanreq(struct iee
|
||||
@@ -1296,6 +1298,8 @@ ieee80211_link_update_chanreq(struct iee
|
||||
list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) {
|
||||
struct ieee80211_bss_conf *vlan_conf;
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ Signed-off-by: Monika Korada <quic_koramoni@quicinc.com>
|
||||
|
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -1363,7 +1363,8 @@ int ieee80211_do_open(struct wireless_de
|
||||
@@ -1373,7 +1373,8 @@ int ieee80211_do_open(struct wireless_de
|
||||
case NL80211_IFTYPE_AP_VLAN:
|
||||
if (sdata->bss->active) {
|
||||
ieee80211_link_vlan_copy_chanctx(&sdata->deflink);
|
||||
@@ -30,7 +30,7 @@ Signed-off-by: Monika Korada <quic_koramoni@quicinc.com>
|
||||
|
||||
if (ieee80211_hw_check(&local->hw, SUPPORTS_NSS_OFFLOAD)) {
|
||||
ieee80211_set_sdata_offload_flags(sdata);
|
||||
@@ -1374,7 +1375,8 @@ int ieee80211_do_open(struct wireless_de
|
||||
@@ -1384,7 +1385,8 @@ int ieee80211_do_open(struct wireless_de
|
||||
|
||||
ieee80211_set_vif_encap_ops(sdata);
|
||||
} else {
|
||||
@@ -40,7 +40,7 @@ Signed-off-by: Monika Korada <quic_koramoni@quicinc.com>
|
||||
}
|
||||
break;
|
||||
case NL80211_IFTYPE_MONITOR:
|
||||
@@ -1405,7 +1407,8 @@ int ieee80211_do_open(struct wireless_de
|
||||
@@ -1416,7 +1418,8 @@ int ieee80211_do_open(struct wireless_de
|
||||
ieee80211_recalc_offload(local);
|
||||
ieee80211_recalc_idle(local);
|
||||
|
||||
@@ -50,7 +50,7 @@ Signed-off-by: Monika Korada <quic_koramoni@quicinc.com>
|
||||
break;
|
||||
default:
|
||||
if (coming_up) {
|
||||
@@ -1449,7 +1452,8 @@ int ieee80211_do_open(struct wireless_de
|
||||
@@ -1460,7 +1463,8 @@ int ieee80211_do_open(struct wireless_de
|
||||
case NL80211_IFTYPE_AP:
|
||||
case NL80211_IFTYPE_MESH_POINT:
|
||||
case NL80211_IFTYPE_OCB:
|
||||
|
||||
Reference in New Issue
Block a user