Skip to content

Commit e7df856

Browse files
committed
Merge tag 'ath-current-20260113' of git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath into wireless
Jeff Johnson says: ================== ath.git update for v6.19-rc6 A collection of small bug fixes in ath10k and ath12k. ================== Link: https://patch.msgid.link/98386125-c0bb-495e-b2ba-2765aaed19d8@oss.qualcomm.com Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2 parents 2120f3a + 3170757 commit e7df856

4 files changed

Lines changed: 25 additions & 28 deletions

File tree

drivers/net/wireless/ath/ath10k/ce.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1727,8 +1727,8 @@ static void _ath10k_ce_free_pipe(struct ath10k *ar, int ce_id)
17271727
(ce_state->src_ring->nentries *
17281728
sizeof(struct ce_desc) +
17291729
CE_DESC_RING_ALIGN),
1730-
ce_state->src_ring->base_addr_owner_space,
1731-
ce_state->src_ring->base_addr_ce_space);
1730+
ce_state->src_ring->base_addr_owner_space_unaligned,
1731+
ce_state->src_ring->base_addr_ce_space_unaligned);
17321732
kfree(ce_state->src_ring);
17331733
}
17341734

@@ -1737,8 +1737,8 @@ static void _ath10k_ce_free_pipe(struct ath10k *ar, int ce_id)
17371737
(ce_state->dest_ring->nentries *
17381738
sizeof(struct ce_desc) +
17391739
CE_DESC_RING_ALIGN),
1740-
ce_state->dest_ring->base_addr_owner_space,
1741-
ce_state->dest_ring->base_addr_ce_space);
1740+
ce_state->dest_ring->base_addr_owner_space_unaligned,
1741+
ce_state->dest_ring->base_addr_ce_space_unaligned);
17421742
kfree(ce_state->dest_ring);
17431743
}
17441744

@@ -1758,8 +1758,8 @@ static void _ath10k_ce_free_pipe_64(struct ath10k *ar, int ce_id)
17581758
(ce_state->src_ring->nentries *
17591759
sizeof(struct ce_desc_64) +
17601760
CE_DESC_RING_ALIGN),
1761-
ce_state->src_ring->base_addr_owner_space,
1762-
ce_state->src_ring->base_addr_ce_space);
1761+
ce_state->src_ring->base_addr_owner_space_unaligned,
1762+
ce_state->src_ring->base_addr_ce_space_unaligned);
17631763
kfree(ce_state->src_ring);
17641764
}
17651765

@@ -1768,8 +1768,8 @@ static void _ath10k_ce_free_pipe_64(struct ath10k *ar, int ce_id)
17681768
(ce_state->dest_ring->nentries *
17691769
sizeof(struct ce_desc_64) +
17701770
CE_DESC_RING_ALIGN),
1771-
ce_state->dest_ring->base_addr_owner_space,
1772-
ce_state->dest_ring->base_addr_ce_space);
1771+
ce_state->dest_ring->base_addr_owner_space_unaligned,
1772+
ce_state->dest_ring->base_addr_ce_space_unaligned);
17731773
kfree(ce_state->dest_ring);
17741774
}
17751775

drivers/net/wireless/ath/ath12k/ce.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -984,8 +984,8 @@ void ath12k_ce_free_pipes(struct ath12k_base *ab)
984984
dma_free_coherent(ab->dev,
985985
pipe->src_ring->nentries * desc_sz +
986986
CE_DESC_RING_ALIGN,
987-
pipe->src_ring->base_addr_owner_space,
988-
pipe->src_ring->base_addr_ce_space);
987+
pipe->src_ring->base_addr_owner_space_unaligned,
988+
pipe->src_ring->base_addr_ce_space_unaligned);
989989
kfree(pipe->src_ring);
990990
pipe->src_ring = NULL;
991991
}
@@ -995,8 +995,8 @@ void ath12k_ce_free_pipes(struct ath12k_base *ab)
995995
dma_free_coherent(ab->dev,
996996
pipe->dest_ring->nentries * desc_sz +
997997
CE_DESC_RING_ALIGN,
998-
pipe->dest_ring->base_addr_owner_space,
999-
pipe->dest_ring->base_addr_ce_space);
998+
pipe->dest_ring->base_addr_owner_space_unaligned,
999+
pipe->dest_ring->base_addr_ce_space_unaligned);
10001000
kfree(pipe->dest_ring);
10011001
pipe->dest_ring = NULL;
10021002
}
@@ -1007,8 +1007,8 @@ void ath12k_ce_free_pipes(struct ath12k_base *ab)
10071007
dma_free_coherent(ab->dev,
10081008
pipe->status_ring->nentries * desc_sz +
10091009
CE_DESC_RING_ALIGN,
1010-
pipe->status_ring->base_addr_owner_space,
1011-
pipe->status_ring->base_addr_ce_space);
1010+
pipe->status_ring->base_addr_owner_space_unaligned,
1011+
pipe->status_ring->base_addr_ce_space_unaligned);
10121012
kfree(pipe->status_ring);
10131013
pipe->status_ring = NULL;
10141014
}

drivers/net/wireless/ath/ath12k/mac.c

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5495,7 +5495,8 @@ static void ath12k_mac_op_cancel_hw_scan(struct ieee80211_hw *hw,
54955495

54965496
for_each_set_bit(link_id, &links_map, ATH12K_NUM_MAX_LINKS) {
54975497
arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
5498-
if (!arvif || arvif->is_started)
5498+
if (!arvif || !arvif->is_created ||
5499+
arvif->ar->scan.arvif != arvif)
54995500
continue;
55005501

55015502
ar = arvif->ar;
@@ -9172,7 +9173,10 @@ static void ath12k_mac_op_tx(struct ieee80211_hw *hw,
91729173
return;
91739174
}
91749175
} else {
9175-
link_id = 0;
9176+
if (vif->type == NL80211_IFTYPE_P2P_DEVICE)
9177+
link_id = ATH12K_FIRST_SCAN_LINK;
9178+
else
9179+
link_id = 0;
91769180
}
91779181

91789182
arvif = rcu_dereference(ahvif->link[link_id]);
@@ -12142,16 +12146,16 @@ static void ath12k_mac_op_flush(struct ieee80211_hw *hw, struct ieee80211_vif *v
1214212146
if (drop)
1214312147
return;
1214412148

12149+
for_each_ar(ah, ar, i)
12150+
wiphy_work_flush(hw->wiphy, &ar->wmi_mgmt_tx_work);
12151+
1214512152
/* vif can be NULL when flush() is considered for hw */
1214612153
if (!vif) {
1214712154
for_each_ar(ah, ar, i)
1214812155
ath12k_mac_flush(ar);
1214912156
return;
1215012157
}
1215112158

12152-
for_each_ar(ah, ar, i)
12153-
wiphy_work_flush(hw->wiphy, &ar->wmi_mgmt_tx_work);
12154-
1215512159
ahvif = ath12k_vif_to_ahvif(vif);
1215612160
links = ahvif->links_map;
1215712161
for_each_set_bit(link_id, &links, IEEE80211_MLD_MAX_NUM_LINKS) {
@@ -13343,7 +13347,7 @@ static int ath12k_mac_op_cancel_remain_on_channel(struct ieee80211_hw *hw,
1334313347
ath12k_scan_abort(ar);
1334413348

1334513349
cancel_delayed_work_sync(&ar->scan.timeout);
13346-
wiphy_work_cancel(hw->wiphy, &ar->scan.vdev_clean_wk);
13350+
wiphy_work_flush(hw->wiphy, &ar->scan.vdev_clean_wk);
1334713351

1334813352
return 0;
1334913353
}

drivers/net/wireless/ath/ath12k/wmi.c

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6575,16 +6575,9 @@ static int freq_to_idx(struct ath12k *ar, int freq)
65756575
if (!sband)
65766576
continue;
65776577

6578-
for (ch = 0; ch < sband->n_channels; ch++, idx++) {
6579-
if (sband->channels[ch].center_freq <
6580-
KHZ_TO_MHZ(ar->freq_range.start_freq) ||
6581-
sband->channels[ch].center_freq >
6582-
KHZ_TO_MHZ(ar->freq_range.end_freq))
6583-
continue;
6584-
6578+
for (ch = 0; ch < sband->n_channels; ch++, idx++)
65856579
if (sband->channels[ch].center_freq == freq)
65866580
goto exit;
6587-
}
65886581
}
65896582

65906583
exit:

0 commit comments

Comments
 (0)