summaryrefslogtreecommitdiffstats
path: root/target/linux/atheros/patches-2.6.37/240-ar231x_netpoll.patch
blob: c2f3d26a927b9fd06b9a0deae67104c32f90f98c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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)