diff --git a/drivers/net/wireless/wl12xx/wl1271_main.c b/drivers/net/wireless/wl12xx/wl1271_main.c
index 760a5814d4a446ffc49d07cdd2fd5fa6bb7bae93..d826b6684e39b1f5a9ef0866a1c64169fc5ed4ad 100644
--- a/drivers/net/wireless/wl12xx/wl1271_main.c
+++ b/drivers/net/wireless/wl12xx/wl1271_main.c
@@ -636,6 +636,9 @@ static void wl1271_recovery_work(struct work_struct *work)
 
 	wl1271_info("Hardware recovery in progress.");
 
+	if (test_bit(WL1271_FLAG_STA_ASSOCIATED, &wl->flags))
+		ieee80211_connection_loss(wl->vif);
+
 	/* reboot the chipset */
 	__wl1271_op_remove_interface(wl);
 	ieee80211_restart_hw(wl->hw);