• Roland Dreier's avatar
    IB/srp: Fix FMR mapping for 32-bit kernels and addresses above 4G · bf628dc2
    Roland Dreier authored
    struct srp_device.fmr_page_mask was unsigned long, which means that
    the top part of addresses above 4G was being chopped off on 32-bit
    architectures.  Of course nothing good happens when data from SRP
    targets is DMAed to the wrong place.
    
    Fix this by changing fmr_page_mask to u64, to match the addresses
    actually used by IB devices.
    
    Thanks to Brian Cain <Brian.Cain@ge.com> and David McMillen
    <davem@systemfabricworks.com> for help diagnosing the bug and testing
    the fix.
    Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
    bf628dc2
ib_srp.c 51.3 KB