Re: Mark IPW2100 as BROKEN: Fatal interrupt. Scheduling firmware restart.

From: Evgeniy Polyakov
Date: Sun Sep 21 2008 - 20:01:59 EST


On Mon, Sep 22, 2008 at 01:27:47AM +0200, Marcel Holtmann (holtmann@xxxxxxxxxxxxxxx) wrote:
> as Arjan and Alan pointed out already, WARN_ON_ONCE is enough and I
> agree with them. Just to make this perfectly clear, this is with my
> community hat on.
>
> Please send a proper patch with a simple WARN_ON_ONCE and I am happy to
> sign off on it.

I really do not care about if there is warning at all, I just want that
bug to be fixed. And a we can see, something started to change, and that's
probably a good sign. I glad there is a result. I will check d3 states
tomorrow. Attached patch if you think it is yet needed.

diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c
index 19a401c..637dc05 100644
--- a/drivers/net/wireless/ipw2100.c
+++ b/drivers/net/wireless/ipw2100.c
@@ -3174,16 +3174,18 @@ static void ipw2100_irq_tasklet(struct ipw2100_priv *priv)
if (inta & IPW2100_INTA_FATAL_ERROR) {
printk(KERN_WARNING DRV_NAME
": Fatal interrupt. Scheduling firmware restart.\n");
+
priv->inta_other++;
write_register(dev, IPW_REG_INTA, IPW2100_INTA_FATAL_ERROR);

read_nic_dword(dev, IPW_NIC_FATAL_ERROR, &priv->fatal_error);
- IPW_DEBUG_INFO("%s: Fatal error value: 0x%08X\n",
- priv->net_dev->name, priv->fatal_error);
-
read_nic_dword(dev, IPW_ERROR_ADDR(priv->fatal_error), &tmp);
- IPW_DEBUG_INFO("%s: Fatal error address value: 0x%08X\n",
- priv->net_dev->name, tmp);
+
+ printk(KERN_WARNING "%s: Fatal error value: 0x%08X, "
+ "address: 0x%08X, inta: 0x%08lX\n",
+ priv->net_dev->name, priv->fatal_error, tmp,
+ (unsigned long)inta & IPW_INTERRUPT_MASK);
+ WARN_ON_ONCE(1);

/* Wake up any sleeping jobs */
schedule_reset(priv);

--
Evgeniy Polyakov
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/