
From: Pavel Machek <pavel@ucw.cz>

And here's netpoll for via-rhine...  I hope it is allright?  [I tested it
briefly, kgdb-over-this seemed to work.]



 drivers/net/via-rhine.c |   12 ++++++++++++
 1 files changed, 12 insertions(+)

diff -puN drivers/net/via-rhine.c~via-rhine-netpoll-support drivers/net/via-rhine.c
--- 25/drivers/net/via-rhine.c~via-rhine-netpoll-support	2003-12-26 15:34:59.000000000 -0800
+++ 25-akpm/drivers/net/via-rhine.c	2003-12-26 15:34:59.000000000 -0800
@@ -615,6 +615,15 @@ static void __devinit reload_eeprom(long
 			break;
 }
 
+#ifdef CONFIG_NET_POLL_CONTROLLER
+static void via_rhine_poll(struct net_device *dev)
+{
+	disable_irq(dev->irq);
+	via_rhine_interrupt(dev->irq, (void *)dev, NULL);
+	enable_irq(dev->irq);
+}
+#endif
+
 static int __devinit via_rhine_init_one (struct pci_dev *pdev,
 					 const struct pci_device_id *ent)
 {
@@ -784,6 +793,9 @@ static int __devinit via_rhine_init_one 
 	dev->ethtool_ops = &netdev_ethtool_ops;
 	dev->tx_timeout = via_rhine_tx_timeout;
 	dev->watchdog_timeo = TX_TIMEOUT;
+#ifdef CONFIG_NET_POLL_CONTROLLER
+	dev->poll_controller = via_rhine_poll;
+#endif
 	if (np->drv_flags & ReqTxAlign)
 		dev->features |= NETIF_F_SG|NETIF_F_HW_CSUM;
 

_
