• Jan Beulich's avatar
    swiotlb: don't assume PA 0 is invalid · 8e0629c1
    Jan Beulich authored
    In 2.6.29 io_tlb_orig_addr[] got converted from storing virtual addresses
    to storing physical ones. While checking virtual addresses against NULL
    is a legitimate thing to catch invalid entries, checking physical ones
    against zero isn't: There's no guarantee that PFN 0 is reserved on a
    particular platform.
    
    Since it is unclear whether the check in swiotlb_tbl_unmap_single() is
    actually needed, retain it but check against a guaranteed invalid physical
    address. This requires setting up the array in a suitable fashion. And
    since the original code failed to invalidate array entries when regions
    get unmapped, this is being fixed at once along with adding a similar
    check to swiotlb_tbl_sync_single().
    
    Obviously the less intrusive change would be to simply drop the check in
    swiotlb_tbl_unmap_single().
    Signed-off-by: default avatarJan Beulich <jbeulich@suse.com>
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    8e0629c1
swiotlb.c 27.1 KB