[PATCH 3/7] ath10k: track vif list internally
Michal Kazior
michal.kazior at tieto.com
Tue Oct 15 15:37:42 EDT 2013
On 15 October 2013 11:49, Kalle Valo <kvalo at qca.qualcomm.com> wrote:
> Kalle Valo <kvalo at qca.qualcomm.com> writes:
>
>> From: Michal Kazior <michal.kazior at tieto.com>
>>
>> mac80211 interface interations functions have
>> peculiar locking issues. This patch introduces
>> internal (to ath10k) vif list that will be used
>> for vif iteration purposes.
>>
>> Signed-off-by: Michal Kazior <michal.kazior at tieto.com>
>> Signed-off-by: Kalle Valo <kvalo at qca.qualcomm.com>
>
> [...]
>
>> --- a/drivers/net/wireless/ath/ath10k/core.c
>> +++ b/drivers/net/wireless/ath/ath10k/core.c
>> @@ -713,6 +713,7 @@ struct ath10k *ath10k_core_create(void *hif_priv, struct device *dev,
>> mutex_init(&ar->conf_mutex);
>> spin_lock_init(&ar->data_lock);
>>
>> + INIT_LIST_HEAD(&ar->arvifs);
>> INIT_LIST_HEAD(&ar->peers);
>> init_waitqueue_head(&ar->peer_mapping_wq);
>>
>> @@ -824,6 +825,7 @@ int ath10k_core_start(struct ath10k *ar)
>> goto err_disconnect_htc;
>>
>> ar->free_vdev_map = (1 << TARGET_NUM_VDEVS) - 1;
>> + INIT_LIST_HEAD(&ar->arvifs);
>>
>> return 0;
>
> Michal, why do the INIT_LIST_HEAD() twice? Isn't it enough to do it
> core_start()?
Ah, good point. It's most likely okay to just do it in
ath10k_core_start(). The one in ath10k_core_create() isn't required.
Michał
More information about the ath10k
mailing list