commit a70cd0db876b2ffad7e3d608e3f9a2fcf2e7a879 ('nl80211: Don't register for Beacon frames for IEEE 802.11ad AP') looks cause trailing memory leak on IEEE 802.11n enabled mesh. This patch fixes the issue. ----------------- ELOOP: remaining socket: sock=12 eloop_data=0xba8260 user_data=0xbb3d90 handler=0x4aeb90 WPA_TRACE: eloop unregistered socket handler: 0x4aeb90 nl80211_recv_beacons() ../src/drivers/driver_nl80211.c:625 WPA_TRACE: eloop sock - START [0]: ./hostap/wpa_supplicant/wpa_supplicant() [0x431f2a] eloop_sock_table_add_sock() ../src/utils/eloop.c:360 [1]: ./hostap/wpa_supplicant/wpa_supplicant() [0x4b0e49] nl80211_register_eloop_read() ../src/drivers/driver_nl80211.c:153 [2]: ./hostap/wpa_supplicant/wpa_supplicant() [0x4bacf0] dl_list_add() src/utils/list.h:30 nl80211_get_wiphy_data_ap() ../src/drivers/driver_nl80211.c:728 wpa_driver_nl80211_set_ap() ../src/drivers/driver_nl80211.c:3786 [3]: ./hostap/wpa_supplicant/wpa_supplicant(ieee802_11_set_beacon+0x150) [0x469700] ieee802_11_set_beacon() ../src/ap/beacon.c:1349 [4]: ./hostap/wpa_supplicant/wpa_supplicant(ieee802_11_set_beacons+0x45) [0x469805] ieee802_11_set_beacons() ../src/ap/beacon.c:1368 [5]: ./hostap/wpa_supplicant/wpa_supplicant() [0x437559] mesh_mpm_add_peer() mesh_mpm.c:688 [6]: ./hostap/wpa_supplicant/wpa_supplicant(wpa_mesh_new_mesh_peer+0x42) [0x439182] wpa_mesh_new_mesh_peer() mesh_mpm.c:737 [7]: ./hostap/wpa_supplicant/wpa_supplicant(wpa_mesh_notify_peer+0x80) [0x436460] wpa_mesh_notify_peer() mesh.c:347 [8]: ./hostap/wpa_supplicant/wpa_supplicant(wpa_supplicant_event+0xc7a) [0x4a69ba] wpa_supplicant_event() events.c:4312 [9]: ./hostap/wpa_supplicant/wpa_supplicant(process_global_event+0xaf0) [0x4c2d40] nl80211_new_peer_candidate() ../src/drivers/driver_nl80211_event.c:1247 do_process_drv_event() ../src/drivers/driver_nl80211_event.c:2322 process_global_event() ../src/drivers/driver_nl80211_event.c:2360 [10]: /lib/x86_64-linux-gnu/libnl-3.so.200(nl_recvmsgs_report+0x3dc) [0x7f937176873c] [11]: /lib/x86_64-linux-gnu/libnl-3.so.200(nl_recvmsgs+0x9) [0x7f9371768ba9] [12]: ./hostap/wpa_supplicant/wpa_supplicant() [0x4aeb58] wpa_driver_nl80211_event_receive() ../src/drivers/driver_nl80211.c:1457 [13]: ./hostap/wpa_supplicant/wpa_supplicant() [0x43242e] eloop_sock_table_dispatch() ../src/utils/eloop.c:598 [14]: ./hostap/wpa_supplicant/wpa_supplicant(eloop_run+0x22e) [0x432e0e] eloop_sock_table_dispatch() ../src/utils/eloop.c:589 eloop_run() ../src/utils/eloop.c:1219 [15]: ./hostap/wpa_supplicant/wpa_supplicant(wpa_supplicant_run+0x77) [0x49e327] wpa_supplicant_run() wpa_supplicant.c:5608 WPA_TRACE: eloop sock - END MEMLEAK[0xba81b0]: len 72 WPA_TRACE: memleak - START [0]: ./hostap/wpa_supplicant/wpa_supplicant(os_malloc+0x57) [0x430d67] os_malloc() ../src/utils/os_unix.c:690 [1]: ./hostap/wpa_supplicant/wpa_supplicant(os_zalloc+0xe) [0x430fce] os_zalloc() ../src/utils/os_unix.c:749 [2]: ./hostap/wpa_supplicant/wpa_supplicant() [0x4babaa] nl80211_get_wiphy_data_ap() ../src/drivers/driver_nl80211.c:692 wpa_driver_nl80211_set_ap() ../src/drivers/driver_nl80211.c:3786 [3]: ./hostap/wpa_supplicant/wpa_supplicant(ieee802_11_set_beacon+0x150) [0x469700] ieee802_11_set_beacon() ../src/ap/beacon.c:1349 [4]: ./hostap/wpa_supplicant/wpa_supplicant(ieee802_11_set_beacons+0x45) [0x469805] ieee802_11_set_beacons() ../src/ap/beacon.c:1368 [5]: ./hostap/wpa_supplicant/wpa_supplicant() [0x437559] mesh_mpm_add_peer() mesh_mpm.c:688 [6]: ./hostap/wpa_supplicant/wpa_supplicant(wpa_mesh_new_mesh_peer+0x42) [0x439182] wpa_mesh_new_mesh_peer() mesh_mpm.c:737 [7]: ./hostap/wpa_supplicant/wpa_supplicant(wpa_mesh_notify_peer+0x80) [0x436460] wpa_mesh_notify_peer() mesh.c:347 [8]: ./hostap/wpa_supplicant/wpa_supplicant(wpa_supplicant_event+0xc7a) [0x4a69ba] wpa_supplicant_event() events.c:4312 [9]: ./hostap/wpa_supplicant/wpa_supplicant(process_global_event+0xaf0) [0x4c2d40] nl80211_new_peer_candidate() ../src/drivers/driver_nl80211_event.c:1247 do_process_drv_event() ../src/drivers/driver_nl80211_event.c:2322 process_global_event() ../src/drivers/driver_nl80211_event.c:2360 [10]: /lib/x86_64-linux-gnu/libnl-3.so.200(nl_recvmsgs_report+0x3dc) [0x7f937176873c] [11]: /lib/x86_64-linux-gnu/libnl-3.so.200(nl_recvmsgs+0x9) [0x7f9371768ba9] [12]: ./hostap/wpa_supplicant/wpa_supplicant() [0x4aeb58] wpa_driver_nl80211_event_receive() ../src/drivers/driver_nl80211.c:1457 [13]: ./hostap/wpa_supplicant/wpa_supplicant() [0x43242e] eloop_sock_table_dispatch() ../src/utils/eloop.c:598 [14]: ./hostap/wpa_supplicant/wpa_supplicant(eloop_run+0x22e) [0x432e0e] eloop_sock_table_dispatch() ../src/utils/eloop.c:589 eloop_run() ../src/utils/eloop.c:1219 [15]: ./hostap/wpa_supplicant/wpa_supplicant(wpa_supplicant_run+0x77) [0x49e327] wpa_supplicant_run() wpa_supplicant.c:5608 WPA_TRACE: memleak - END MEMLEAK: total 72 bytes ----------------- Signed-off-by: Masashi Honma <masashi.honma@xxxxxxxxx> --- src/drivers/driver_nl80211.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 6080079..a4b9134 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -2281,6 +2281,8 @@ static void nl80211_mgmt_unsubscribe(struct i802_bss *bss, const char *reason) wpa_printf(MSG_DEBUG, "nl80211: Unsubscribe mgmt frames handle %p " "(%s)", bss->nl_mgmt, reason); nl80211_destroy_eloop_handle(&bss->nl_mgmt); + + nl80211_put_wiphy_data_ap(bss); } -- 2.7.4 _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap