[PATCH] Re: [OOPS] 8139too

From: Jeff Garzik (jgarzik@mandrakesoft.com)
Date: Fri Mar 16 2001 - 08:04:02 EST


> i686 2.4.2 UP+kdb+lm_sensors+pcmcia
> after APM laptop suspend to disk
> 8139too is build-in, not pcmcia
> I often get hangups after suspend-to-disk if I'm connected to a hub/switch.
> This is the first oops I've actually seen and copied it by hand:

Philipp,

Does the attached patch solve the problem?

Modifying the interrupt handler may not be necessary, but it's there
just in case. (that's the first chunk of the patch)

Regards,

        Jeff

-- 
Jeff Garzik       | May you have warm words on a cold evening,
Building 1024     | a full mooon on a dark night,
MandrakeSoft      | and a smooth road all the way to your door.

Index: drivers/net/8139too.c =================================================================== RCS file: /cvsroot/gkernel/linux_2_4/drivers/net/8139too.c,v retrieving revision 1.1.1.29.10.1 diff -u -r1.1.1.29.10.1 8139too.c --- drivers/net/8139too.c 2001/03/13 05:12:53 1.1.1.29.10.1 +++ drivers/net/8139too.c 2001/03/16 13:01:08 @@ -2028,10 +2028,12 @@ rtl8139_weird_interrupt (dev, tp, ioaddr, status, link_changed); - if (status & (RxOK | RxUnderrun | RxOverflow | RxFIFOOver)) /* Rx interrupt */ + if (netif_running (dev) && + status & (RxOK | RxUnderrun | RxOverflow | RxFIFOOver)) /* Rx interrupt */ rtl8139_rx_interrupt (dev, tp, ioaddr); - if (status & (TxOK | TxErr)) { + if (netif_running (dev) && + status & (TxOK | TxErr)) { spin_lock (&tp->lock); rtl8139_tx_interrupt (dev, tp, ioaddr); spin_unlock (&tp->lock); @@ -2262,6 +2264,9 @@ void *ioaddr = tp->mmio_addr; unsigned long flags; + if (!netif_running (dev)) + return; + netif_device_detach (dev); spin_lock_irqsave (&tp->lock, flags); @@ -2282,6 +2287,8 @@ { struct net_device *dev = pci_get_drvdata (pdev); + if (!netif_running (dev)) + return; netif_device_attach (dev); rtl8139_hw_start (dev); }

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



This archive was generated by hypermail 2b29 : Fri Mar 23 2001 - 21:00:08 EST