diff options
| -rw-r--r-- | net/core/netpoll.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/net/core/netpoll.c b/net/core/netpoll.c index 4e98ffac3af0..d79d221fd1f4 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c | |||
| @@ -156,8 +156,15 @@ static void poll_napi(struct net_device *dev) | |||
| 156 | { | 156 | { |
| 157 | struct napi_struct *napi; | 157 | struct napi_struct *napi; |
| 158 | int budget = 16; | 158 | int budget = 16; |
| 159 | struct softnet_data *sd = &__get_cpu_var(softnet_data); | ||
| 160 | struct list_head *nlist; | ||
| 159 | 161 | ||
| 160 | list_for_each_entry(napi, &dev->napi_list, dev_list) { | 162 | if (dev->flags & IFF_MASTER) |
| 163 | nlist = &sd->poll_list; | ||
| 164 | else | ||
| 165 | nlist = &dev->napi_list; | ||
| 166 | |||
| 167 | list_for_each_entry(napi, nlist, dev_list) { | ||
| 161 | if (napi->poll_owner != smp_processor_id() && | 168 | if (napi->poll_owner != smp_processor_id() && |
| 162 | spin_trylock(&napi->poll_lock)) { | 169 | spin_trylock(&napi->poll_lock)) { |
| 163 | budget = poll_one_napi(dev->npinfo, napi, budget); | 170 | budget = poll_one_napi(dev->npinfo, napi, budget); |
