• Ingo Molnar's avatar
    x86, pat: add large-PAT check to split_large_page() · 7a5714e0
    Ingo Molnar authored
    Impact: future-proof the split_large_page() function
    
    Linus noticed that split_large_page() is not safe wrt. the
    PAT bit: it is bit 12 on the 1GB and 2MB page table level
    (_PAGE_BIT_PAT_LARGE), and it is bit 7 on the 4K page
    table level (_PAGE_BIT_PAT).
    
    Currently it is not a problem because we never set
    _PAGE_BIT_PAT_LARGE on any of the large-page mappings - but
    should this happen in the future the split_large_page() would
    silently lift bit 12 into the lowlevel 4K pte and would start
    corrupting the physical page frame offset. Not fun.
    
    So add a debug warning, to make sure if something ever sets
    the PAT bit then this function gets updated too.
    
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    7a5714e0
pageattr.c 28 KB