FROMLIST: mm: fix incorrect vbq reference in purge_fragmented_block
The function xa_for_each() in __vm_unmap_aliases() traversal all vbs. But the vb from xarry may not be on the corresponding CPU vmap_block_queue. Consequently, purge_fragmented_block() might use wrong vbq->lock to protect the free list, and new_vmap_block() / purge_fragmented_block() may perform concurrent operations on the free list. Bug: 346658600 Link: https://lore.kernel.org/all/CAGWkznE- HcYBia2HDcHt6trM9oeJ2x6KdyFzR3Jd_-L5HyPxSA@mail.gmail.com/ Change-Id: I1db9603f9c9892b36cf3b5c1ed5d961dec6816d5 Signed-off-by:Haonan Wang <haonan.wang@unisoc.com>
Loading
Please sign in to comment