|
|
@@ -58,7 +58,16 @@
|
|
|
static int nl80211_register_beacons(struct wpa_driver_nl80211_data *drv,
|
|
|
struct nl80211_wiphy_data *w)
|
|
|
{
|
|
|
-@@ -6236,7 +6254,7 @@ const char * nl80211_iftype_str(enum nl8
|
|
|
+@@ -2427,6 +2445,8 @@ static void * wpa_driver_nl80211_drv_ini
|
|
|
+ p2p_mode))
|
|
|
+ goto failed;
|
|
|
+
|
|
|
++ bss->radio_mask = nl80211_get_radio_mask(bss);
|
|
|
++
|
|
|
+ if (drv->capa.flags2 & WPA_DRIVER_FLAGS2_CONTROL_PORT_TX_STATUS) {
|
|
|
+ drv->control_port_ap = 1;
|
|
|
+ goto skip_wifi_status;
|
|
|
+@@ -6236,7 +6256,7 @@ const char * nl80211_iftype_str(enum nl8
|
|
|
static int nl80211_create_iface_once(struct wpa_driver_nl80211_data *drv,
|
|
|
const char *ifname,
|
|
|
enum nl80211_iftype iftype,
|
|
|
@@ -67,7 +76,7 @@
|
|
|
int (*handler)(struct nl_msg *, void *),
|
|
|
void *arg)
|
|
|
{
|
|
|
-@@ -6256,6 +6274,10 @@ static int nl80211_create_iface_once(str
|
|
|
+@@ -6256,6 +6276,10 @@ static int nl80211_create_iface_once(str
|
|
|
if (wds && nla_put_u8(msg, NL80211_ATTR_4ADDR, wds))
|
|
|
goto fail;
|
|
|
|
|
|
@@ -78,7 +87,7 @@
|
|
|
/*
|
|
|
* Tell cfg80211 that the interface belongs to the socket that created
|
|
|
* it, and the interface should be deleted when the socket is closed.
|
|
|
-@@ -6311,14 +6333,14 @@ static int nl80211_create_iface_once(str
|
|
|
+@@ -6311,14 +6335,14 @@ static int nl80211_create_iface_once(str
|
|
|
|
|
|
int nl80211_create_iface(struct wpa_driver_nl80211_data *drv,
|
|
|
const char *ifname, enum nl80211_iftype iftype,
|
|
|
@@ -96,7 +105,7 @@
|
|
|
|
|
|
/* if error occurred and interface exists already */
|
|
|
if (ret < 0 && if_nametoindex(ifname)) {
|
|
|
-@@ -6344,7 +6366,7 @@ int nl80211_create_iface(struct wpa_driv
|
|
|
+@@ -6344,7 +6368,7 @@ int nl80211_create_iface(struct wpa_driv
|
|
|
|
|
|
/* Try to create the interface again */
|
|
|
ret = nl80211_create_iface_once(drv, ifname, iftype, addr,
|
|
|
@@ -105,7 +114,7 @@
|
|
|
}
|
|
|
|
|
|
if (ret >= 0 && is_p2p_net_interface(iftype)) {
|
|
|
-@@ -8688,8 +8710,8 @@ static int i802_set_wds_sta(void *priv,
|
|
|
+@@ -8688,8 +8712,8 @@ static int i802_set_wds_sta(void *priv,
|
|
|
if (!if_nametoindex(name)) {
|
|
|
if (nl80211_create_iface(drv, name,
|
|
|
NL80211_IFTYPE_AP_VLAN,
|
|
|
@@ -116,7 +125,7 @@
|
|
|
return -1;
|
|
|
|
|
|
if (bridge_ifname)
|
|
|
-@@ -9060,7 +9082,8 @@ static int wpa_driver_nl80211_if_add(voi
|
|
|
+@@ -9060,7 +9084,8 @@ static int wpa_driver_nl80211_if_add(voi
|
|
|
|
|
|
os_memset(&p2pdev_info, 0, sizeof(p2pdev_info));
|
|
|
ifidx = nl80211_create_iface(drv, ifname, nlmode, addr,
|
|
|
@@ -126,7 +135,7 @@
|
|
|
&p2pdev_info, use_existing);
|
|
|
if (!p2pdev_info.wdev_id_set || ifidx != 0) {
|
|
|
wpa_printf(MSG_ERROR, "nl80211: Failed to create a P2P Device interface %s",
|
|
|
-@@ -9077,7 +9100,8 @@ static int wpa_driver_nl80211_if_add(voi
|
|
|
+@@ -9077,7 +9102,8 @@ static int wpa_driver_nl80211_if_add(voi
|
|
|
(long long unsigned int) p2pdev_info.wdev_id);
|
|
|
} else {
|
|
|
ifidx = nl80211_create_iface(drv, ifname, nlmode, addr,
|
|
|
@@ -136,7 +145,7 @@
|
|
|
if (use_existing && ifidx == -ENFILE) {
|
|
|
added = 0;
|
|
|
ifidx = if_nametoindex(ifname);
|
|
|
-@@ -9147,6 +9171,8 @@ static int wpa_driver_nl80211_if_add(voi
|
|
|
+@@ -9147,6 +9173,8 @@ static int wpa_driver_nl80211_if_add(voi
|
|
|
new_bss->ctx = bss_ctx;
|
|
|
new_bss->added_if = added;
|
|
|
|