broadcom-wl: fix crash when starting multiple virtual interfaces

When enabling multiple VIFS, the driver sometimes crashes.  The frequency
of the crash increases as more VIFS are enabled.

Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>

SVN-Revision: 38762
This commit is contained in:
Hauke Mehrtens
2013-11-11 22:04:26 +00:00
parent b98f77f3d9
commit 697f4a19e5
6 changed files with 131 additions and 10 deletions

View File

@@ -9,7 +9,7 @@
static int wl_read_proc(char *buffer, char **start, off_t offset, int length, int *eof, void *data);
#endif /* defined(CONFIG_PROC_FS) */
#ifdef BCMDBG
@@ -516,7 +516,7 @@ wl_attach(uint16 vendor, uint16 device,
@@ -517,7 +517,7 @@ wl_attach(uint16 vendor, uint16 device,
struct net_device *dev;
wl_if_t *wlif;
wl_info_t *wl;
@@ -18,7 +18,7 @@
char tmp[128];
#endif
osl_t *osh;
@@ -660,7 +660,7 @@ wl_attach(uint16 vendor, uint16 device,
@@ -664,7 +664,7 @@ wl_attach(uint16 vendor, uint16 device,
WL_ERROR(("wl%d: Error setting MPC variable to 0\n", unit));
}
}
@@ -27,7 +27,7 @@
/* create /proc/net/wl<unit> */
sprintf(tmp, "net/wl%d", wl->pub->unit);
create_proc_read_entry(tmp, 0, 0, wl_read_proc, (void*)wl);
@@ -806,7 +806,7 @@ wl_dbus_disconnect_cb(void *arg)
@@ -810,7 +810,7 @@ wl_dbus_disconnect_cb(void *arg)
}
#endif /* BCMDBUS */
@@ -36,7 +36,7 @@
static int
wl_read_proc(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
{
@@ -1141,7 +1141,7 @@ wl_free(wl_info_t *wl)
@@ -1149,7 +1149,7 @@ wl_free(wl_info_t *wl)
/* free common resources */
if (wl->wlc) {