Re: [patch mm1-rc2] lock validator: netlink.c netlink_table_grab fix

From: Frederik Deweerdt
Date: Fri Jun 02 2006 - 05:52:33 EST


On Fri, Jun 02, 2006 at 11:10:10AM +0800, Zhu Yi wrote:
> On Thu, 2006-06-01 at 16:42 +0200, Frederik Deweerdt wrote:
> > This got rid of the oops for me, is it the right fix?
>
> I don't think netlink will contend with hardirqs. Can you test with this
> fix for ipw2200 driver?
>
It does work, thanks. But doesn't this add a possibility of missing
some interrupts?
cpu0 cpu1
==== ====
in isr in tasklet

ipw_enable_interrupts
|->priv->status |= STATUS_INT_ENABLED;

ipw_disable_interrupts
|->priv->status &= ~STATUS_INT_ENABLED;
|->ipw_write32(priv, IPW_INTA_MASK_R, ~IPW_INTA_MASK_ALL);

|->ipw_write32(priv, IPW_INTA_MASK_R, IPW_INTA_MASK_ALL);
/* This is possible due to priv->lock no longer being taken
in isr */

=>interrupt from ipw2200
in new isr
if (!(priv->status & STATUS_INT_ENABLED))
return IRQ_NONE; /* we wrongfully return here because priv->status
does not reflect the register's value */


Not sure this is really important at all, just curious.

Thanks,
Frederik
-
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/