From: NeilBrown Date: Thu, 24 Oct 2013 07:33:33 +0000 (+1100) Subject: libertas/sdio: make sure card enters power-off when firmware is loaded. X-Git-Tag: v3.14-rc1~94^2~482^2^2~91 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d94248ac2aef78e39a76321458a78ba7805dba2e;p=platform%2Fkernel%2Flinux-stable.git libertas/sdio: make sure card enters power-off when firmware is loaded. Since firmware loading became async it is possible that if_sdio_finish_power_of is called with only one remaining runtime_pm reference, so it isn't safe to call pm_runtime_put_noidle. We must call pm_runtime_put(). Diagnosed-by: "Dr. H. Nikolaus Schaller" Signed-off-by: NeilBrown Signed-off-by: John W. Linville --- diff --git a/drivers/net/wireless/libertas/if_sdio.c b/drivers/net/wireless/libertas/if_sdio.c index 991238a..828e7f4 100644 --- a/drivers/net/wireless/libertas/if_sdio.c +++ b/drivers/net/wireless/libertas/if_sdio.c @@ -849,7 +849,7 @@ static void if_sdio_finish_power_on(struct if_sdio_card *card) card->started = true; /* Tell PM core that we don't need the card to be * powered now */ - pm_runtime_put_noidle(&func->dev); + pm_runtime_put(&func->dev); } }