summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorDong Aisheng <b29396@freescale.com>2015-04-03 17:15:13 +0800
committerDong Aisheng <b29396@freescale.com>2015-06-08 11:31:47 +0800
commit77261efaa267e173d01c12152a831371cb801a4e (patch)
tree9979a4783c157c14a82bed39273490c7e877088b /drivers
parenta59be469da8b9db0d766c884e131917efaa7ecd3 (diff)
MLK-11065-6 bcmdhd: fix warning when rmmod module
root@imx7d_all:~# rmmod bcmdhd dhd_prot_ioctl : bus is down. we have nothing to do dhd_wlfc_deinit():3268, ampdu_hostreorder get failed Err = -1 dhd_prot_ioctl : bus is down. we have nothing to do dhd_wlfc_deinit():3291 failed to enable/disable bdcv2 tlv signaling Err = -1 dhd_detach(): thread:dhd_watchdog_thread:2d4 terminated OK dhd_dpc_thread: Unexpected up_cnt 0 dhd_detach(): thread:dhd_dpc:2d5 terminated OK CFG80211-ERROR) wl_event_handler : was terminated wl_destroy_event_handler(): thread:wl_event_handler:2d3 terminated OK ------------[ cut here ]------------ Kernel BUG at 800d12b0 [verbose debug info unavailable] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM Modules linked in: bcmdhd(-) evbug CPU: 0 PID: 755 Comm: rmmod Not tainted 3.14.28-7D_alpha #1 task: a8a31680 ti: a841a000 task.ti: a841a000 PC is at kfree+0x17c/0x180 LR is at wiphy_unregister+0x15c/0x1cc pc : [<800d12b0>] lr : [<806b0cf8>] psr: 40070013 sp : a841be28 ip : 00000000 fp : a901396c r10: 7f078dc0 r9 : a9240120 r8 : a9240380 r7 : a9240000 r6 : a9010000 r5 : ab73af20 r4 : a9240120 r3 : 00000000 r2 : ab75a000 r1 : 00000000 r0 : 7f079220 Flags: nZcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user Control: 10c53c7d Table: a863406a DAC: 00000015 Process rmmod (pid: 755, stack limit = 0xa841a238) Stack: (0xa841be28 to 0xa841c000) be20: 7f079220 a9240120 00000000 a9010000 a9240000 a9240380 be40: a9240120 7f078dc0 a901396c 806b0cf8 00000000 7f078dc0 a901396c 805962b4 be60: 7f07cea0 a8433800 a8ae3840 a9240380 a9010000 a9013000 a9240380 7f02b088 be80: 00000000 00000000 a9010000 a9013000 a9010000 7f07cea0 7f078dc0 7f00f00c bea0: 00000001 a850f800 7f078dc0 a865b3c0 00000081 8000e5e4 a841a000 00000000 bec0: 00000000 7f05588c 7f078dc0 a850f800 00000000 7f056080 7f056044 a865b180 bee0: a865b340 7f048944 a8fe7800 a865b3c0 7f07acd4 7f04a37c 7f04a330 a8487408 bf00: a8487400 804baf10 a8487408 7f07acd4 a848743c 803476b4 7f07acd4 a8487408 bf20: 7f07acd4 80347dc4 7f07acd4 7f07ad38 00000800 803473b4 00000000 7f05f158 bf40: 7f05f12c 80083be8 00000000 00000000 7f07ad38 00000800 a841bf4c 646d6362 bf60: 00006468 00000000 8108f030 a8a31680 a8a31a30 00000000 00000000 8004605c bf80: a89c4d80 a841a018 8000e5e4 a841bfb0 a841a000 00011330 00000000 7ecc5e1c bfa0: 00000002 8000e460 00000000 7ecc5e1c 01b05d3c 00000800 76f26104 00002002 bfc0: 00000000 7ecc5e1c 00000002 00000081 7ecc5f0a 00000001 01b05d08 00000000 bfe0: 76eebeb0 7ecc5bfc 00016e3c 76eebebc 60080010 01b05d3c efdff749 faff7bf3 [<800d12b0>] (kfree) from [<806b0cf8>] (wiphy_unregister+0x15c/0x1cc) [<806b0cf8>] (wiphy_unregister) from [<7f02b088>] (wl_free_wdev+0x2c/0xf8 [bcmdhd]) [<7f02b088>] (wl_free_wdev [bcmdhd]) from [<7f00f00c>] (dhd_detach+0x274/0x430 [bcmdhd]) [<7f00f00c>] (dhd_detach [bcmdhd]) from [<7f05588c>] (dhdsdio_release+0x40/0x1cc [bcmdhd]) [<7f05588c>] (dhdsdio_release [bcmdhd]) from [<7f056080>] (dhdsdio_disconnect+0x3c/0xa0 [bcmdhd]) [<7f056080>] (dhdsdio_disconnect [bcmdhd]) from [<7f048944>] (bcmsdh_remove+0x3c/0x60 [bcmdhd]) [<7f048944>] (bcmsdh_remove [bcmdhd]) from [<7f04a37c>] (bcmsdh_sdmmc_remove+0x4c/0x64 [bcmdhd]) [<7f04a37c>] (bcmsdh_sdmmc_remove [bcmdhd]) from [<804baf10>] (sdio_bus_remove+0x30/0xf8) [<804baf10>] (sdio_bus_remove) from [<803476b4>] (__device_release_driver+0x70/0xcc) [<803476b4>] (__device_release_driver) from [<80347dc4>] (driver_detach+0xac/0xb0) [<80347dc4>] (driver_detach) from [<803473b4>] (bus_remove_driver+0x4c/0xa0) [<803473b4>] (bus_remove_driver) from [<7f05f158>] (dhd_module_cleanup+0x2c/0x3c [bcmdhd]) [<7f05f158>] (dhd_module_cleanup [bcmdhd]) from [<80083be8>] (SyS_delete_module+0x11c/0x17c) [<80083be8>] (SyS_delete_module) from [<8000e460>] (ret_fast_syscall+0x0/0x30) Code: e1a01005 e1a02006 e8bd4ff8 eafffef1 (e7f001f2) ---[ end trace ca749705cd612037 ]--- Segmentation fault Signed-off-by: Dong Aisheng <b29396@freescale.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/bcmdhd/wl_cfg80211.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/bcmdhd/wl_cfg80211.c b/drivers/net/wireless/bcmdhd/wl_cfg80211.c
index ad665d224f3f..a6d897d04247 100644
--- a/drivers/net/wireless/bcmdhd/wl_cfg80211.c
+++ b/drivers/net/wireless/bcmdhd/wl_cfg80211.c
@@ -7380,6 +7380,9 @@ static void wl_free_wdev(struct bcm_cfg80211 *cfg)
}
wiphy = wdev->wiphy;
+ wdev->wiphy->wowlan = NULL;
+ wdev->wiphy->wowlan_config = NULL;
+
#if (LINUX_VERSION_CODE > KERNEL_VERSION(3, 13, 0)) || defined(WL_VENDOR_EXT_SUPPORT)
wl_cfgvendor_detach(wdev->wiphy);
#endif /* if (LINUX_VERSION_CODE > KERNEL_VERSION(3, 13, 0)) || defined(WL_VENDOR_EXT_SUPPORT) */