net: wireless: bcmdhd: Fix CFG80211 suspend/resume if interface is down

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
diff --git a/drivers/net/wireless/bcmdhd/wl_cfg80211.c b/drivers/net/wireless/bcmdhd/wl_cfg80211.c
index 3196da3..d9c7e65 100644
--- a/drivers/net/wireless/bcmdhd/wl_cfg80211.c
+++ b/drivers/net/wireless/bcmdhd/wl_cfg80211.c
@@ -2594,10 +2594,16 @@
 
 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 @@
 	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);