pm.c (97af743207466ff8b477e14bfb7af0ba2c93375b) pm.c (42935ecaf4e784d0815afa9a7e5fe7e141157ca3)
1#include <net/mac80211.h>
2#include <net/rtnetlink.h>
3
4#include "ieee80211_i.h"
5#include "mesh.h"
6#include "driver-ops.h"
7#include "led.h"
8

--- 12 unchanged lines hidden (view full) ---

21
22 /* flush out all packets */
23 synchronize_net();
24
25 local->quiescing = true;
26 /* make quiescing visible to timers everywhere */
27 mb();
28
1#include <net/mac80211.h>
2#include <net/rtnetlink.h>
3
4#include "ieee80211_i.h"
5#include "mesh.h"
6#include "driver-ops.h"
7#include "led.h"
8

--- 12 unchanged lines hidden (view full) ---

21
22 /* flush out all packets */
23 synchronize_net();
24
25 local->quiescing = true;
26 /* make quiescing visible to timers everywhere */
27 mb();
28
29 flush_workqueue(local->hw.workqueue);
29 flush_workqueue(local->workqueue);
30
31 /* Don't try to run timers while suspended. */
32 del_timer_sync(&local->sta_cleanup);
33
34 /*
35 * Note that this particular timer doesn't need to be
36 * restarted at resume.
37 */

--- 74 unchanged lines hidden (view full) ---

112 drv_stop(local);
113 }
114
115 /*
116 * flush again, in case driver queued work -- it
117 * shouldn't be doing (or cancel everything in the
118 * stop callback) that but better safe than sorry.
119 */
30
31 /* Don't try to run timers while suspended. */
32 del_timer_sync(&local->sta_cleanup);
33
34 /*
35 * Note that this particular timer doesn't need to be
36 * restarted at resume.
37 */

--- 74 unchanged lines hidden (view full) ---

112 drv_stop(local);
113 }
114
115 /*
116 * flush again, in case driver queued work -- it
117 * shouldn't be doing (or cancel everything in the
118 * stop callback) that but better safe than sorry.
119 */
120 flush_workqueue(local->hw.workqueue);
120 flush_workqueue(local->workqueue);
121
122 local->suspended = true;
123 /* need suspended to be visible before quiescing is false */
124 barrier();
125 local->quiescing = false;
126
127 return 0;
128}
129
130/*
131 * __ieee80211_resume() is a static inline which just calls
132 * ieee80211_reconfig(), which is also needed for hardware
133 * hang/firmware failure/etc. recovery.
134 */
121
122 local->suspended = true;
123 /* need suspended to be visible before quiescing is false */
124 barrier();
125 local->quiescing = false;
126
127 return 0;
128}
129
130/*
131 * __ieee80211_resume() is a static inline which just calls
132 * ieee80211_reconfig(), which is also needed for hardware
133 * hang/firmware failure/etc. recovery.
134 */