mirror of
https://github.com/optim-enterprises-bv/openwrt-ipq.git
synced 2025-10-30 01:43:02 +00:00
ath11k_nss: Refresh patches for 6.9.9
Signed-off-by: Sean Khan <datapronix@protonmail.com>
This commit is contained in:
@@ -48,7 +48,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||
@@ -6091,7 +6091,9 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
@@ -6094,7 +6094,9 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
if (!num_buffs_reaped)
|
||||
goto exit;
|
||||
|
||||
@@ -59,7 +59,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
|
||||
ppdu_info->peer_id = HAL_INVALID_PEERID;
|
||||
|
||||
while ((skb = __skb_dequeue(&skb_list))) {
|
||||
@@ -6109,7 +6111,6 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
@@ -6112,7 +6114,6 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
if (log_type != ATH11K_PKTLOG_TYPE_INVALID)
|
||||
trace_ath11k_htt_rxdesc(ar, skb->data, log_type, rx_buf_sz);
|
||||
|
||||
@@ -67,7 +67,7 @@ Signed-off-by: Yuvasree Sivasankaran <quic_ysivasan@quicinc.com>
|
||||
ppdu_info->peer_id = HAL_INVALID_PEERID;
|
||||
hal_status = ath11k_hal_rx_parse_mon_status(ab, ppdu_info, skb);
|
||||
|
||||
@@ -6137,6 +6138,7 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
@@ -6140,6 +6141,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);
|
||||
|
||||
@@ -408,7 +408,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
||||
ath11k_dbg_dump(ab, ATH11K_DBG_DATA, NULL, "", rx_desc,
|
||||
sizeof(struct hal_rx_desc));
|
||||
goto free_out;
|
||||
@@ -4072,6 +4194,7 @@ static int ath11k_dp_rx_h_verify_tkip_mi
|
||||
@@ -4075,6 +4197,7 @@ static int ath11k_dp_rx_h_verify_tkip_mi
|
||||
|
||||
hdr = (struct ieee80211_hdr *)(msdu->data + hal_rx_desc_sz);
|
||||
hdr_len = ieee80211_hdrlen(hdr->frame_control);
|
||||
@@ -416,7 +416,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
||||
head_len = hdr_len + hal_rx_desc_sz + IEEE80211_TKIP_IV_LEN;
|
||||
tail_len = IEEE80211_CCMP_MIC_LEN + IEEE80211_TKIP_ICV_LEN + FCS_LEN;
|
||||
|
||||
@@ -4352,8 +4475,8 @@ static void ath11k_dp_rx_h_sort_frags(st
|
||||
@@ -4355,8 +4478,8 @@ static void ath11k_dp_rx_h_sort_frags(st
|
||||
|
||||
static u64 ath11k_dp_rx_h_get_pn(struct ath11k *ar, struct sk_buff *skb)
|
||||
{
|
||||
@@ -426,7 +426,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
||||
u8 *ehdr;
|
||||
u32 hal_rx_desc_sz = ar->ab->hw_params.hal_desc_sz;
|
||||
|
||||
@@ -4583,8 +4706,9 @@ ath11k_dp_process_rx_err_buf(struct ath1
|
||||
@@ -4586,8 +4709,9 @@ ath11k_dp_process_rx_err_buf(struct ath1
|
||||
if ((msdu_len + hal_rx_desc_sz) > DP_RX_BUFFER_SIZE) {
|
||||
hdr_status = ath11k_dp_rx_h_80211_hdr(ar->ab, rx_desc);
|
||||
ath11k_warn(ar->ab, "invalid msdu leng %u", msdu_len);
|
||||
@@ -438,7 +438,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
||||
ath11k_dbg_dump(ar->ab, ATH11K_DBG_DATA, NULL, "", rx_desc,
|
||||
sizeof(struct hal_rx_desc));
|
||||
dev_kfree_skb_any(msdu);
|
||||
@@ -5209,6 +5333,47 @@ void ath11k_dp_rx_pdev_free(struct ath11
|
||||
@@ -5212,6 +5336,47 @@ void ath11k_dp_rx_pdev_free(struct ath11
|
||||
ath11k_dp_rxdma_pdev_buf_free(ar);
|
||||
}
|
||||
|
||||
@@ -486,7 +486,7 @@ Signed-off-by: Ramya Gnanasekar <rgnanase@codeaurora.org>
|
||||
int ath11k_dp_rx_pdev_alloc(struct ath11k_base *ab, int mac_id)
|
||||
{
|
||||
struct ath11k *ar = ab->pdevs[mac_id].ar;
|
||||
@@ -5302,6 +5467,12 @@ config_refill_ring:
|
||||
@@ -5305,6 +5470,12 @@ config_refill_ring:
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
dma_unmap_single(ab->dev, rxcb->paddr,
|
||||
msdu->len + skb_tailroom(msdu),
|
||||
DMA_FROM_DEVICE);
|
||||
@@ -4669,17 +4667,14 @@ ath11k_dp_process_rx_err_buf(struct ath1
|
||||
@@ -4672,17 +4670,14 @@ ath11k_dp_process_rx_err_buf(struct ath1
|
||||
u32 hal_rx_desc_sz = ar->ab->hw_params.hal_desc_sz;
|
||||
|
||||
spin_lock_bh(&rx_ring->idr_lock);
|
||||
@@ -70,7 +70,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
rxcb = ATH11K_SKB_RXCB(msdu);
|
||||
dma_unmap_single(ar->ab->dev, rxcb->paddr,
|
||||
msdu->len + skb_tailroom(msdu),
|
||||
@@ -5085,18 +5080,16 @@ int ath11k_dp_rx_process_wbm_err(struct
|
||||
@@ -5088,18 +5083,16 @@ int ath11k_dp_rx_process_wbm_err(struct
|
||||
rx_ring = &ar->dp.rx_refill_buf_ring;
|
||||
|
||||
spin_lock_bh(&rx_ring->idr_lock);
|
||||
@@ -92,7 +92,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
dma_unmap_single(ab->dev, rxcb->paddr,
|
||||
msdu->len + skb_tailroom(msdu),
|
||||
DMA_FROM_DEVICE);
|
||||
@@ -5211,16 +5204,14 @@ int ath11k_dp_process_rxdma_err(struct a
|
||||
@@ -5214,16 +5207,14 @@ int ath11k_dp_process_rxdma_err(struct a
|
||||
msdu_cookies[i]);
|
||||
|
||||
spin_lock_bh(&rx_ring->idr_lock);
|
||||
@@ -111,7 +111,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
|
||||
rxcb = ATH11K_SKB_RXCB(skb);
|
||||
dma_unmap_single(ab->dev, rxcb->paddr,
|
||||
@@ -6425,16 +6416,14 @@ ath11k_dp_rx_full_mon_mpdu_pop(struct at
|
||||
@@ -6428,16 +6419,14 @@ ath11k_dp_rx_full_mon_mpdu_pop(struct at
|
||||
msdu_list.sw_cookie[i]);
|
||||
|
||||
spin_lock_bh(&rx_ring->idr_lock);
|
||||
|
||||
@@ -161,7 +161,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
return total_msdu_reaped;
|
||||
}
|
||||
|
||||
@@ -4829,7 +4861,7 @@ exit:
|
||||
@@ -4832,7 +4864,7 @@ exit:
|
||||
rx_ring = &ar->dp.rx_refill_buf_ring;
|
||||
|
||||
ath11k_dp_rxbufs_replenish(ab, i, rx_ring, n_bufs_reaped[i],
|
||||
@@ -170,7 +170,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
}
|
||||
|
||||
return tot_n_bufs_reaped;
|
||||
@@ -5045,14 +5077,17 @@ int ath11k_dp_rx_process_wbm_err(struct
|
||||
@@ -5048,14 +5080,17 @@ int ath11k_dp_rx_process_wbm_err(struct
|
||||
struct sk_buff *msdu;
|
||||
struct sk_buff_head msdu_list[MAX_RADIOS];
|
||||
struct ath11k_skb_rxcb *rxcb;
|
||||
@@ -189,7 +189,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
|
||||
srng = &ab->hal.srng_list[dp->rx_rel_ring.ring_id];
|
||||
|
||||
@@ -5078,9 +5113,15 @@ int ath11k_dp_rx_process_wbm_err(struct
|
||||
@@ -5081,9 +5116,15 @@ int ath11k_dp_rx_process_wbm_err(struct
|
||||
|
||||
ar = ab->pdevs[mac_id].ar;
|
||||
rx_ring = &ar->dp.rx_refill_buf_ring;
|
||||
@@ -206,7 +206,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
spin_unlock_bh(&rx_ring->idr_lock);
|
||||
if (!msdu) {
|
||||
ath11k_warn(ab, "frame rx with invalid buf_id %d pdev %d\n",
|
||||
@@ -5125,7 +5166,7 @@ int ath11k_dp_rx_process_wbm_err(struct
|
||||
@@ -5128,7 +5169,7 @@ int ath11k_dp_rx_process_wbm_err(struct
|
||||
rx_ring = &ar->dp.rx_refill_buf_ring;
|
||||
|
||||
ath11k_dp_rxbufs_replenish(ab, i, rx_ring, num_buffs_reaped[i],
|
||||
@@ -215,7 +215,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
}
|
||||
|
||||
rcu_read_lock();
|
||||
@@ -5147,6 +5188,8 @@ int ath11k_dp_rx_process_wbm_err(struct
|
||||
@@ -5150,6 +5191,8 @@ int ath11k_dp_rx_process_wbm_err(struct
|
||||
}
|
||||
rcu_read_unlock();
|
||||
done:
|
||||
@@ -224,7 +224,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
return total_num_buffs_reaped;
|
||||
}
|
||||
|
||||
@@ -5232,7 +5275,7 @@ int ath11k_dp_process_rxdma_err(struct a
|
||||
@@ -5235,7 +5278,7 @@ int ath11k_dp_process_rxdma_err(struct a
|
||||
|
||||
if (num_buf_freed)
|
||||
ath11k_dp_rxbufs_replenish(ab, mac_id, rx_ring, num_buf_freed,
|
||||
@@ -233,7 +233,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
|
||||
return budget - quota;
|
||||
}
|
||||
@@ -6178,12 +6221,12 @@ static void ath11k_dp_rx_mon_dest_proces
|
||||
@@ -6181,12 +6224,12 @@ static void ath11k_dp_rx_mon_dest_proces
|
||||
ath11k_dp_rxbufs_replenish(ar->ab, dp->mac_id,
|
||||
&dp->rxdma_mon_buf_ring,
|
||||
rx_bufs_used,
|
||||
@@ -248,7 +248,7 @@ Signed-off-by: Tamizh Chelvam <quic_tamizhr@quicinc.com>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6693,7 +6736,7 @@ next_entry:
|
||||
@@ -6696,7 +6739,7 @@ next_entry:
|
||||
ath11k_dp_rxbufs_replenish(ar->ab, dp->mac_id,
|
||||
&dp->rxdma_mon_buf_ring,
|
||||
rx_bufs_used,
|
||||
|
||||
@@ -229,7 +229,7 @@
|
||||
struct wmi_delba_send_cmd {
|
||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||||
@@ -6591,6 +6591,9 @@ static int ath11k_mac_op_start(struct ie
|
||||
@@ -6586,6 +6586,9 @@ static int ath11k_mac_op_start(struct ie
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -739,9 +739,22 @@ struct ath11k {
|
||||
@@ -737,9 +737,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;
|
||||
@@ -819,6 +832,9 @@ struct ath11k {
|
||||
@@ -817,6 +830,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;
|
||||
@@ -1022,19 +1038,7 @@ struct ath11k_base {
|
||||
@@ -1020,19 +1036,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];
|
||||
@@ -1411,4 +1415,36 @@ static inline const char *ath11k_bus_str
|
||||
@@ -1409,4 +1413,36 @@ static inline const char *ath11k_bus_str
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
@@ -599,7 +599,7 @@
|
||||
user_stats->ast_index);
|
||||
return;
|
||||
}
|
||||
@@ -4212,7 +4227,7 @@ int ath11k_peer_rx_frag_setup(struct ath
|
||||
@@ -4215,7 +4230,7 @@ int ath11k_peer_rx_frag_setup(struct ath
|
||||
|
||||
spin_lock_bh(&ab->base_lock);
|
||||
|
||||
@@ -608,7 +608,7 @@
|
||||
if (!peer) {
|
||||
ath11k_warn(ab, "failed to find the peer to set up fragment info\n");
|
||||
spin_unlock_bh(&ab->base_lock);
|
||||
@@ -4668,7 +4683,7 @@ static int ath11k_dp_rx_frag_h_mpdu(stru
|
||||
@@ -4671,7 +4686,7 @@ static int ath11k_dp_rx_frag_h_mpdu(stru
|
||||
return -EINVAL;
|
||||
|
||||
spin_lock_bh(&ab->base_lock);
|
||||
@@ -617,7 +617,7 @@
|
||||
if (!peer) {
|
||||
ath11k_warn(ab, "failed to find the peer to de-fragment received fragment peer_id %d\n",
|
||||
peer_id);
|
||||
@@ -4730,7 +4745,7 @@ static int ath11k_dp_rx_frag_h_mpdu(stru
|
||||
@@ -4733,7 +4748,7 @@ static int ath11k_dp_rx_frag_h_mpdu(stru
|
||||
del_timer_sync(&rx_tid->frag_timer);
|
||||
spin_lock_bh(&ab->base_lock);
|
||||
|
||||
@@ -626,7 +626,7 @@
|
||||
if (!peer)
|
||||
goto err_frags_cleanup;
|
||||
|
||||
@@ -6394,7 +6409,7 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
@@ -6397,7 +6412,7 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
trace_ath11k_htt_rxdesc(ar, skb->data, log_type, rx_buf_sz);
|
||||
|
||||
ppdu_info->peer_id = HAL_INVALID_PEERID;
|
||||
@@ -635,7 +635,7 @@
|
||||
|
||||
if (test_bit(ATH11K_FLAG_MONITOR_STARTED, &ar->monitor_flags) &&
|
||||
pmon->mon_ppdu_status == DP_PPDU_STATUS_START &&
|
||||
@@ -6425,7 +6440,7 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
@@ -6428,7 +6443,7 @@ int ath11k_dp_rx_process_mon_status(stru
|
||||
}
|
||||
rcu_read_lock();
|
||||
spin_lock_bh(&ab->base_lock);
|
||||
@@ -789,7 +789,7 @@
|
||||
|
||||
ar->num_peers = 0;
|
||||
ar->num_stations = 0;
|
||||
@@ -3109,7 +3109,7 @@ static void ath11k_bss_assoc(struct ieee
|
||||
@@ -3100,7 +3100,7 @@ static void ath11k_bss_assoc(struct ieee
|
||||
|
||||
spin_lock_bh(&ar->ab->base_lock);
|
||||
|
||||
@@ -798,7 +798,7 @@
|
||||
if (peer && peer->is_authorized)
|
||||
is_auth = true;
|
||||
|
||||
@@ -4269,7 +4269,7 @@ static int ath11k_clear_peer_keys(struct
|
||||
@@ -4260,7 +4260,7 @@ static int ath11k_clear_peer_keys(struct
|
||||
lockdep_assert_held(&ar->conf_mutex);
|
||||
|
||||
spin_lock_bh(&ab->base_lock);
|
||||
@@ -807,7 +807,7 @@
|
||||
if (!peer) {
|
||||
spin_unlock_bh(&ab->base_lock);
|
||||
return -ENOENT;
|
||||
@@ -4385,7 +4385,7 @@ static int ath11k_mac_op_set_key(struct
|
||||
@@ -4376,7 +4376,7 @@ static int ath11k_mac_op_set_key(struct
|
||||
* we already hold conf_mutex. we just make sure its there now.
|
||||
*/
|
||||
spin_lock_bh(&ab->base_lock);
|
||||
@@ -816,7 +816,7 @@
|
||||
|
||||
/* flush the fragments cache during key (re)install to
|
||||
* ensure all frags in the new frag list belong to the same key.
|
||||
@@ -4494,7 +4494,7 @@ static int ath11k_mac_op_set_key(struct
|
||||
@@ -4485,7 +4485,7 @@ static int ath11k_mac_op_set_key(struct
|
||||
}
|
||||
|
||||
spin_lock_bh(&ab->base_lock);
|
||||
@@ -825,7 +825,7 @@
|
||||
|
||||
/* TODO: Check if vdev specific security cfg is mandatory */
|
||||
ret = ath11k_nss_vdev_set_cmd(arvif, ATH11K_NSS_WIFI_VDEV_SECURITY_TYPE_CMD, key->cipher);
|
||||
@@ -4525,7 +4525,7 @@ static int ath11k_mac_op_set_key(struct
|
||||
@@ -4516,7 +4516,7 @@ static int ath11k_mac_op_set_key(struct
|
||||
list_for_each_entry_safe(dyn_vlan_cfg, tmp, &ap_vlan_arvif->dyn_vlan_cfg, cfg_list) {
|
||||
struct ieee80211_sta *vlan_sta = dyn_vlan_cfg->sta;
|
||||
|
||||
@@ -834,7 +834,7 @@
|
||||
if (ret)
|
||||
ath11k_warn(ar->ab, "failed to cfg dyn vlan for peer %pM: %d\n",
|
||||
vlan_sta->addr, ret);
|
||||
@@ -5135,7 +5135,7 @@ static void ath11k_sta_set_4addr_wk(stru
|
||||
@@ -5126,7 +5126,7 @@ static void ath11k_sta_set_4addr_wk(stru
|
||||
vif = ap_vlan_arvif->vif;
|
||||
|
||||
spin_lock_bh(&ab->base_lock);
|
||||
@@ -843,7 +843,7 @@
|
||||
if (!wds_peer) {
|
||||
spin_unlock_bh(&ab->base_lock);
|
||||
ath11k_warn(ab, "mac sta use 4addr failed to find peer %pM\n",
|
||||
@@ -5358,7 +5358,7 @@ static void ath11k_mac_op_sta_rc_update(
|
||||
@@ -5349,7 +5349,7 @@ static void ath11k_mac_op_sta_rc_update(
|
||||
|
||||
spin_lock_bh(&ar->ab->base_lock);
|
||||
|
||||
@@ -852,7 +852,7 @@
|
||||
if (!peer) {
|
||||
spin_unlock_bh(&ar->ab->base_lock);
|
||||
ath11k_warn(ar->ab, "mac sta rc update failed to find peer %pM on vdev %i\n",
|
||||
@@ -8464,7 +8464,7 @@ ath11k_mac_op_assign_vif_chanctx(struct
|
||||
@@ -8430,7 +8430,7 @@ ath11k_mac_op_assign_vif_chanctx(struct
|
||||
if (ab->hw_params.vdev_start_delay &&
|
||||
arvif->vdev_type != WMI_VDEV_TYPE_AP &&
|
||||
arvif->vdev_type != WMI_VDEV_TYPE_MONITOR &&
|
||||
@@ -861,7 +861,7 @@
|
||||
memcpy(&arvif->chanctx, ctx, sizeof(*ctx));
|
||||
ret = 0;
|
||||
goto out;
|
||||
@@ -8540,7 +8540,7 @@ ath11k_mac_op_unassign_vif_chanctx(struc
|
||||
@@ -8506,7 +8506,7 @@ ath11k_mac_op_unassign_vif_chanctx(struc
|
||||
if (ab->hw_params.vdev_start_delay &&
|
||||
arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) {
|
||||
spin_lock_bh(&ab->base_lock);
|
||||
@@ -870,7 +870,7 @@
|
||||
spin_unlock_bh(&ab->base_lock);
|
||||
if (peer)
|
||||
ath11k_peer_delete(ar, arvif->vdev_id, ar->mac_addr);
|
||||
@@ -9114,7 +9114,7 @@ ath11k_mac_validate_vht_he_fixed_rate_se
|
||||
@@ -9080,7 +9080,7 @@ ath11k_mac_validate_vht_he_fixed_rate_se
|
||||
|
||||
rcu_read_lock();
|
||||
spin_lock_bh(&ar->ab->base_lock);
|
||||
@@ -879,7 +879,7 @@
|
||||
if (peer->sta) {
|
||||
deflink = &peer->sta->deflink;
|
||||
|
||||
@@ -10066,26 +10066,26 @@ static int ath11k_mac_station_remove(str
|
||||
@@ -10032,26 +10032,26 @@ static int ath11k_mac_station_remove(str
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -913,7 +913,7 @@
|
||||
sta->addr, ret);
|
||||
return ret;
|
||||
}
|
||||
@@ -10135,20 +10135,20 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10101,20 +10101,20 @@ static int ath11k_mac_op_sta_state(struc
|
||||
ath11k_warn(ar->ab, "Failed to remove station: %pM for VDEV: %d\n",
|
||||
sta->addr, arvif->vdev_id);
|
||||
|
||||
@@ -938,7 +938,7 @@
|
||||
} else if (old_state == IEEE80211_STA_AUTH &&
|
||||
new_state == IEEE80211_STA_ASSOC &&
|
||||
(vif->type == NL80211_IFTYPE_AP ||
|
||||
@@ -10179,7 +10179,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10145,7 +10145,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
new_state == IEEE80211_STA_AUTHORIZED) {
|
||||
spin_lock_bh(&ar->ab->base_lock);
|
||||
|
||||
@@ -947,7 +947,7 @@
|
||||
if (peer)
|
||||
peer->is_authorized = true;
|
||||
|
||||
@@ -10216,7 +10216,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10182,7 +10182,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
list_add_tail(&ar_dyn_vlan_cfg->cfg_list, &arvif->dyn_vlan_cfg);
|
||||
}
|
||||
} else {
|
||||
@@ -956,7 +956,7 @@
|
||||
if (ret)
|
||||
ath11k_warn(ar->ab, "failed to cfg dyn vlan for peer %pM: %d\n",
|
||||
sta->addr, ret);
|
||||
@@ -10249,7 +10249,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10215,7 +10215,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
new_state == IEEE80211_STA_ASSOC) {
|
||||
|
||||
spin_lock_bh(&ar->ab->base_lock);
|
||||
@@ -965,7 +965,7 @@
|
||||
if (peer)
|
||||
peer->is_authorized = false;
|
||||
spin_unlock_bh(&ar->ab->base_lock);
|
||||
@@ -10257,7 +10257,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
@@ -10223,7 +10223,7 @@ static int ath11k_mac_op_sta_state(struc
|
||||
new_state == IEEE80211_STA_ASSOC) {
|
||||
spin_lock_bh(&ar->ab->base_lock);
|
||||
|
||||
@@ -974,7 +974,7 @@
|
||||
if (peer)
|
||||
peer->is_authorized = false;
|
||||
|
||||
@@ -10662,9 +10662,9 @@ void ath11k_mac_unregister(struct ath11k
|
||||
@@ -10628,9 +10628,9 @@ void ath11k_mac_unregister(struct ath11k
|
||||
continue;
|
||||
|
||||
__ath11k_mac_unregister(ar);
|
||||
@@ -985,7 +985,7 @@
|
||||
}
|
||||
|
||||
static int __ath11k_mac_register(struct ath11k *ar)
|
||||
@@ -10951,15 +10951,15 @@ int ath11k_mac_register(struct ath11k_ba
|
||||
@@ -10917,15 +10917,15 @@ int ath11k_mac_register(struct ath11k_ba
|
||||
ab->cc_freq_hz = IPQ8074_CC_FREQ_HERTZ;
|
||||
ab->free_vdev_map = (1LL << (ab->num_radios * TARGET_NUM_VDEVS(ab))) - 1;
|
||||
|
||||
@@ -1004,7 +1004,7 @@
|
||||
if (ab->pdevs_macaddr_valid) {
|
||||
ether_addr_copy(ar->mac_addr, pdev->mac_addr);
|
||||
} else {
|
||||
@@ -10987,9 +10987,9 @@ err_cleanup:
|
||||
@@ -10953,9 +10953,9 @@ err_cleanup:
|
||||
pdev = &ab->pdevs[i];
|
||||
ar = pdev->ar;
|
||||
__ath11k_mac_unregister(ar);
|
||||
@@ -1015,7 +1015,7 @@
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -11033,9 +11033,12 @@ int ath11k_mac_allocate(struct ath11k_ba
|
||||
@@ -10999,9 +10999,12 @@ int ath11k_mac_allocate(struct ath11k_ba
|
||||
ar->num_rx_chains = get_num_chains(pdev->cap.rx_chain_mask);
|
||||
|
||||
pdev->ar = ar;
|
||||
@@ -2630,3 +2630,4 @@
|
||||
-exit:
|
||||
rcu_read_unlock();
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
|
||||
--- a/include/net/cfg80211.h
|
||||
+++ b/include/net/cfg80211.h
|
||||
@@ -8760,6 +8760,7 @@ bool cfg80211_rx_spurious_frame(struct n
|
||||
@@ -8756,6 +8756,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.
|
||||
@@ -8769,7 +8770,8 @@ bool cfg80211_rx_spurious_frame(struct n
|
||||
@@ -8765,7 +8766,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
|
||||
@@ -2189,9 +2189,16 @@ static int ieee80211_change_station(stru
|
||||
@@ -2188,9 +2188,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);
|
||||
|
||||
@@ -2201,6 +2208,39 @@ static int ieee80211_change_station(stru
|
||||
@@ -2200,6 +2207,39 @@ static int ieee80211_change_station(stru
|
||||
else
|
||||
drv_sta_set_4addr(local, sta->sdata, &sta->sta,
|
||||
true);
|
||||
@@ -127,7 +127,7 @@ Signed-off-by: Ramasamy Kaliappan <quic_rkaliapp@quicinc.com>
|
||||
|
||||
--- a/net/wireless/nl80211.c
|
||||
+++ b/net/wireless/nl80211.c
|
||||
@@ -18887,7 +18887,8 @@ void cfg80211_conn_failed(struct net_dev
|
||||
@@ -18877,7 +18877,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);
|
||||
@@ -18913,6 +18914,9 @@ static bool __nl80211_unexpected_frame(s
|
||||
@@ -18903,6 +18904,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;
|
||||
@@ -18936,14 +18940,15 @@ bool cfg80211_rx_spurious_frame(struct n
|
||||
@@ -18926,14 +18930,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;
|
||||
@@ -18958,7 +18963,7 @@ bool cfg80211_rx_unexpected_4addr_frame(
|
||||
@@ -18948,7 +18953,7 @@ bool cfg80211_rx_unexpected_4addr_frame(
|
||||
}
|
||||
ret = __nl80211_unexpected_frame(dev,
|
||||
NL80211_CMD_UNEXPECTED_4ADDR_FRAME,
|
||||
|
||||
Reference in New Issue
Block a user