mirror of
https://github.com/openwrt/openwrt.git
synced 2025-02-22 10:01:03 +00:00
broadcom-wl: perform additional cleanup on wl module unload
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com> SVN-Revision: 38761
This commit is contained in:
parent
1789fda3fb
commit
b98f77f3d9
@ -108,18 +108,20 @@
|
|||||||
|
|
||||||
#ifdef CONFIG_PCI
|
#ifdef CONFIG_PCI
|
||||||
error = pci_register_driver(&wl_pci_driver);
|
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;
|
return 0;
|
||||||
|
|
||||||
error_pci:
|
error_pci:
|
||||||
- ssb_driver_unregister(&wl_ssb_driver);
|
- ssb_driver_unregister(&wl_ssb_driver);
|
||||||
+#if defined(CONFIG_SSB) || defined(CONFIG_BCMA)
|
+#if defined(CONFIG_SSB) || defined(CONFIG_BCMA)
|
||||||
+ wl_glue_unregister();
|
+ wl_glue_unregister();
|
||||||
|
+ wl_glue_set_attach_callback(NULL);
|
||||||
|
+ wl_glue_set_remove_callback(NULL);
|
||||||
+#endif /* defined(CONFIG_SSB) || defined(CONFIG_BCMA) */
|
+#endif /* defined(CONFIG_SSB) || defined(CONFIG_BCMA) */
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1099,9 +1072,9 @@ wl_module_exit(void)
|
@@ -1099,9 +1074,11 @@ wl_module_exit(void)
|
||||||
#ifdef CONFIG_PCI
|
#ifdef CONFIG_PCI
|
||||||
pci_unregister_driver(&wl_pci_driver);
|
pci_unregister_driver(&wl_pci_driver);
|
||||||
#endif /* CONFIG_PCI */
|
#endif /* CONFIG_PCI */
|
||||||
@ -128,6 +130,8 @@
|
|||||||
-#endif /* CONFIG_SSB */
|
-#endif /* CONFIG_SSB */
|
||||||
+#if defined(CONFIG_SSB) || defined(CONFIG_BCMA)
|
+#if defined(CONFIG_SSB) || defined(CONFIG_BCMA)
|
||||||
+ wl_glue_unregister();
|
+ wl_glue_unregister();
|
||||||
|
+ wl_glue_set_attach_callback(NULL);
|
||||||
|
+ wl_glue_set_remove_callback(NULL);
|
||||||
+#endif /* defined(CONFIG_SSB) || defined(CONFIG_BCMA) */
|
+#endif /* defined(CONFIG_SSB) || defined(CONFIG_BCMA) */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/driver/wl_linux.c
|
--- a/driver/wl_linux.c
|
||||||
+++ b/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;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
static int
|
static int
|
||||||
wl_read_proc(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
|
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 */
|
/* free common resources */
|
||||||
if (wl->wlc) {
|
if (wl->wlc) {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/driver/wl_linux.c
|
--- a/driver/wl_linux.c
|
||||||
+++ b/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);
|
wl_if_setup(wlif->dev);
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/driver/wl_linux.c
|
--- a/driver/wl_linux.c
|
||||||
+++ b/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));
|
dev = alloc_etherdev(sizeof(wl_if_t));
|
||||||
wlif = netdev_priv(dev);
|
wlif = netdev_priv(dev);
|
||||||
bzero(wlif, sizeof(wl_if_t));
|
bzero(wlif, sizeof(wl_if_t));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user