diff options
| author | Yeoreum Yun <[email protected]> | 2025-07-03 18:10:18 +0000 |
|---|---|---|
| committer | Andrew Morton <[email protected]> | 2025-07-10 04:07:54 +0000 |
| commit | 6ee9b3d84775944fb8c8a447961cd01274ac671c (patch) | |
| tree | cb1db3402dc0d6ad943f353386745559e607ce97 /drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | |
| parent | scripts: gdb: vfs: support external dentry names (diff) | |
| download | kernel-6ee9b3d84775944fb8c8a447961cd01274ac671c.tar.gz kernel-6ee9b3d84775944fb8c8a447961cd01274ac671c.zip | |
kasan: remove kasan_find_vm_area() to prevent possible deadlock
find_vm_area() couldn't be called in atomic_context. If find_vm_area() is
called to reports vm area information, kasan can trigger deadlock like:
CPU0 CPU1
vmalloc();
alloc_vmap_area();
spin_lock(&vn->busy.lock)
spin_lock_bh(&some_lock);
<interrupt occurs>
<in softirq>
spin_lock(&some_lock);
<access invalid address>
kasan_report();
print_report();
print_address_description();
kasan_find_vm_area();
find_vm_area();
spin_lock(&vn->busy.lock) // deadlock!
To prevent possible deadlock while kasan reports, remove kasan_find_vm_area().
Link: https://lkml.kernel.org/r/[email protected]
Fixes: c056a364e954 ("kasan: print virtual mapping info in reports")
Signed-off-by: Yeoreum Yun <[email protected]>
Reported-by: Yunseong Kim <[email protected]>
Reviewed-by: Andrey Ryabinin <[email protected]>
Cc: Alexander Potapenko <[email protected]>
Cc: Andrey Konovalov <[email protected]>
Cc: Byungchul Park <[email protected]>
Cc: Dmitriy Vyukov <[email protected]>
Cc: Sebastian Andrzej Siewior <[email protected]>
Cc: Steven Rostedt <[email protected]>
Cc: Vincenzo Frascino <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c')
0 files changed, 0 insertions, 0 deletions
