[PATCH v6 1/3] wifi: ath12k: prepare vif data structure for MLO handling
Kalle Valo
kvalo at kernel.org
Thu Aug 8 03:57:59 PDT 2024
Kalle Valo <kvalo at kernel.org> writes:
> Rameshkumar Sundaram <quic_ramess at quicinc.com> writes:
>
>> Locking:
>> Currently modifications to members of arvif and arsta are protected by ar->conf_mutex
>> and it stays as such.
>> Now with these hw level structure (ahvif) being introduced, any modifications
>> to its members and link objects (i.e., arvifs[] which are dynamically allocated)
>> needs to be protected for writing and ah->conf_mutex is used for the same.
>> Also, atomic contexts(say WMI events and certain mac_ops) that we currently have in driver
>> will not(shouldn't be allowed) do any modifications but can read them and
>> rcu_read_lock() is used for the same.
>
> Please elaborate more about your locking design. Because of past bad
> contributions from Qualcomm the bar is really high for adding any new
> locks. I'm doing the locking analysis right now but it would help a lot
> if you could provide your own analysis.
>
> My first impressions:
>
> It's really confusing to have two locks with the same name (conf_mutex
> in struct ath12k_hw and struct ath12k).
>
> struct ath12k_hw already has hw_mutex so I'm even more suspicious about
> this locking design. That's not explained at all in commit messages.
I didn't get any replies, and my own analysis is still ongoing, but the
more I look at this, the more I feel using two overlapping mutexes is
overkill. I'm starting to wonder if we would convert to using
wiphy_lock()? That might simplify things significantly. I should have an
old patchset doing that stored somewhere.
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
More information about the ath12k
mailing list