[PATCH 2/8] wifi: ath12k: support change_sta_links() mac80211 op
Baochen Qiang
quic_bqiang at quicinc.com
Wed Nov 6 23:14:55 PST 2024
On 11/6/2024 10:26 PM, Kalle Valo wrote:
> From: Sriram R <quic_srirrama at quicinc.com>
>
> Add ath12k_mac_op_change_sta_links() for adding and removing
> link station.
>
> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
>
> Signed-off-by: Sriram R <quic_srirrama at quicinc.com>
> Signed-off-by: Harshitha Prem <quic_hprem at quicinc.com>
> Signed-off-by: Kalle Valo <quic_kvalo at quicinc.com>
> ---
> drivers/net/wireless/ath/ath12k/mac.c | 97 ++++++++++++++++++++++++++-
> 1 file changed, 96 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c
> index 0ff886e4b3ed..c0cc4e51a4d1 100644
> --- a/drivers/net/wireless/ath/ath12k/mac.c
> +++ b/drivers/net/wireless/ath/ath12k/mac.c
> @@ -5572,6 +5572,101 @@ static void ath12k_mac_op_sta_rc_update(struct ieee80211_hw *hw,
> rcu_read_unlock();
> }
>
> +static struct ath12k_link_sta *
> +ath12k_mac_alloc_assign_link_sta(struct ath12k_hw *ah,
> + struct ath12k_sta *ahsta,
> + struct ath12k_vif *ahvif, u8 link_id)
> +{
> + struct ath12k_link_sta *arsta;
> + int ret;
> +
> + lockdep_assert_wiphy(ah->hw->wiphy);
> +
> + if (link_id >= IEEE80211_MLD_MAX_NUM_LINKS)
> + return NULL;
> +
> + arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
> + if (arsta)
> + return NULL;
> +
> + arsta = kzalloc(sizeof(*arsta), GFP_KERNEL);
kmalloc() is preferred as ath12k_mac_assign_link_sta() will do 'zero'?
> + if (!arsta)
> + return NULL;
> +
> + ret = ath12k_mac_assign_link_sta(ah, ahsta, arsta, ahvif, link_id);
> + if (ret) {
> + kfree(arsta);
> + return NULL;
> + }
> +
> + return arsta;
> +}
> +
More information about the ath12k
mailing list