ath79: update WA/XC devices UBNT_VERSION to 8.7.4
[openwrt/staging/wigyori.git] / package / network / services / hostapd / patches / 350-nl80211_del_beacon_bss.patch
index 8a2beb312ffb719ded309d8902f591e99a705b76..647ca2cbf9751ef4b6ba09fe0e6dd806837611fd 100644 (file)
@@ -1,34 +1,35 @@
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -2932,11 +2932,11 @@ static int wpa_driver_nl80211_del_beacon
-       struct wpa_driver_nl80211_data *drv = bss->drv;
+@@ -3008,12 +3008,12 @@ static int wpa_driver_nl80211_del_beacon
+               return 0;
  
        wpa_printf(MSG_DEBUG, "nl80211: Remove beacon (ifindex=%d)",
 -                 drv->ifindex);
 +                 bss->ifindex);
-       bss->beacon_set = 0;
-       bss->freq = 0;
+       link->beacon_set = 0;
+       link->freq = 0;
        nl80211_put_wiphy_data_ap(bss);
 -      msg = nl80211_drv_msg(drv, 0, NL80211_CMD_DEL_BEACON);
-+      msg = nl80211_bss_msg(drv, 0, NL80211_CMD_DEL_BEACON);
-       return send_and_recv_msgs(drv, msg, NULL, NULL, NULL, NULL);
- }
++      msg = nl80211_bss_msg(bss, 0, NL80211_CMD_DEL_BEACON);
+       if (!msg)
+               return -ENOBUFS;
  
-@@ -5650,7 +5650,7 @@ static void nl80211_teardown_ap(struct i
+@@ -6100,7 +6100,7 @@ static void nl80211_teardown_ap(struct i
                nl80211_mgmt_unsubscribe(bss, "AP teardown");
  
        nl80211_put_wiphy_data_ap(bss);
--      bss->beacon_set = 0;
-+      wpa_driver_nl80211_del_beacon(bss);
+-      bss->flink->beacon_set = 0;
++      wpa_driver_nl80211_del_beacon_all(bss);
  }
  
  
-@@ -8104,8 +8104,6 @@ static int wpa_driver_nl80211_if_remove(
+@@ -8859,8 +8859,6 @@ static int wpa_driver_nl80211_if_remove(
        } else {
                wpa_printf(MSG_DEBUG, "nl80211: First BSS - reassign context");
                nl80211_teardown_ap(bss);
 -              if (!bss->added_if && !drv->first_bss->next)
--                      wpa_driver_nl80211_del_beacon(bss);
+-                      wpa_driver_nl80211_del_beacon_all(bss);
                nl80211_destroy_bss(bss);
                if (!bss->added_if)
                        i802_set_iface_flags(bss, 0);