mirror of
https://github.com/torvalds/linux.git
synced 2026-06-06 05:27:07 +02:00
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
This commit is contained in:
parent
d55cb6d8a9
commit
2bbd7d5840
|
|
@ -1897,6 +1897,8 @@ struct rtl8xxxu_priv {
|
|||
* is supported and no iface_combinations are provided.
|
||||
*/
|
||||
struct ieee80211_vif *vif;
|
||||
|
||||
struct ieee80211_vif *vifs[2];
|
||||
struct delayed_work ra_watchdog;
|
||||
struct work_struct c2hcmd_work;
|
||||
struct sk_buff_head c2hcmd_queue;
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user