Patchwork [v3,01/15] driver_nl80211: move preq NL handle into BSS

login
register
mail settings
Submitter Johannes Berg
Date Nov. 19, 2011, 12:39 p.m.
Message ID <20111119123949.681759399@sipsolutions.net>
Download mbox | patch
Permalink /patch/126568/
State Accepted
Commit 221a59c9b619adaae08e62d3a456cc3ede280aee
Headers show

Comments

Johannes Berg - Nov. 19, 2011, 12:39 p.m.
From: Johannes Berg <johannes.berg@intel.com>

Signed-hostap: Johannes Berg <johannes.berg@intel.com>
---
 src/drivers/driver_nl80211.c |   24 +++++++++++++-----------
 1 files changed, 13 insertions(+), 11 deletions(-)
Jouni Malinen - Nov. 19, 2011, 5:50 p.m.
Thanks, applied.

Patch

diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index f42011a..a3b0e0e 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -167,6 +167,8 @@  struct i802_bss {
 	unsigned int beacon_set:1;
 	unsigned int added_if_into_bridge:1;
 	unsigned int added_bridge:1;
+
+	struct nl80211_handles nl_preq;
 };
 
 struct wpa_driver_nl80211_data {
@@ -187,7 +189,7 @@  struct wpa_driver_nl80211_data {
 
 	int scan_complete_events;
 
-	struct nl80211_handles nl_event, nl_preq;
+	struct nl80211_handles nl_event;
 
 	u8 auth_bssid[ETH_ALEN];
 	u8 bssid[ETH_ALEN];
@@ -2542,7 +2544,7 @@  static void wpa_driver_nl80211_deinit(void *priv)
 		close(drv->eapol_tx_sock);
 #endif /* CONFIG_AP */
 
-	if (drv->nl_preq.handle)
+	if (bss->nl_preq.handle)
 		wpa_driver_nl80211_probe_req_report(bss, 0);
 	if (bss->added_if_into_bridge) {
 		if (linux_br_del_if(drv->global->ioctl_sock, bss->brname,
@@ -7047,37 +7049,37 @@  static int wpa_driver_nl80211_probe_req_report(void *priv, int report)
 	struct wpa_driver_nl80211_data *drv = bss->drv;
 
 	if (!report) {
-		if (drv->nl_preq.handle) {
+		if (bss->nl_preq.handle) {
 			eloop_unregister_read_sock(
-				nl_socket_get_fd(drv->nl_preq.handle));
-			nl_destroy_handles(&drv->nl_preq);
+				nl_socket_get_fd(bss->nl_preq.handle));
+			nl_destroy_handles(&bss->nl_preq);
 		}
 		return 0;
 	}
 
-	if (drv->nl_preq.handle) {
+	if (bss->nl_preq.handle) {
 		wpa_printf(MSG_DEBUG, "nl80211: Probe Request reporting "
 			   "already on!");
 		return 0;
 	}
 
-	if (nl_create_handles(&drv->nl_preq, drv->global->nl_cb, "preq"))
+	if (nl_create_handles(&bss->nl_preq, drv->global->nl_cb, "preq"))
 		return -1;
 
-	if (nl80211_register_frame(drv, drv->nl_preq.handle,
+	if (nl80211_register_frame(drv, bss->nl_preq.handle,
 				   (WLAN_FC_TYPE_MGMT << 2) |
 				   (WLAN_FC_STYPE_PROBE_REQ << 4),
 				   NULL, 0) < 0)
 		goto out_err;
 
-	eloop_register_read_sock(nl_socket_get_fd(drv->nl_preq.handle),
+	eloop_register_read_sock(nl_socket_get_fd(bss->nl_preq.handle),
 				 wpa_driver_nl80211_event_receive, drv,
-				 drv->nl_preq.handle);
+				 bss->nl_preq.handle);
 
 	return 0;
 
  out_err:
-	nl_destroy_handles(&drv->nl_preq);
+	nl_destroy_handles(&bss->nl_preq);
 	return -1;
 }