cfg80211: send stop AP event only due to internal reason
authorIlan Peer <ilan.peer@intel.com>
Tue, 25 Feb 2014 13:33:38 +0000 (15:33 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 25 Feb 2014 16:34:18 +0000 (17:34 +0100)
commit7c8d5e03acc680eb433b0d5dbacbb6cc9db663a1
tree59b267fcc15a04dcd69c9e3c45e5d51f0fe745c0
parent31559f35c5724976fd975e5d7e90cdb693b8dd27
cfg80211: send stop AP event only due to internal reason

Commit "nl80211: send event when AP operation is stopped" added an
event to notify user space that an AP interface has been stopped, to
handle cases such as suspend etc. The event is sent regardless
if the stop AP flow was triggered by user space or due to internal state
change.

This might cause issues with wpa_supplicant/hostapd flows that consider
stop AP flow as a synchronous one, e.g., AP/GO channel change in the
absence of CSA support. In such cases, the flow will restart the AP
immediately after the stop AP flow is done, and only handle the stop
AP event after the current flow is done, and as a result stop the AP
again.

Change the current implementation to only send the event in case the
stop AP was triggered due to an internal reason.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/ap.c
net/wireless/core.c
net/wireless/core.h
net/wireless/nl80211.c
net/wireless/util.c