mac80211: clear local->suspended before calling drv_resume()
authorEliad Peller <eliad@wizery.com>
Wed, 8 Jul 2015 12:41:47 +0000 (15:41 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 17 Jul 2015 13:40:46 +0000 (15:40 +0200)
commitb0485e9f3defbed6effcde595df9b9fdbdb2524e
tree3c171cd36db7d7efca194599463bd91b059c6966
parent42d8d789615d539cb13733e516b94e874a34f775
mac80211: clear local->suspended before calling drv_resume()

Currently, mac80211 calls drv_resume() on wowlan resume,
but drops any incoming frame until local->suspended is
cleared later on.

This requires the low-level driver to support a new state,
in which it is expected to fully work (as it was resumed)
but not passing rx frames yet (as they will be dropped).

iwlwifi (and probably other drivers as well) has issues
supporting such mode.

Since in the wowlan case we already short-circuit
ieee80211_reconfig, there's nothing that prevents us from
clearing local->suspend before calling drv_resume(),
and letting the low-level driver work normally.

Signed-off-by: Eliad Peller <eliadx.peller@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/util.c