lkml.org 
[lkml]   [2000]   [Aug]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[patch] xircom_tulip_cb.c
This driver leaves the media timer pending during PM
suspends. If you do a resume within (typically) 60
seconds of suspending, the timer is still pending.

tulip_up() then does an init_timer() on a pending
timer, which corrupts the kernel timer tables. This
causes one of quite a number of nice, sparkly crashes.

This patch kills the timer in tulip_down().



--- linux-2.4.0-test7-pre5/drivers/net/pcmcia/xircom_tulip_cb.c Sun Jul 30 02:28:13 2000
+++ linux-akpm/drivers/net/pcmcia/xircom_tulip_cb.c Mon Aug 21 00:16:59 2000
@@ -2714,6 +2714,8 @@
long ioaddr = dev->base_addr;
struct tulip_private *tp = (struct tulip_private *)dev->priv;

+ del_timer_sync(&tp->timer);
+
/* Disable interrupts by clearing the interrupt mask. */
outl(0x00000000, ioaddr + CSR7);
/* Stop the chip's Tx and Rx processes. */
@@ -2739,12 +2741,12 @@
printk(KERN_DEBUG "%s: Shutting down ethercard, status was %2.2x.\n",
dev->name, inl(ioaddr + CSR5));

+ del_timer_sync(&tp->timer);
+
netif_stop_queue(dev);

if (netif_device_present(dev))
tulip_down(dev);
-
- del_timer(&tp->timer);

free_irq(dev->irq, dev);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 12:37    [W:0.022 / U:4.224 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site