This patch disable interrupts on all ports during initialization. The current 
assumes that the firmware has already disabled all interrupts on all ports. 
We have encountered some boards that do not always disable interrupts (XES 
XPedite 6200 for instance) on a soft reset. This patch prevents a kernel 
panic if a packet is received before the DMA ring buffers are setup for a 
port on which interrupts are left enabled by the firmware.

Signed-off-by: Brent Cook <[EMAIL PROTECTED]>

Index: linux-2.6-bps/drivers/net/mv643xx_eth.c
===================================================================
--- linux-2.6-bps/drivers/net/mv643xx_eth.c     (revision 100)
+++ linux-2.6-bps/drivers/net/mv643xx_eth.c     (revision 101)
@@ -777,6 +777,13 @@
        unsigned int size;
        int err;
 
+       /* Mask all interrupts on ethernet port */
+       mv_write(MV643XX_ETH_INTERRUPT_MASK_REG(port_num),
+                ETH_INT_MASK_ALL);
+       /* wait for previous write to complete */
+       mv_read(MV643XX_ETH_INTERRUPT_MASK_REG(port_num));
+
        err = request_irq(dev->irq, mv643xx_eth_int_handler,
                        SA_SHIRQ | SA_SAMPLE_RANDOM, dev->name, dev);
        if (err) {
-
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