IPW_DEBUG_WARNING("IRQ INTA == 0xFFFFFFFF\n"); 
printk(KERN_WARNING DRV_NAME ": IRQ INTA == 0xFFFFFFFF\n"); 
static irqreturn_t ipw2100_interrupt(int irq, void *data,				     struct pt_regs *regs){	struct ipw2100_priv *priv = data;	u32 inta, inta_mask;	if (!data)		return IRQ_NONE; 	spin_lock(&priv->low_lock);	/* We check to see if we should be ignoring interrupts before	 * we touch the hardware.  During ucode load if we try and handle	 * an interrupt we can cause keyboard problems as well as cause	 * the ucode to fail to initialize */	if (!(priv->status & STATUS_INT_ENABLED)) {		/* Shared IRQ */		goto none;	}	read_register(priv->net_dev, IPW_REG_INTA_MASK, &inta_mask);	read_register(priv->net_dev, IPW_REG_INTA, &inta);	if (inta == 0xFFFFFFFF) {		/* Hardware disappeared */		IPW_DEBUG_WARNING("IRQ INTA == 0xFFFFFFFF\n");		goto none;	}	inta &= IPW_INTERRUPT_MASK;	if (!(inta & inta_mask)) {		/* Shared interrupt */		goto none;	}	/* We disable the hardware interrupt here just to prevent unneeded	 * calls to be made.  We disable this again within the actual	 * work tasklet, so if another part of the code re-enables the	 * interrupt, that is fine */	ipw2100_disable_interrupts(priv);	tasklet_schedule(&priv->irq_tasklet); 	spin_unlock(&priv->low_lock);	return IRQ_HANDLED; none:	spin_unlock(&priv->low_lock);	return IRQ_NONE;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/797b4f7652a4dcf06bdf6a8c870991acdf56c03d/ipw2100.c/buggy/drivers/net/wireless/ipw2100.c