summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-07-11 00:40:05 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-07-11 00:40:05 -0700
commit15e4cb50b379416bb0a7068dacd3be9ffbfec80d (patch)
tree41306d72e62abdb1f77ccfc5ade6bf79ea08fb7b
parent0d2bf7e89532535858e8f6e0eb628c953d9192ad (diff)
parent68af09edd5b3492d5a65b2ae04708a7f0ceab739 (diff)
Merge "net: rps: reset backlog state when IPI fails."
-rw-r--r--net/core/dev.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index 50e77fe096f4..16467dc215d0 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4560,8 +4560,13 @@ static void net_rps_send_ipi(struct softnet_data *remsd)
while (remsd) {
struct softnet_data *next = remsd->rps_ipi_next;
- if (cpu_online(remsd->cpu))
+ if (cpu_online(remsd->cpu)) {
smp_call_function_single_async(remsd->cpu, &remsd->csd);
+ } else {
+ rps_lock(remsd);
+ remsd->backlog.state = 0;
+ rps_unlock(remsd);
+ }
remsd = next;
}
#endif