netpoll.c (07f0757a6808f2f36a0e58c3a54867ccffdb8dc9) | netpoll.c (d314774cf2cd5dfeb39a00d37deee65d4c627927) |
---|---|
1/* 2 * Common framework for low-level network console, dump, and debugger code 3 * 4 * Sep 8 2003 Matt Mackall <mpm@selenic.com> 5 * 6 * based on the netconsole code from: 7 * 8 * Copyright (C) 2001 Ingo Molnar <mingo@redhat.com> --- 158 unchanged lines hidden (view full) --- 167 while ((skb = skb_dequeue(&npi->arp_tx))) 168 arp_reply(skb); 169 } 170} 171 172void netpoll_poll(struct netpoll *np) 173{ 174 struct net_device *dev = np->dev; | 1/* 2 * Common framework for low-level network console, dump, and debugger code 3 * 4 * Sep 8 2003 Matt Mackall <mpm@selenic.com> 5 * 6 * based on the netconsole code from: 7 * 8 * Copyright (C) 2001 Ingo Molnar <mingo@redhat.com> --- 158 unchanged lines hidden (view full) --- 167 while ((skb = skb_dequeue(&npi->arp_tx))) 168 arp_reply(skb); 169 } 170} 171 172void netpoll_poll(struct netpoll *np) 173{ 174 struct net_device *dev = np->dev; |
175 const struct net_device_ops *ops = dev->netdev_ops; |
|
175 | 176 |
176 if (!dev || !netif_running(dev) || !dev->poll_controller) | 177 if (!dev || !netif_running(dev) || !ops->ndo_poll_controller) |
177 return; 178 179 /* Process pending work on NIC */ | 178 return; 179 180 /* Process pending work on NIC */ |
180 dev->poll_controller(dev); | 181 ops->ndo_poll_controller(dev); |
181 182 poll_napi(dev); 183 184 service_arp_queue(dev->npinfo); 185 186 zap_completion_queue(); 187} 188 --- 500 unchanged lines hidden (view full) --- 689 INIT_DELAYED_WORK(&npinfo->tx_work, queue_process); 690 691 atomic_set(&npinfo->refcnt, 1); 692 } else { 693 npinfo = ndev->npinfo; 694 atomic_inc(&npinfo->refcnt); 695 } 696 | 182 183 poll_napi(dev); 184 185 service_arp_queue(dev->npinfo); 186 187 zap_completion_queue(); 188} 189 --- 500 unchanged lines hidden (view full) --- 690 INIT_DELAYED_WORK(&npinfo->tx_work, queue_process); 691 692 atomic_set(&npinfo->refcnt, 1); 693 } else { 694 npinfo = ndev->npinfo; 695 atomic_inc(&npinfo->refcnt); 696 } 697 |
697 if (!ndev->poll_controller) { | 698 if (!ndev->netdev_ops->ndo_poll_controller) { |
698 printk(KERN_ERR "%s: %s doesn't support polling, aborting.\n", 699 np->name, np->dev_name); 700 err = -ENOTSUPP; 701 goto release; 702 } 703 704 if (!netif_running(ndev)) { 705 unsigned long atmost, atleast; --- 144 unchanged lines hidden --- | 699 printk(KERN_ERR "%s: %s doesn't support polling, aborting.\n", 700 np->name, np->dev_name); 701 err = -ENOTSUPP; 702 goto release; 703 } 704 705 if (!netif_running(ndev)) { 706 unsigned long atmost, atleast; --- 144 unchanged lines hidden --- |