• David Vrabel's avatar
    xen/events/fifo: ensure all bitops are properly aligned even on x86 · dcecb8fd
    David Vrabel authored
    When using the FIFO-based ABI on x86_64, if the last port is at the
    end of an event array page then sync_test_bit() on this port's event
    word will read beyond the end of the page and in certain circumstances
    this may fault.
    
    The fault requires the following page in the kernel's direct mapping
    to be not present, which would mean:
    
    a) the array page is the last page of RAM; or
    
    b) the following page is ballooned out /and/ it has been used for a
       foreign mapping by a kernel driver (such as netback or blkback)
       /and/ the grant has been unmapped.
    
    Use the infrastructure added for arm64 to ensure that all bitops
    operating on event words are unsigned long aligned.
    Signed-off-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
    Reviewed-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: stable@vger.kernel.org
    dcecb8fd
events_fifo.c 11.1 KB