From: acoul <acoul@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Mon, 28 Mar 2011 12:00:17 +0000 (+0000)
Subject: linux/atheros: add missing netpoll option. (closes #9130)
X-Git-Url: https://git.rohieb.name/openwrt.git/commitdiff_plain/d7975e7635f3d12207ef011cfb926a8927ab8818

linux/atheros: add missing netpoll option. (closes #9130)


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26331 3c298f89-4303-0410-b956-a3cf2f4a3e73
---

diff --git a/target/linux/atheros/patches-2.6.37/240-ar231x_netpoll.patch b/target/linux/atheros/patches-2.6.37/240-ar231x_netpoll.patch
new file mode 100644
index 000000000..c2f3d26a9
--- /dev/null
+++ b/target/linux/atheros/patches-2.6.37/240-ar231x_netpoll.patch
@@ -0,0 +1,31 @@
+--- a/drivers/net/ar231x.c
++++ b/drivers/net/ar231x.c
+@@ -155,6 +155,18 @@
+ #define ERR(fmt, args...) printk("%s: " fmt, __func__, ##args)
+ #endif
+ 
++#ifdef CONFIG_NET_POLL_CONTROLLER
++static void
++ar231x_netpoll(struct net_device *dev)
++{
++      unsigned long flags;
++
++      local_irq_save(flags);
++      ar231x_interrupt(dev->irq, dev);
++      local_irq_restore(flags);
++}
++#endif
++
+ static const struct net_device_ops ar231x_ops = {
+ 	.ndo_open 		= ar231x_open,
+ 	.ndo_stop 		= ar231x_close,
+@@ -165,6 +177,9 @@
+ 	.ndo_validate_addr	= eth_validate_addr,
+ 	.ndo_set_mac_address 	= eth_mac_addr,
+ 	.ndo_tx_timeout		= ar231x_tx_timeout,
++#ifdef CONFIG_NET_POLL_CONTROLLER
++	.ndo_poll_controller	= ar231x_netpoll,
++#endif
+ };
+ 
+ int __init ar231x_probe(struct platform_device *pdev)