• Ira Weiny's avatar
    IB/qib: Fix qib_mr structure · 785f7422
    Ira Weiny authored
    struct qib_mr requires the mr member be the last because struct
    qib_mregion contains a dynamic array at the end.  The additions
    of members should have been placed before this structure as the
    comment noted.
    
    Failure to do so was causing random memory corruption.  Reproducing
    this bug was easy to do by running the client and server of
    ib_write_bw -s 8 -n 5 on the same node.
    
    This BUG() was tripped in a slab debug kernel:
    
    kernel BUG at mm/slab.c:2572!
    
    Fixes: 38071a46 ("IB/qib: Support the new memory registration API")
    Reviewed-by: default avatarMike Marciniszyn <mike.marciniszyn@intel.com>
    Signed-off-by: default avatarIra Weiny <ira.weiny@intel.com>
    Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
    785f7422
qib_verbs.h 34.9 KB