diff options
Diffstat (limited to 'target/linux/atheros/patches-2.6.37/240-ar231x_netpoll.patch')
-rw-r--r-- | target/linux/atheros/patches-2.6.37/240-ar231x_netpoll.patch | 31 |
1 files changed, 31 insertions, 0 deletions
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 0000000000..c2f3d26a92 --- /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) |