• KarimAllah Ahmed's avatar
    kvm, x86: Properly check whether a pfn is an MMIO or not · 0c55671f
    KarimAllah Ahmed authored
    pfn_valid check is not sufficient because it only checks if a page has a struct
    page or not, if "mem=" was passed to the kernel some valid pages won't have a
    struct page. This means that if guests were assigned valid memory that lies
    after the mem= boundary it will be passed uncached to the guest no matter what
    the guest caching attributes are for this memory.
    
    Introduce a new function e820__mapped_raw_any which is equivalent to
    e820__mapped_any but uses the original e820 unmodified and use it to
    identify real *RAM*.
    Signed-off-by: default avatarKarimAllah Ahmed <karahmed@amazon.de>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    0c55671f
mmu.c 158 KB