diff options
author | Beniamino Galvani <b.galvani@gmail.com> | 2014-05-11 18:11:48 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-05-14 00:02:24 +0200 |
commit | 5a45e57a96dd0e42f1615630c26b4217e78a8908 (patch) | |
tree | 3e8575e2c828f437ac0fbf9e65555218dee9e3c9 /drivers/net/ethernet/arc | |
parent | arc_emac: implement promiscuous mode and multicast filtering (diff) | |
download | linux-5a45e57a96dd0e42f1615630c26b4217e78a8908.tar.xz linux-5a45e57a96dd0e42f1615630c26b4217e78a8908.zip |
arc_emac: add netpoll support
Signed-off-by: Beniamino Galvani <b.galvani@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/arc')
-rw-r--r-- | drivers/net/ethernet/arc/emac_main.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/ethernet/arc/emac_main.c b/drivers/net/ethernet/arc/emac_main.c index be090e68e1d1..18e2faccebb0 100644 --- a/drivers/net/ethernet/arc/emac_main.c +++ b/drivers/net/ethernet/arc/emac_main.c @@ -363,6 +363,15 @@ static irqreturn_t arc_emac_intr(int irq, void *dev_instance) return IRQ_HANDLED; } +#ifdef CONFIG_NET_POLL_CONTROLLER +static void arc_emac_poll_controller(struct net_device *dev) +{ + disable_irq(dev->irq); + arc_emac_intr(dev->irq, dev); + enable_irq(dev->irq); +} +#endif + /** * arc_emac_open - Open the network device. * @ndev: Pointer to the network device. @@ -657,6 +666,9 @@ static const struct net_device_ops arc_emac_netdev_ops = { .ndo_set_mac_address = arc_emac_set_address, .ndo_get_stats = arc_emac_stats, .ndo_set_rx_mode = arc_emac_set_rx_mode, +#ifdef CONFIG_NET_POLL_CONTROLLER + .ndo_poll_controller = arc_emac_poll_controller, +#endif }; static int arc_emac_probe(struct platform_device *pdev) |