diff options
author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-07-11 00:40:05 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-07-11 00:40:05 -0700 |
commit | 15e4cb50b379416bb0a7068dacd3be9ffbfec80d (patch) | |
tree | 41306d72e62abdb1f77ccfc5ade6bf79ea08fb7b | |
parent | 0d2bf7e89532535858e8f6e0eb628c953d9192ad (diff) | |
parent | 68af09edd5b3492d5a65b2ae04708a7f0ceab739 (diff) |
Merge "net: rps: reset backlog state when IPI fails."
-rw-r--r-- | net/core/dev.c | 7 |
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 |