Browse Source

nl80211: Fix deinit path to unregister nl_mgmt socket

Commit 8e12685c43546d03ced5ec5dc4b56486a1204115 replaced call to
nl80211_mgmt_unsubscribe() on the deinit path with a
wpa_driver_nl80211_set_mode() call. This is not enough to unregister the
bss->nl_mgmt read socket in all cases. Fix this by unconditionally
unsubscribing from the nl80211 events after having change mode to
station.

Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen 11 years ago
parent
commit
b378c41fbc
1 changed files with 1 additions and 0 deletions
  1. 1 0
      src/drivers/driver_nl80211.c

+ 1 - 0
src/drivers/driver_nl80211.c

@@ -4169,6 +4169,7 @@ static void wpa_driver_nl80211_deinit(struct i802_bss *bss)
 	(void) i802_set_iface_flags(bss, 0);
 	if (drv->nlmode != NL80211_IFTYPE_P2P_DEVICE) {
 		wpa_driver_nl80211_set_mode(bss, NL80211_IFTYPE_STATION);
+		nl80211_mgmt_unsubscribe(bss, "deinit");
 	} else {
 		nl80211_mgmt_unsubscribe(bss, "deinit");
 		nl80211_del_p2pdev(bss);