Commit 2def5c10 authored by Hante Meuleman's avatar Hante Meuleman Committed by John W. Linville

brcmfmac: sdio unload fix.

on sdio remove the bus_if should be configured for close, so
new data from higher layers will be blocked. Also the access
to bus_if in the watchdog should be checked for null pointer
access on sdio remove.
Reviewed-by: default avatarArend Van Spriel <arend@broadcom.com>
Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: default avatarHante Meuleman <meuleman@broadcom.com>
Signed-off-by: default avatarFranky Lin <frankyl@broadcom.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 37ac5780
...@@ -535,6 +535,8 @@ EXPORT_SYMBOL(brcmf_sdio_probe); ...@@ -535,6 +535,8 @@ EXPORT_SYMBOL(brcmf_sdio_probe);
int brcmf_sdio_remove(struct brcmf_sdio_dev *sdiodev) int brcmf_sdio_remove(struct brcmf_sdio_dev *sdiodev)
{ {
sdiodev->bus_if->state = BRCMF_BUS_DOWN;
if (sdiodev->bus) { if (sdiodev->bus) {
brcmf_sdbrcm_disconnect(sdiodev->bus); brcmf_sdbrcm_disconnect(sdiodev->bus);
sdiodev->bus = NULL; sdiodev->bus = NULL;
......
...@@ -3576,7 +3576,7 @@ static bool brcmf_sdbrcm_bus_watchdog(struct brcmf_sdio *bus) ...@@ -3576,7 +3576,7 @@ static bool brcmf_sdbrcm_bus_watchdog(struct brcmf_sdio *bus)
} }
#ifdef DEBUG #ifdef DEBUG
/* Poll for console output periodically */ /* Poll for console output periodically */
if (bus_if->state == BRCMF_BUS_DATA && if (bus_if && bus_if->state == BRCMF_BUS_DATA &&
bus->console_interval != 0) { bus->console_interval != 0) {
bus->console.count += BRCMF_WD_POLL_MS; bus->console.count += BRCMF_WD_POLL_MS;
if (bus->console.count >= bus->console_interval) { if (bus->console.count >= bus->console_interval) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment