|
|
@ -175,7 +175,17 @@ |
|
|
|
u32 changed = 0;
|
|
|
|
u32 changed = 0;
|
|
|
|
int res;
|
|
|
|
int res;
|
|
|
|
u32 hw_reconf_flags = 0;
|
|
|
|
u32 hw_reconf_flags = 0;
|
|
|
|
@@ -595,30 +594,8 @@ int ieee80211_do_open(struct wireless_de
|
|
|
|
@@ -541,6 +540,9 @@ int ieee80211_do_open(struct wireless_de
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ieee80211_adjust_monitor_flags(sdata, 1);
|
|
|
|
|
|
|
|
ieee80211_configure_filter(local);
|
|
|
|
|
|
|
|
+ mutex_lock(&local->mtx);
|
|
|
|
|
|
|
|
+ ieee80211_recalc_idle(local);
|
|
|
|
|
|
|
|
+ mutex_unlock(&local->mtx);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
netif_carrier_on(dev);
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
@@ -595,30 +597,8 @@ int ieee80211_do_open(struct wireless_de
|
|
|
|
|
|
|
|
|
|
|
|
set_bit(SDATA_STATE_RUNNING, &sdata->state);
|
|
|
|
set_bit(SDATA_STATE_RUNNING, &sdata->state);
|
|
|
|
|
|
|
|
|
|
|
@ -207,7 +217,17 @@ |
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
* set_multicast_list will be invoked by the networking core
|
|
|
|
* set_multicast_list will be invoked by the networking core
|
|
|
|
@@ -1022,6 +999,72 @@ static void ieee80211_if_setup(struct ne
|
|
|
|
@@ -817,6 +797,9 @@ static void ieee80211_do_stop(struct iee
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ieee80211_adjust_monitor_flags(sdata, -1);
|
|
|
|
|
|
|
|
ieee80211_configure_filter(local);
|
|
|
|
|
|
|
|
+ mutex_lock(&local->mtx);
|
|
|
|
|
|
|
|
+ ieee80211_recalc_idle(local);
|
|
|
|
|
|
|
|
+ mutex_unlock(&local->mtx);
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case NL80211_IFTYPE_P2P_DEVICE:
|
|
|
|
|
|
|
|
/* relies on synchronize_rcu() below */
|
|
|
|
|
|
|
|
@@ -1022,6 +1005,72 @@ static void ieee80211_if_setup(struct ne
|
|
|
|
dev->destructor = free_netdev;
|
|
|
|
dev->destructor = free_netdev;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -280,7 +300,7 @@ |
|
|
|
static void ieee80211_iface_work(struct work_struct *work)
|
|
|
|
static void ieee80211_iface_work(struct work_struct *work)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
struct ieee80211_sub_if_data *sdata =
|
|
|
|
struct ieee80211_sub_if_data *sdata =
|
|
|
|
@@ -1126,6 +1169,9 @@ static void ieee80211_iface_work(struct
|
|
|
|
@@ -1126,6 +1175,9 @@ static void ieee80211_iface_work(struct
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
ieee80211_mesh_rx_queued_mgmt(sdata, skb);
|
|
|
|
ieee80211_mesh_rx_queued_mgmt(sdata, skb);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|