-
David Mosberger authored
When there are two huge page mappings, like the two in the example below, first one at the end of PGDIR_SIZE, and second one starts at next PGDIR_SIZE (64GB with 16K page size): 8000000ff0000000-8000001000000000 rw-s 8000001000000000-8000001010000000 rw-s Unmapping the first vma would trick free_pgtable to think it can remove one set of pgd indexed at 0x400, and it went ahead purge the entire pmd/pte that are still in use by the second mapping. Now any subsequent access to pmd/pte for the second active mapping will trigger the bug. We've seen hard kernel hang on some platform, some other platform will generate MCA, plus all kinds of unpleasant result.
4f28b187