linux/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
..
ah.c IB/mlx4: Add a driver Mellanox ConnectX InfiniBand adapters 2007-05-08 18:00:38 -07:00
cq.c trivial: fix then -> than typos in comments and documentation 2009-01-06 11:28:06 +01:00
doorbell.c IB: expand ib_umem_get() prototype 2008-04-29 08:06:12 -07:00
Kconfig IB: Use menuconfig for InfiniBand menu 2007-07-09 20:12:26 -07:00
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
Makefile IB/mlx4: Add a driver Mellanox ConnectX InfiniBand adapters 2007-05-08 18:00:38 -07: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 mlx4: Update/add Mellanox Technologies copyright lines to mlx4 driver files 2008-07-25 10:32:52 -07:00
user.h mlx4: Update/add Mellanox Technologies copyright lines to mlx4 driver files 2008-07-25 10:32:52 -07:00