Message ID | 1287507866-25156-3-git-send-email-nhorman@tuxdriver.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On 10/20/10 01:04, nhorman@tuxdriver.com wrote: > From: Neil Horman<nhorman@tuxdriver.com> > > In an erlier patch I modified napi_poll so that devices with IFF_MASTER polled > the per_cpu list instead of the device list for napi. I did this because the > bonding driver has no napi instances to poll, it instead expects to check the > slave devices napi instances, which napi_poll was unaware of. Looking at this > more closely however, I now see this isn't strictly needed. As the bond driver > poll_controller calls the slaves poll_controller via netpoll_poll_dev, which > recursively calls poll_napi on each slave, allowing those napi instances to get > serviced. The earlier patch isn't at all harmfull, its just not needed, so lets > revert it to make the code cleaner. Sorry for the noise, > > Signed-off-by: Neil Horman<nhorman@tuxdriver.com> Looks reasonable to me, Reviewed-by: WANG Cong <amwang@redhat.com> Thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Cong Wang <amwang@redhat.com> Date: Wed, 20 Oct 2010 15:52:00 +0800 > On 10/20/10 01:04, nhorman@tuxdriver.com wrote: >> Signed-off-by: Neil Horman<nhorman@tuxdriver.com> ... > Reviewed-by: WANG Cong <amwang@redhat.com> Also applied, thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/core/netpoll.c b/net/core/netpoll.c index d79d221..4e98ffa 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c @@ -156,15 +156,8 @@ static void poll_napi(struct net_device *dev) { struct napi_struct *napi; int budget = 16; - struct softnet_data *sd = &__get_cpu_var(softnet_data); - struct list_head *nlist; - if (dev->flags & IFF_MASTER) - nlist = &sd->poll_list; - else - nlist = &dev->napi_list; - - list_for_each_entry(napi, nlist, dev_list) { + list_for_each_entry(napi, &dev->napi_list, dev_list) { if (napi->poll_owner != smp_processor_id() && spin_trylock(&napi->poll_lock)) { budget = poll_one_napi(dev->npinfo, napi, budget);