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

Reply via email to