aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/sis190.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/net/sis190.c b/drivers/net/sis190.c
index fd303e7408ac..e374cf43fed0 100644
--- a/drivers/net/sis190.c
+++ b/drivers/net/sis190.c
@@ -629,6 +629,18 @@ out:
629 return IRQ_RETVAL(handled); 629 return IRQ_RETVAL(handled);
630} 630}
631 631
632#ifdef CONFIG_NET_POLL_CONTROLLER
633static void sis190_netpoll(struct net_device *dev)
634{
635 struct sis190_private *tp = netdev_priv(dev);
636 struct pci_dev *pdev = tp->pci_dev;
637
638 disable_irq(pdev->irq);
639 sis190_interrupt(pdev->irq, dev, NULL);
640 enable_irq(pdev->irq);
641}
642#endif
643
632static void sis190_free_rx_skb(struct sis190_private *tp, 644static void sis190_free_rx_skb(struct sis190_private *tp,
633 struct sk_buff **sk_buff, struct RxDesc *desc) 645 struct sk_buff **sk_buff, struct RxDesc *desc)
634{ 646{
@@ -1300,6 +1312,9 @@ static int __devinit sis190_init_one(struct pci_dev *pdev,
1300 dev->tx_timeout = sis190_tx_timeout; 1312 dev->tx_timeout = sis190_tx_timeout;
1301 dev->watchdog_timeo = SIS190_TX_TIMEOUT; 1313 dev->watchdog_timeo = SIS190_TX_TIMEOUT;
1302 dev->hard_start_xmit = sis190_start_xmit; 1314 dev->hard_start_xmit = sis190_start_xmit;
1315#ifdef CONFIG_NET_POLL_CONTROLLER
1316 dev->poll_controller = sis190_netpoll;
1317#endif
1303 dev->set_multicast_list = sis190_set_rx_mode; 1318 dev->set_multicast_list = sis190_set_rx_mode;
1304 SET_ETHTOOL_OPS(dev, &sis190_ethtool_ops); 1319 SET_ETHTOOL_OPS(dev, &sis190_ethtool_ops);
1305 dev->irq = pdev->irq; 1320 dev->irq = pdev->irq;