From: Pavel Machek 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; _