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 ---