v2
2026-09-21
修复vmalloc_dump_obj查找 · v2
mm/vmalloc v2 修复 vmalloc_dump_obj:末页地址对齐、跨 zone VA 查找,并跳过非 vmalloc 地址。
原始补丁链接
子 Patch(3)
1/3
mm/vmalloc: fix vmalloc_dump_obj address alignment for last-page lookups
vmalloc_dump_obj() 将 PAGE_ALIGN() 改为 PAGE_ALIGN_DOWN(),避免末页地址被推到 va_end 而漏查,也防止跨 vmap zone 时 addr_to_node() 取错节点。
2/3
mm/vmalloc: fix vmalloc_dump_obj cross-zone VA lookup
vmalloc_dump_obj() 跨 vmap zone 时只查 addr_to_node(addr) 会漏查;改为 for_each_vmap_node 遍历所有节点,并用 spin_trylock 适配 OOM/KASAN 原子上下文。
3/3
mm/vmalloc: skip vmalloc_dump_obj for non-vmalloc addresses
vmalloc_dump_obj() 入口新增 is_vmalloc_or_module_addr() 判断,非 vmalloc/module 地址直接跳过,避免 slab/栈指针无谓遍历 vmap_nodes 和加锁。