From: Deepak Saxena Signed-off-by: Deepak Saxena Cc: Matt Mackall Cc: Jeff Garzik Signed-off-by: Andrew Morton --- drivers/net/cs89x0.c | 19 +++++++++++++++++++ 1 files changed, 19 insertions(+) diff -puN drivers/net/cs89x0.c~cs89x0-add-netpoll-support drivers/net/cs89x0.c --- 25/drivers/net/cs89x0.c~cs89x0-add-netpoll-support Wed Sep 7 15:54:48 2005 +++ 25-akpm/drivers/net/cs89x0.c Wed Sep 7 15:54:48 2005 @@ -247,6 +247,9 @@ static int get_eeprom_data(struct net_de static int get_eeprom_cksum(int off, int len, int *buffer); static int set_mac_address(struct net_device *dev, void *addr); static void count_rx_errors(int status, struct net_local *lp); +#ifdef CONFIG_NET_POLL_CONTROLLER +static void net_poll_controller(struct net_device *dev); +#endif #if ALLOW_DMA static void get_dma_channel(struct net_device *dev); static void release_dma_buff(struct net_local *lp); @@ -405,6 +408,19 @@ get_eeprom_cksum(int off, int len, int * return -1; } +#ifdef CONFIG_NET_POLL_CONTROLLER +/* + * Polling receive - used by netconsole and other diagnostic tools + * to allow network i/o with interrupts disabled. + */ +static void net_poll_controller(struct net_device *dev) +{ + disable_irq(dev->irq); + net_interrupt(dev->irq, dev, NULL); + enable_irq(dev->irq); +} +#endif + /* This is the real probe routine. Linux has a history of friendly device probes on the ISA bus. A good device probes avoids doing writes, and verifies that the correct device exists and functions. @@ -760,6 +776,9 @@ cs89x0_probe1(struct net_device *dev, in dev->get_stats = net_get_stats; dev->set_multicast_list = set_multicast_list; dev->set_mac_address = set_mac_address; +#ifdef CONFIG_NET_POLL_CONTROLLER + dev->poll_controller = net_poll_controller; +#endif printk("\n"); if (net_debug) _