Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 3ddd0a37 authored by Subash Abhinov Kasiviswanathan's avatar Subash Abhinov Kasiviswanathan Committed by Gerrit - the friendly Code Review server
Browse files

net: rps: fix data stall after hotplug



When RPS is enabled, IPI is triggered to enqueue the backlog NAPI to
the poll list. If the CPU which was found to online in get_rps_cpus
is hotplugged after the NAPI_STATE_SCHED bit is set on
enqueue_to_backlog but before the IPI is delivered in
in net_rps_action_and_irq_enable, the poll list does not have the
backlog NAPI queued. As a consequence of this, dev_cpu_callback
does not clear the NAPI_STATE_SCHED bit on hotplug.

Since NAPI_STATE_SCHED is set even after the cpu comes back up,
packets get enqueued onto the input packet queue but are never
processed since the IPI will not be triggered.

This patch handles this race by unconditionally resetting the NAPI
state for the backlog NAPI on the offline CPU in dev_cpu_callback.

CRs-fixed: 817709
Change-Id: Ie73a21f4bb689948bfbbe1de10a1e9143e4424d2
Signed-off-by: default avatarSubash Abhinov Kasiviswanathan <subashab@codeaurora.org>
parent aa74259c
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment