diff options
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r-- | net/mac80211/mlme.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 854ef4ed2cf..75b896d47ea 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -1653,7 +1653,7 @@ ieee80211_rx_result ieee80211_sta_rx_mgmt(struct ieee80211_sub_if_data *sdata, | |||
1653 | case IEEE80211_STYPE_DISASSOC: | 1653 | case IEEE80211_STYPE_DISASSOC: |
1654 | case IEEE80211_STYPE_ACTION: | 1654 | case IEEE80211_STYPE_ACTION: |
1655 | skb_queue_tail(&sdata->skb_queue, skb); | 1655 | skb_queue_tail(&sdata->skb_queue, skb); |
1656 | ieee80211_queue_work(&local->hw, &sdata->u.mgd.work); | 1656 | ieee80211_queue_work(&local->hw, &sdata->work); |
1657 | return RX_QUEUED; | 1657 | return RX_QUEUED; |
1658 | } | 1658 | } |
1659 | 1659 | ||
@@ -1779,13 +1779,13 @@ static void ieee80211_sta_timer(unsigned long data) | |||
1779 | return; | 1779 | return; |
1780 | } | 1780 | } |
1781 | 1781 | ||
1782 | ieee80211_queue_work(&local->hw, &ifmgd->work); | 1782 | ieee80211_queue_work(&local->hw, &sdata->work); |
1783 | } | 1783 | } |
1784 | 1784 | ||
1785 | static void ieee80211_sta_work(struct work_struct *work) | 1785 | static void ieee80211_sta_work(struct work_struct *work) |
1786 | { | 1786 | { |
1787 | struct ieee80211_sub_if_data *sdata = | 1787 | struct ieee80211_sub_if_data *sdata = |
1788 | container_of(work, struct ieee80211_sub_if_data, u.mgd.work); | 1788 | container_of(work, struct ieee80211_sub_if_data, work); |
1789 | struct ieee80211_local *local = sdata->local; | 1789 | struct ieee80211_local *local = sdata->local; |
1790 | struct ieee80211_if_managed *ifmgd; | 1790 | struct ieee80211_if_managed *ifmgd; |
1791 | struct sk_buff *skb; | 1791 | struct sk_buff *skb; |
@@ -1906,8 +1906,7 @@ static void ieee80211_restart_sta_timer(struct ieee80211_sub_if_data *sdata) | |||
1906 | ieee80211_queue_work(&sdata->local->hw, | 1906 | ieee80211_queue_work(&sdata->local->hw, |
1907 | &sdata->u.mgd.monitor_work); | 1907 | &sdata->u.mgd.monitor_work); |
1908 | /* and do all the other regular work too */ | 1908 | /* and do all the other regular work too */ |
1909 | ieee80211_queue_work(&sdata->local->hw, | 1909 | ieee80211_queue_work(&sdata->local->hw, &sdata->work); |
1910 | &sdata->u.mgd.work); | ||
1911 | } | 1910 | } |
1912 | } | 1911 | } |
1913 | 1912 | ||
@@ -1922,7 +1921,6 @@ void ieee80211_sta_quiesce(struct ieee80211_sub_if_data *sdata) | |||
1922 | * time -- the code here is properly synchronised. | 1921 | * time -- the code here is properly synchronised. |
1923 | */ | 1922 | */ |
1924 | 1923 | ||
1925 | cancel_work_sync(&ifmgd->work); | ||
1926 | cancel_work_sync(&ifmgd->beacon_connection_loss_work); | 1924 | cancel_work_sync(&ifmgd->beacon_connection_loss_work); |
1927 | if (del_timer_sync(&ifmgd->timer)) | 1925 | if (del_timer_sync(&ifmgd->timer)) |
1928 | set_bit(TMR_RUNNING_TIMER, &ifmgd->timers_running); | 1926 | set_bit(TMR_RUNNING_TIMER, &ifmgd->timers_running); |
@@ -1954,7 +1952,7 @@ void ieee80211_sta_setup_sdata(struct ieee80211_sub_if_data *sdata) | |||
1954 | struct ieee80211_if_managed *ifmgd; | 1952 | struct ieee80211_if_managed *ifmgd; |
1955 | 1953 | ||
1956 | ifmgd = &sdata->u.mgd; | 1954 | ifmgd = &sdata->u.mgd; |
1957 | INIT_WORK(&ifmgd->work, ieee80211_sta_work); | 1955 | INIT_WORK(&sdata->work, ieee80211_sta_work); |
1958 | INIT_WORK(&ifmgd->monitor_work, ieee80211_sta_monitor_work); | 1956 | INIT_WORK(&ifmgd->monitor_work, ieee80211_sta_monitor_work); |
1959 | INIT_WORK(&ifmgd->chswitch_work, ieee80211_chswitch_work); | 1957 | INIT_WORK(&ifmgd->chswitch_work, ieee80211_chswitch_work); |
1960 | INIT_WORK(&ifmgd->beacon_connection_loss_work, | 1958 | INIT_WORK(&ifmgd->beacon_connection_loss_work, |