diff options
author | hauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2013-11-11 22:03:58 +0000 |
---|---|---|
committer | hauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2013-11-11 22:03:58 +0000 |
commit | e2687447c5ebc6179859ca95c50150651a4411f7 (patch) | |
tree | 6dbec4eeffffaea98162d53f64f603c13594a4c4 | |
parent | 255a3312f414db79d8dc6599e0df84b7806ab0e2 (diff) |
broadcom-wl: perform additional cleanup on wl module unload
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38761 3c298f89-4303-0410-b956-a3cf2f4a3e73
5 files changed, 10 insertions, 6 deletions
diff --git a/package/kernel/broadcom-wl/patches/007-use-glue-driver.patch b/package/kernel/broadcom-wl/patches/007-use-glue-driver.patch index 2639abcf6a..a30dcc4edf 100644 --- a/package/kernel/broadcom-wl/patches/007-use-glue-driver.patch +++ b/package/kernel/broadcom-wl/patches/007-use-glue-driver.patch @@ -108,18 +108,20 @@ #ifdef CONFIG_PCI error = pci_register_driver(&wl_pci_driver); -@@ -1082,7 +1053,9 @@ wl_module_init(void) +@@ -1082,7 +1053,11 @@ wl_module_init(void) return 0; error_pci: - ssb_driver_unregister(&wl_ssb_driver); +#if defined(CONFIG_SSB) || defined(CONFIG_BCMA) + wl_glue_unregister(); ++ wl_glue_set_attach_callback(NULL); ++ wl_glue_set_remove_callback(NULL); +#endif /* defined(CONFIG_SSB) || defined(CONFIG_BCMA) */ return error; } -@@ -1099,9 +1072,9 @@ wl_module_exit(void) +@@ -1099,9 +1074,11 @@ wl_module_exit(void) #ifdef CONFIG_PCI pci_unregister_driver(&wl_pci_driver); #endif /* CONFIG_PCI */ @@ -128,6 +130,8 @@ -#endif /* CONFIG_SSB */ +#if defined(CONFIG_SSB) || defined(CONFIG_BCMA) + wl_glue_unregister(); ++ wl_glue_set_attach_callback(NULL); ++ wl_glue_set_remove_callback(NULL); +#endif /* defined(CONFIG_SSB) || defined(CONFIG_BCMA) */ } diff --git a/package/kernel/broadcom-wl/patches/008-fix_virtual_interfaces.patch b/package/kernel/broadcom-wl/patches/008-fix_virtual_interfaces.patch index 6cffa27810..360593115b 100644 --- a/package/kernel/broadcom-wl/patches/008-fix_virtual_interfaces.patch +++ b/package/kernel/broadcom-wl/patches/008-fix_virtual_interfaces.patch @@ -1,6 +1,6 @@ --- a/driver/wl_linux.c +++ b/driver/wl_linux.c -@@ -1541,6 +1541,8 @@ wl_add_if(wl_info_t *wl, struct wlc_if* +@@ -1545,6 +1545,8 @@ wl_add_if(wl_info_t *wl, struct wlc_if* return NULL; } diff --git a/package/kernel/broadcom-wl/patches/012-compat-3.10.patch b/package/kernel/broadcom-wl/patches/012-compat-3.10.patch index 0e0415f9cd..1ab853967a 100644 --- a/package/kernel/broadcom-wl/patches/012-compat-3.10.patch +++ b/package/kernel/broadcom-wl/patches/012-compat-3.10.patch @@ -36,7 +36,7 @@ static int wl_read_proc(char *buffer, char **start, off_t offset, int length, int *eof, void *data) { -@@ -1137,7 +1137,7 @@ wl_free(wl_info_t *wl) +@@ -1141,7 +1141,7 @@ wl_free(wl_info_t *wl) /* free common resources */ if (wl->wlc) { diff --git a/package/kernel/broadcom-wl/patches/013-interface-name.patch b/package/kernel/broadcom-wl/patches/013-interface-name.patch index 3a136de037..a19e3a9882 100644 --- a/package/kernel/broadcom-wl/patches/013-interface-name.patch +++ b/package/kernel/broadcom-wl/patches/013-interface-name.patch @@ -1,6 +1,6 @@ --- a/driver/wl_linux.c +++ b/driver/wl_linux.c -@@ -1556,7 +1556,7 @@ wl_add_if(wl_info_t *wl, struct wlc_if* +@@ -1560,7 +1560,7 @@ wl_add_if(wl_info_t *wl, struct wlc_if* wl_if_setup(wlif->dev); diff --git a/package/kernel/broadcom-wl/patches/110-add_number_to_dev_name.patch b/package/kernel/broadcom-wl/patches/110-add_number_to_dev_name.patch index 13ce72741e..28917d912a 100644 --- a/package/kernel/broadcom-wl/patches/110-add_number_to_dev_name.patch +++ b/package/kernel/broadcom-wl/patches/110-add_number_to_dev_name.patch @@ -1,6 +1,6 @@ --- a/driver/wl_linux.c +++ b/driver/wl_linux.c -@@ -1412,7 +1412,7 @@ wl_alloc_if(wl_info_t *wl, int iftype, u +@@ -1416,7 +1416,7 @@ wl_alloc_if(wl_info_t *wl, int iftype, u dev = alloc_etherdev(sizeof(wl_if_t)); wlif = netdev_priv(dev); bzero(wlif, sizeof(wl_if_t)); |