diff -ur linux-2.6.18.2/drivers/net/wireless/hostap/hostap_cs.c linux-2.6.18.2-b/drivers/net/wireless/hostap/hostap_cs.c --- linux-2.6.18.2/drivers/net/wireless/hostap/hostap_cs.c 2006-11-04 02:33:58.000000000 +0100 +++ linux-2.6.18.2-b/drivers/net/wireless/hostap/hostap_cs.c 2007-07-21 13:10:07.000000000 +0200 @@ -37,7 +37,7 @@ module_param(ignore_cis_vcc, int, 0444); MODULE_PARM_DESC(ignore_cis_vcc, "Ignore broken CIS VCC entry"); - +int activar=0; /* struct local_info::hw_priv */ struct hostap_cs_priv { dev_node_t node; @@ -504,11 +504,13 @@ PDEBUG(DEBUG_HW, "%s: setting Vcc=33 (constant)\n", dev_info); p_dev->conf.IntType = INT_MEMORY_AND_IO; - + + activar=0; ret = prism2_config(p_dev); if (ret) { PDEBUG(DEBUG_EXTRA, "prism2_config() failed\n"); } + activar=1; return ret; } diff -ur linux-2.6.18.2/drivers/net/wireless/hostap/hostap_hw.c linux-2.6.18.2-b/drivers/net/wireless/hostap/hostap_hw.c --- linux-2.6.18.2/drivers/net/wireless/hostap/hostap_hw.c 2006-11-04 02:33:58.000000000 +0100 +++ linux-2.6.18.2-b/drivers/net/wireless/hostap/hostap_hw.c 2007-07-21 13:20:40.000000000 +0200 @@ -54,6 +54,7 @@ #include "hostap.h" #include "hostap_ap.h" +extern int activar; /* #define final_version */ @@ -1501,6 +1502,8 @@ if (local->hw_downloading) return 1; + activar=1; + if (prism2_hw_init(dev, initial)) { return local->no_pri ? 0 : 1; } @@ -2630,6 +2633,11 @@ int events = 0; u16 ev; + if (!activar) { + printk("hostap_hw.c: INTERRUPT BEFORE DEVICE INIT!\n"); + return IRQ_HANDLED; + } + iface = netdev_priv(dev); local = iface->local;