• Andrew Morton's avatar
    [PATCH] hugetlb unmap_vmas() SMP && PREEMPT fix · f4d55ef3
    Andrew Morton authored
    Patch from Kevin Pedretti <pedretti@ieee.org>
    
    The unmap_vmas() logic is designed to chew away at all the pages without
    holding off preemption for too long.  But with CONFIG_SMP=y and
    CONFIG_PREEMPT=y the number of pages which we batch up between rescheduling
    opportunities is not a multiple of HPAGE_SIZE.  So unmap_vmas() ends up
    calling unmap_hugepage_range() with a poorly aligned&sized region, and it
    goes BUG.
    
    Fix that up by ensuring that we always work across hugepage regions in
    HPAGE_SIZE chunks.
    f4d55ef3
memory.c 39.2 KB