lbs_mac_event_disconnected() was called once and then never again upon a hardware MAC event. The reason was that the driver didn't clean the correct bit in the interrupt cause register of the chip. Signed-off-by: Holger Schurig <hs4233@xxxxxxxxxxxxxxxxxxxx> Index: wireless-2.6/drivers/net/wireless/libertas/if_cs.c =================================================================== --- wireless-2.6.orig/drivers/net/wireless/libertas/if_cs.c 2007-11-26 10:18:05.000000000 +0100 +++ wireless-2.6/drivers/net/wireless/libertas/if_cs.c 2007-11-26 10:18:32.000000000 +0100 @@ -170,7 +170,8 @@ static int if_cs_poll_while_fw_download( #define IF_CS_H_IC_TX_OVER 0x0001 #define IF_CS_H_IC_RX_OVER 0x0002 #define IF_CS_H_IC_DNLD_OVER 0x0004 -#define IF_CS_H_IC_HOST_EVENT 0x0008 +#define IF_CS_H_IC_POWER_DOWN 0x0008 +#define IF_CS_H_IC_HOST_EVENT 0x0010 #define IF_CS_H_IC_MASK 0x001f #define IF_CS_H_INT_MASK 0x00000004 - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html