Skip to content
  • Bjorn Helgaas's avatar
    [IA64] rework memory attribute aliasing · 32e62c63
    Bjorn Helgaas authored
    
    
    This closes a couple holes in our attribute aliasing avoidance scheme:
    
      - The current kernel fails mmaps of some /dev/mem MMIO regions because
        they don't appear in the EFI memory map.  This keeps X from working
        on the Intel Tiger box.
    
      - The current kernel allows UC mmap of the 0-1MB region of
        /sys/.../legacy_mem even when the chipset doesn't support UC
        access.  This causes an MCA when starting X on HP rx7620 and rx8620
        boxes in the default configuration.
    
    There's more detail in the Documentation/ia64/aliasing.txt file this
    adds, but the general idea is that if a region might be covered by
    a granule-sized kernel identity mapping, any access via /dev/mem or
    mmap must use the same attribute as the identity mapping.
    
    Otherwise, we fall back to using an attribute that is supported
    according to the EFI memory map, or to using UC if the EFI memory
    map doesn't mention the region.
    
    Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
    Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
    32e62c63