[PATCH] sky2: netconsole suspend/resume interaction
From: Stephen Hemminger <hidden>
Date: 2006-06-16 19:12:57
A couple of fixes that should prevent crashes when using netconsole and suspend/resume. First, netconsole poll routine shouldn't run unless the device is up; second, the NAPI poll should be disabled during suspend. This is only an issue on sky2, because it has to have one NAPI poll routine for both ports on dual port boards. Normal drivers use netif_rx_schedule_prep and that checks for netif_running. Signed-off-by: Stephen Hemminger <redacted>
--- sky2.orig/drivers/net/sky2.c 2006-06-15 14:36:05.000000000 -0700
+++ sky2/drivers/net/sky2.c 2006-06-15 15:04:55.000000000 -0700@@ -2255,8 +2255,10 @@ static void sky2_netpoll(struct net_device *dev) { struct sky2_port *sky2 = netdev_priv(dev); + struct net_device *dev0 = sky2->hw->dev[0]; - sky2_intr(sky2->hw->pdev->irq, sky2->hw, NULL); + if (netif_running(dev) && __netif_rx_schedule_prep(dev0)) + __netif_rx_schedule(dev0); } #endif
@@ -3446,6 +3448,7 @@ sky2_down(dev); netif_device_detach(dev); + netif_poll_disable(dev); } }
@@ -3474,6 +3477,8 @@ struct net_device *dev = hw->dev[i]; if (dev && netif_running(dev)) { netif_device_attach(dev); + netif_poll_enable(dev); + err = sky2_up(dev); if (err) { printk(KERN_ERR PFX "%s: could not up: %d\n",