001-10-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-set_aif.patch 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. From 43532c050f8eec4056a21978fdb5b958e1477553 Mon Sep 17 00:00:00 2001
  2. From: Martin Kaistra <[email protected]>
  3. Date: Fri, 22 Dec 2023 11:14:31 +0100
  4. Subject: [PATCH 10/21] wifi: rtl8xxxu: support multiple interfaces in
  5. set_aifs()
  6. In concurrent mode supported by this driver, both interfaces will use
  7. the same channel and same wireless mode.
  8. It is therefore possible to get the wireless mode by checking the first
  9. connected interface.
  10. Signed-off-by: Martin Kaistra <[email protected]>
  11. Reviewed-by: Ping-Ke Shih <[email protected]>
  12. Signed-off-by: Kalle Valo <[email protected]>
  13. Link: https://msgid.link/[email protected]
  14. ---
  15. drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 10 ++++++++--
  16. 1 file changed, 8 insertions(+), 2 deletions(-)
  17. --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
  18. +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
  19. @@ -4913,14 +4913,20 @@ static void rtl8xxxu_set_aifs(struct rtl
  20. u8 aifs, aifsn, sifs;
  21. int i;
  22. - if (priv->vif) {
  23. + for (i = 0; i < ARRAY_SIZE(priv->vifs); i++) {
  24. + if (!priv->vifs[i])
  25. + continue;
  26. +
  27. struct ieee80211_sta *sta;
  28. rcu_read_lock();
  29. - sta = ieee80211_find_sta(priv->vif, priv->vif->bss_conf.bssid);
  30. + sta = ieee80211_find_sta(priv->vifs[i], priv->vifs[i]->bss_conf.bssid);
  31. if (sta)
  32. wireless_mode = rtl8xxxu_wireless_mode(priv->hw, sta);
  33. rcu_read_unlock();
  34. +
  35. + if (wireless_mode)
  36. + break;
  37. }
  38. if (priv->hw->conf.chandef.chan->band == NL80211_BAND_5GHZ ||