diff options
author | Yosry Ahmed <[email protected]> | 2024-03-11 19:43:46 +0000 |
---|---|---|
committer | Andrew Morton <[email protected]> | 2024-04-25 20:55:49 -0700 |
commit | 2ccd48ce35e87f09472b42dda96fbf7b5165f3c3 (patch) | |
tree | 1ccc98877cb2fa3645f95c17faa1610f6bd9ba14 /arch/x86/mm/numa_32.c | |
parent | 133d04b1eee9901b57973220f2d7801f0e84c890 (diff) |
percpu: clean up all mappings when pcpu_map_pages() fails
In pcpu_map_pages(), if __pcpu_map_pages() fails on a CPU, we call
__pcpu_unmap_pages() to clean up mappings on all CPUs where mappings were
created, but not on the CPU where __pcpu_map_pages() fails.
__pcpu_map_pages() and __pcpu_unmap_pages() are wrappers around
vmap_pages_range_noflush() and vunmap_range_noflush(). All other callers
of vmap_pages_range_noflush() call vunmap_range_noflush() when mapping
fails, except pcpu_map_pages(). The reason could be that partial mappings
may be left behind from a failed mapping attempt.
Call __pcpu_unmap_pages() for the failed CPU as well in pcpu_map_pages().
This was found by code inspection, no failures or bugs were observed.
Link: https://lkml.kernel.org/r/[email protected]
Signed-off-by: Yosry Ahmed <[email protected]>
Acked-by: Dennis Zhou <[email protected]>
Cc: Christoph Lameter (Ampere) <[email protected]>
Cc: Tejun Heo <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Diffstat (limited to 'arch/x86/mm/numa_32.c')
0 files changed, 0 insertions, 0 deletions