[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