From: Dmitry Shmidt Date: Mon, 11 Jul 2011 17:45:33 +0000 (-0700) Subject: net: wireless: bcmdhd: Fix CFG80211 suspend/resume if interface is down X-Git-Tag: firefly_0821_release~7613^2~544 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7543710368958d90b50f454ee225a79451fce595;p=firefly-linux-kernel-4.4.55.git net: wireless: bcmdhd: Fix CFG80211 suspend/resume if interface is down Signed-off-by: Dmitry Shmidt --- diff --git a/drivers/net/wireless/bcmdhd/wl_cfg80211.c b/drivers/net/wireless/bcmdhd/wl_cfg80211.c index 3196da3559b0..d9c7e6587698 100644 --- a/drivers/net/wireless/bcmdhd/wl_cfg80211.c +++ b/drivers/net/wireless/bcmdhd/wl_cfg80211.c @@ -2594,10 +2594,16 @@ wl_cfg80211_set_bitrate_mask(struct wiphy *wiphy, struct net_device *dev, static s32 wl_cfg80211_resume(struct wiphy *wiphy) { + struct wl_priv *wl = WL_PRIV_GET(); s32 err = 0; - CHECK_SYS_UP(); - wl_invoke_iscan(WL_PRIV_GET()); + if (unlikely(!test_bit(WL_STATUS_READY, &wl->status))) { + WL_INFO(("device is not ready : status (%d)\n", + (int)wl->status)); + return 0; + } + + wl_invoke_iscan(wl); return err; } @@ -2611,7 +2617,11 @@ static s32 wl_cfg80211_suspend(struct wiphy *wiphy) struct wl_priv *wl = WL_PRIV_GET(); s32 err = 0; - CHECK_SYS_UP(); + if (unlikely(!test_bit(WL_STATUS_READY, &wl->status))) { + WL_INFO(("device is not ready : status (%d)\n", + (int)wl->status)); + return 0; + } set_bit(WL_STATUS_SCAN_ABORTING, &wl->status); wl_term_iscan(wl);