[PATCH 5/9] wifi: mt76: mt7996: add MAC support
Felix Fietkau
nbd at nbd.name
Thu Dec 1 02:51:51 PST 2022
On 01.12.22 11:39, Kalle Valo wrote:
> Shayne Chen <shayne.chen at mediatek.com> writes:
>
>> (Split the big patch into smaller intermediate patches by functionality
>> for easier review. Refer to the cover letter for more info.)
>>
>> Signed-off-by: Shayne Chen <shayne.chen at mediatek.com>
>
> [...]
>
>> +static void mt7996_mac_sta_poll(struct mt7996_dev *dev)
>> +{
>> + static const u8 ac_to_tid[] = {
>> + [IEEE80211_AC_BE] = 0,
>> + [IEEE80211_AC_BK] = 1,
>> + [IEEE80211_AC_VI] = 4,
>> + [IEEE80211_AC_VO] = 6
>> + };
>> + struct ieee80211_sta *sta;
>> + struct mt7996_sta *msta;
>> + struct rate_info *rate;
>> + u32 tx_time[IEEE80211_NUM_ACS], rx_time[IEEE80211_NUM_ACS];
>> + LIST_HEAD(sta_poll_list);
>> + int i;
>> +
>> + spin_lock_bh(&dev->sta_poll_lock);
>> + list_splice_init(&dev->sta_poll_list, &sta_poll_list);
>> + spin_unlock_bh(&dev->sta_poll_lock);
>> +
>> + rcu_read_lock();
>> +
>> + while (true) {
>
> In upstream we have a preference that there's some kind of limit for
> loops, to avoid neverending loops.
This loop pulls entries from the on-stack sta_poll_list and bails out
when the list is empty, so it's impossible for it to be neverending.
- Felix
More information about the Linux-mediatek
mailing list