diff options
-rw-r--r-- | net/core/dev.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 493ae8ee569f..c0cf1293df06 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -4602,6 +4602,15 @@ static int napi_poll(struct napi_struct *n, struct list_head *repoll) | |||
4602 | napi_gro_flush(n, HZ >= 1000); | 4602 | napi_gro_flush(n, HZ >= 1000); |
4603 | } | 4603 | } |
4604 | 4604 | ||
4605 | /* Some drivers may have called napi_schedule | ||
4606 | * prior to exhausting their budget. | ||
4607 | */ | ||
4608 | if (unlikely(!list_empty(&n->poll_list))) { | ||
4609 | pr_warn_once("%s: Budget exhausted after napi rescheduled\n", | ||
4610 | n->dev ? n->dev->name : "backlog"); | ||
4611 | goto out_unlock; | ||
4612 | } | ||
4613 | |||
4605 | list_add_tail(&n->poll_list, repoll); | 4614 | list_add_tail(&n->poll_list, repoll); |
4606 | 4615 | ||
4607 | out_unlock: | 4616 | out_unlock: |