You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
percpu: fix synchronization between synchronous map extension and chunk destruction
For non-atomic allocations, pcpu_alloc() can try to extend the area
map synchronously after dropping pcpu_lock; however, the extension
wasn't synchronized against chunk destruction and the chunk might get
freed while extension is in progress.
This patch fixes the bug by putting most of non-atomic allocations
under pcpu_alloc_mutex to synchronize against pcpu_balance_work which
is responsible for async chunk management including destruction.
Signed-off-by: Tejun Heo <[email protected]>
Reported-and-tested-by: Alexei Starovoitov <[email protected]>
Reported-by: Vlastimil Babka <[email protected]>
Reported-by: Sasha Levin <[email protected]>
Cc: [email protected] # v3.18+
Fixes: 1a4d760 ("percpu: implement asynchronous chunk population")
0 commit comments