diff --git a/package/kernel/mac80211/patches/nss/ath11k/457-wifi-ath11k-Avoid-memset-of-ppdu-info-for-next-skb.patch b/package/kernel/mac80211/patches/nss/ath11k/457-wifi-ath11k-Avoid-memset-of-ppdu-info-for-next-skb.patch index a6ae251ad3..f2a0b74f62 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/457-wifi-ath11k-Avoid-memset-of-ppdu-info-for-next-skb.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/457-wifi-ath11k-Avoid-memset-of-ppdu-info-for-next-skb.patch @@ -48,7 +48,7 @@ Signed-off-by: Yuvasree Sivasankaran --- 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 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 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); diff --git a/package/kernel/mac80211/patches/nss/ath11k/999-233-ath11k-Disable-rx_header-tlv-for-2K-SKB.patch b/package/kernel/mac80211/patches/nss/ath11k/999-233-ath11k-Disable-rx_header-tlv-for-2K-SKB.patch index 0e8d17cd50..cb751f2867 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/999-233-ath11k-Disable-rx_header-tlv-for-2K-SKB.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/999-233-ath11k-Disable-rx_header-tlv-for-2K-SKB.patch @@ -408,7 +408,7 @@ Signed-off-by: Ramya Gnanasekar 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 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 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 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 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: } } diff --git a/package/kernel/mac80211/patches/nss/ath11k/999-336-0001-ath11k-idr-optimization.patch b/package/kernel/mac80211/patches/nss/ath11k/999-336-0001-ath11k-idr-optimization.patch index f38eade814..2c74d53d7d 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/999-336-0001-ath11k-idr-optimization.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/999-336-0001-ath11k-idr-optimization.patch @@ -50,7 +50,7 @@ Signed-off-by: Tamizh Chelvam 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 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 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 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); diff --git a/package/kernel/mac80211/patches/nss/ath11k/999-336-0002-ath11k-Use-idr_replace.patch b/package/kernel/mac80211/patches/nss/ath11k/999-336-0002-ath11k-Use-idr_replace.patch index 5058823dcf..dad3b75988 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/999-336-0002-ath11k-Use-idr_replace.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/999-336-0002-ath11k-Use-idr_replace.patch @@ -161,7 +161,7 @@ Signed-off-by: Tamizh Chelvam 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 } 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 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 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 } 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 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 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 } } -@@ -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, diff --git a/package/kernel/mac80211/patches/nss/ath11k/999-802-ath11k-fixup-thermal-throttle.patch b/package/kernel/mac80211/patches/nss/ath11k/999-802-ath11k-fixup-thermal-throttle.patch index d392a16a97..719fd02867 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/999-802-ath11k-fixup-thermal-throttle.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/999-802-ath11k-fixup-thermal-throttle.patch @@ -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 } } diff --git a/package/kernel/mac80211/patches/nss/ath11k/999-900-bss-transition-handling.patch b/package/kernel/mac80211/patches/nss/ath11k/999-900-bss-transition-handling.patch index 1c87a83ea3..e75a709885 100644 --- a/package/kernel/mac80211/patches/nss/ath11k/999-900-bss-transition-handling.patch +++ b/package/kernel/mac80211/patches/nss/ath11k/999-900-bss-transition-handling.patch @@ -31,7 +31,7 @@ INIT_WORK(&ab->restart_work, ath11k_core_restart); --- a/drivers/net/wireless/ath/ath11k/core.h +++ b/drivers/net/wireless/ath/ath11k/core.h -@@ -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(); } + diff --git a/package/kernel/mac80211/patches/nss/subsys/999-775-wifi-mac80211-Changes-for-WDS-MLD.patch b/package/kernel/mac80211/patches/nss/subsys/999-775-wifi-mac80211-Changes-for-WDS-MLD.patch index b3410578a5..999d710844 100644 --- a/package/kernel/mac80211/patches/nss/subsys/999-775-wifi-mac80211-Changes-for-WDS-MLD.patch +++ b/package/kernel/mac80211/patches/nss/subsys/999-775-wifi-mac80211-Changes-for-WDS-MLD.patch @@ -17,7 +17,7 @@ Signed-off-by: Ramasamy Kaliappan --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h -@@ -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 * * 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 * 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 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 --- 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 { 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 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 { 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,