diff --git a/drivers/net/wireless/libertas/if_sdio.c b/drivers/net/wireless/libertas/if_sdio.c index 9804ebc..abd3c9d 100644 --- a/drivers/net/wireless/libertas/if_sdio.c +++ b/drivers/net/wireless/libertas/if_sdio.c @@ -1039,9 +1039,13 @@ static void if_sdio_reset_card_worker(struct work_struct *work) * instance for that reason. */ + if (!reset_host) + return; + pr_info("Resetting card..."); mmc_remove_host(reset_host); mmc_add_host(reset_host); + reset_host = NULL; } static DECLARE_WORK(card_reset_work, if_sdio_reset_card_worker); @@ -1281,7 +1285,7 @@ static void if_sdio_remove(struct sdio_func *func) pr_alert("CMD_FUNC_SHUTDOWN cmd failed\n"); } - + reset_host = NULL; lbs_deb_sdio("call remove card\n"); lbs_stop_card(card->priv); lbs_remove_card(card->priv);