Index: compat-wireless-2010-07-31/drivers/net/wireless/wl12xx/wl1251.h =================================================================== --- compat-wireless-2010-07-31.orig/drivers/net/wireless/wl12xx/wl1251.h 2010-08-01 15:04:21.219724545 +0200 +++ compat-wireless-2010-07-31/drivers/net/wireless/wl12xx/wl1251.h 2010-08-01 15:05:22.307219824 +0200 @@ -381,7 +381,9 @@ u32 chip_id; char fw_ver[21]; - + + bool associated; + /* Most recently reported noise in dBm */ s8 noise; }; Index: compat-wireless-2010-07-31/drivers/net/wireless/wl12xx/wl1251_main.c =================================================================== --- compat-wireless-2010-07-31.orig/drivers/net/wireless/wl12xx/wl1251_main.c 2010-08-01 15:04:32.919105073 +0200 +++ compat-wireless-2010-07-31/drivers/net/wireless/wl12xx/wl1251_main.c 2010-08-01 15:05:59.668541777 +0200 @@ -874,6 +874,13 @@ wl1251_debug(DEBUG_MAC80211, "mac80211 hw scan"); + /* + * FIXME: scanning while associated causes lockups, + * so we don't allow that + */ + if (wl->associated) + return -EBUSY; + if (req->n_ssids) { ssid = req->ssids[0].ssid; ssid_len = req->ssids[0].ssid_len;