RE: [PATCH RFC v1 1/7] mac80211: Add stations iterator where the iterator function may sleep

From: Pkshih
Date: Mon Jul 19 2021 - 01:47:08 EST




> -----Original Message-----
> From: Martin Blumenstingl [mailto:martin.blumenstingl@xxxxxxxxxxxxxx]
> Sent: Sunday, July 18, 2021 4:41 AM
> To: linux-wireless@xxxxxxxxxxxxxxx
> Cc: tony0620emma@xxxxxxxxx; kvalo@xxxxxxxxxxxxxx; johannes@xxxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx; Neo Jou; Jernej Skrabec; Martin Blumenstingl
> Subject: [PATCH RFC v1 1/7] mac80211: Add stations iterator where the iterator function may sleep
>
> ieee80211_iterate_active_interfaces() and
> ieee80211_iterate_active_interfaces_atomic() already exist, where the
> former allows the iterator function to sleep. Add
> ieee80211_iterate_stations() which is similar to
> ieee80211_iterate_stations_atomic() but allows the iterator to sleep.
> This is needed for adding SDIO support to the rtw88 driver. Some
> interators there are reading or writing registers. With the SDIO ops
> (sdio_readb, sdio_writeb and friends) this means that the iterator
> function may sleep.
>
> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@xxxxxxxxxxxxxx>
> ---
> include/net/mac80211.h | 18 ++++++++++++++++++
> net/mac80211/util.c | 13 +++++++++++++
> 2 files changed, 31 insertions(+)
>
> diff --git a/include/net/mac80211.h b/include/net/mac80211.h
> index d8a1d09a2141..77de89690008 100644
> --- a/include/net/mac80211.h
> +++ b/include/net/mac80211.h
> @@ -5575,6 +5575,24 @@ void ieee80211_iterate_active_interfaces_mtx(struct ieee80211_hw *hw,
> struct ieee80211_vif *vif),
> void *data);
>
> +/**
> + * ieee80211_iterate_stations_atomic - iterate stations

ieee80211_iterate_stations - ...

[...]

--
Ping-Ke