--- 0d3ac64147a5713e8190b6c01481911a3f35f1d4 +++ 3300dfef75c2e6eb51749b3dde3e0b145c5283d1 @@ -162,6 +162,7 @@ static int b43_sdio_probe(struct sdio_fu err_free_ssb: kfree(sdio); err_disable_func: + sdio_claim_host(func); sdio_disable_func(func); err_release_host: sdio_release_host(func); @@ -174,7 +175,9 @@ static void b43_sdio_remove(struct sdio_ struct b43_sdio *sdio = sdio_get_drvdata(func); ssb_bus_unregister(&sdio->ssb); + sdio_claim_host(func); sdio_disable_func(func); + sdio_release_host(func); kfree(sdio); sdio_set_drvdata(func, NULL); }