linux-stable-rt/drivers/infiniband/hw/mlx4
Roland Dreier 0fd7e1d855 IB/mlx4: Fix memory ordering problem when posting LSO sends
The current work request posting code writes the LSO segment before
writing any data segments.  This leaves a window where the LSO segment
overwrites the stamping in one cacheline that the HCA prefetches
before the rest of the cacheline is filled with the correct data
segments.  When the HCA processes this work request, a local
protection error may result.

Fix this by saving the LSO header size field off and writing it only
after all data segments are written.  This fix is a cleaned-up version
of a patch from Jack Morgenstein <jackm@dev.mellanox.co.il>.

This fixes <https://bugs.openfabrics.org/show_bug.cgi?id=1383>.

Reported-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2009-01-16 12:47:47 -08:00
..
Kconfig
Makefile
ah.c
cq.c trivial: fix then -> than typos in comments and documentation 2009-01-06 11:28:06 +01:00
doorbell.c
mad.c mlx4_core: Multiple port type support 2008-10-22 15:38:42 -07:00
main.c IB/mlx4: Don't register IB device for adapters with no IB ports 2009-01-09 13:22:29 -08:00
mlx4_ib.h mlx4_core: Multiple port type support 2008-10-22 15:38:42 -07:00
mr.c IB/mlx4: Set umem field to NULL in mlx4_ib_alloc_fast_reg_mr() 2008-11-05 10:56:52 -08:00
qp.c IB/mlx4: Fix memory ordering problem when posting LSO sends 2009-01-16 12:47:47 -08:00
srq.c
user.h