diff options
author | Martin Kaistra <martin.kaistra@linutronix.de> | 2023-12-22 13:14:23 +0300 |
---|---|---|
committer | Kalle Valo <kvalo@kernel.org> | 2024-01-10 17:52:55 +0300 |
commit | 2bbd7d584046038ce655e476628bb15e1460fac6 (patch) | |
tree | 3334b1bc7627c327f9f0ee76cddf0a6948eaa8ae /drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | |
parent | d55cb6d8a99441aff55cb9ce663a07f7f1667e83 (diff) | |
download | linux-2bbd7d584046038ce655e476628bb15e1460fac6.tar.xz |
wifi: rtl8xxxu: prepare supporting two virtual interfaces
To prepare for concurrent mode, add an array ("vifs") to rtl8xxxu_priv
to keep track of both interfaces.
Keep the old priv->vif as long there are still users of it and let
priv->vifs[0] point to the same location.
Signed-off-by: Martin Kaistra <martin.kaistra@linutronix.de>
Reviewed-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20231222101442.626837-3-martin.kaistra@linutronix.de
Diffstat (limited to 'drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c')
-rw-r--r-- | drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c index f82b51383377..0e20e7b4552b 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c @@ -6569,10 +6569,12 @@ static int rtl8xxxu_add_interface(struct ieee80211_hw *hw, int ret; u8 val8; - if (!priv->vif) + if (!priv->vif) { priv->vif = vif; - else + priv->vifs[0] = vif; + } else { return -EOPNOTSUPP; + } switch (vif->type) { case NL80211_IFTYPE_STATION: @@ -6622,8 +6624,10 @@ static void rtl8xxxu_remove_interface(struct ieee80211_hw *hw, dev_dbg(&priv->udev->dev, "%s\n", __func__); - if (priv->vif) + if (priv->vif) { priv->vif = NULL; + priv->vifs[0] = NULL; + } } static int rtl8xxxu_config(struct ieee80211_hw *hw, u32 changed) |