On Tue, Dec 13, 2005 at 12:43:28AM +0000, Andy Fleming wrote:
> >>On Mon, Dec 12, 2005 at 11:54:06AM -0700, Dale Farnsworth wrote:
> >>
> >>>+#ifdef CONFIG_NET_POLL_CONTROLLER
> >>>+/*
> >>>+ * Polling - used by netconsole and other diagnostic tools
> >>>+ * to allow network i/o with interrupts disabled.
> >>>+ */
> >>>+static void gfar_netpoll(struct net_device *dev)
> >>>+{
> >>>+ struct gfar_private *priv = netdev_priv(dev);
> >>>+
> >>>+ if (priv->einfo->device_flags & FSL_GIANFAR_DEV_HAS_MULTI_INTR) {
> >>>+ disable_irq(priv->interruptReceive);
> >>>+ disable_irq(priv->interruptTransmit);
> >>>+ disable_irq(priv->interruptError);
> >>>+ gfar_interrupt(priv->interruptTransmit, dev, NULL);
> >>>+ enable_irq(priv->interruptError);
> >>>+ enable_irq(priv->interruptTransmit);
> >>>+ enable_irq(priv->interruptReceive);
> >>>+ } else {
> >>>+ disable_irq(priv->interruptTransmit);
> >>>+ gfar_interrupt(priv->interruptTransmit, dev, NULL);
> >>>+ enable_irq(priv->interruptTransmit);
> >>>+ }
> >>>+}
> >>>+#endif
>
> However, wouldn't it have simpler to mask the bits in the IMASK
> register?
Hmm. I think we need to ensure that we're not currently executing
one of the interrupt handlers and I don't see any simpler way than
calling disable_irq() for each one.
-Dale
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html