diff -ur linux-2.6.21.5-tmporig/drivers/net/wireless/hostap/hostap_cs.c linux-2.6.21.5/drivers/net/wireless/hostap/hostap_cs.c --- linux-2.6.21.5-tmporig/drivers/net/wireless/hostap/hostap_cs.c 2007-06-11 20:37:06.000000000 +0200 +++ linux-2.6.21.5/drivers/net/wireless/hostap/hostap_cs.c 2007-07-21 17:14:35.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; @@ -501,11 +501,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.21.5-tmporig/drivers/net/wireless/hostap/hostap_hw.c linux-2.6.21.5/drivers/net/wireless/hostap/hostap_hw.c --- linux-2.6.21.5-tmporig/drivers/net/wireless/hostap/hostap_hw.c 2007-06-11 20:37:06.000000000 +0200 +++ linux-2.6.21.5/drivers/net/wireless/hostap/hostap_hw.c 2007-07-21 17:04:51.000000000 +0200 @@ -54,6 +54,7 @@ #include "hostap.h" #include "hostap_ap.h" +extern int activar; /* #define final_version */ @@ -1497,6 +1498,8 @@ if (local->hw_downloading) return 1; + activar=1; + if (prism2_hw_init(dev, initial)) { return local->no_pri ? 0 : 1; } @@ -2626,8 +2629,15 @@ int events = 0; u16 ev; - iface = netdev_priv(dev); - local = iface->local; + + // Todos los parametros de entrada son correctos (no son nulos). De momento esta es la unica forma que conozco de detectar el problema. + if (!activar) { + printk("hostap_hw.c: INTERRUPT BEFORE DEVICE INIT!\n"); + return IRQ_HANDLED; + } + + iface = netdev_priv(dev); + local = iface->local; prism2_io_debug_add(dev, PRISM2_IO_DEBUG_CMD_INTERRUPT, 0, 0); diff -ur linux-2.6.21.5-tmporig/drivers/net/wireless/hostap/hostap_pci.c linux-2.6.21.5/drivers/net/wireless/hostap/hostap_pci.c --- linux-2.6.21.5-tmporig/drivers/net/wireless/hostap/hostap_pci.c 2007-06-11 20:37:06.000000000 +0200 +++ linux-2.6.21.5/drivers/net/wireless/hostap/hostap_pci.c 2007-07-21 13:15:54.000000000 +0200 @@ -19,6 +19,7 @@ #include "hostap_wlan.h" +int activar=1; static char *version = PRISM2_VERSION " (Jouni Malinen )"; static char *dev_info = "hostap_pci"; diff -ur linux-2.6.21.5-tmporig/drivers/net/wireless/hostap/hostap_plx.c linux-2.6.21.5/drivers/net/wireless/hostap/hostap_plx.c --- linux-2.6.21.5-tmporig/drivers/net/wireless/hostap/hostap_plx.c 2007-06-11 20:37:06.000000000 +0200 +++ linux-2.6.21.5/drivers/net/wireless/hostap/hostap_plx.c 2007-07-21 13:16:06.000000000 +0200 @@ -21,7 +21,7 @@ #include #include "hostap_wlan.h" - +int activar=1; static char *version = PRISM2_VERSION " (Jouni Malinen )"; static char *dev_info = "hostap_plx";