original_kernel/drivers/infiniband/hw/mthca
Michael S. Tsirkin 608d8268be IB/mthca: Fix data corruption after FMR unmap on Sinai
In mthca_arbel_fmr_unmap(), the high bits of the key are masked off.
This gets rid of the effect of adjust_key(), which makes sure that
bits 3 and 23 of the key are equal when the Sinai throughput
optimization is enabled, and so it may happen that an FMR will end up
with bits 3 and 23 in the key being different.  This causes data
corruption, because when enabling the throughput optimization, the
driver promises the HCA firmware that bits 3 and 23 of all memory keys
will always be equal.

Fix by re-applying adjust_key() after masking the key.

Thanks to Or Gerlitz for reproducing the problem, and Ariel Shahar for
help in debug.

Signed-off-by: Michael S. Tsirkin <mst@dev.mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2007-04-16 14:10:55 -07:00
..
Kconfig
Makefile
mthca_allocator.c
mthca_av.c
mthca_catas.c
mthca_cmd.c IB/mthca: Fix reserved MTTs calculation on mem-free HCAs 2007-02-12 16:16:29 -08:00
mthca_cmd.h
mthca_config_reg.h
mthca_cq.c
mthca_dev.h IB/mthca: Always fill MTTs from CPU 2007-02-12 16:16:29 -08:00
mthca_doorbell.h
mthca_eq.c
mthca_mad.c
mthca_main.c IB/mthca: Fix access to MTT and MPT tables on non-cache-coherent CPUs 2007-02-12 16:16:29 -08:00
mthca_mcg.c
mthca_memfree.c IB/mthca: Fix allocation of ICM chunks in coherent memory 2007-02-16 13:57:33 -08:00
mthca_memfree.h IB/mthca: Fix access to MTT and MPT tables on non-cache-coherent CPUs 2007-02-12 16:16:29 -08:00
mthca_mr.c IB/mthca: Fix data corruption after FMR unmap on Sinai 2007-04-16 14:10:55 -07:00
mthca_pd.c
mthca_profile.c IB/mthca: Merge MR and FMR space on 64-bit systems 2007-02-12 16:16:29 -08:00
mthca_profile.h
mthca_provider.c IB/mthca: Always fill MTTs from CPU 2007-02-12 16:16:29 -08:00
mthca_provider.h IB/mthca: Fix access to MTT and MPT tables on non-cache-coherent CPUs 2007-02-12 16:16:29 -08:00
mthca_qp.c IB/mthca: Fix error path in mthca_alloc_memfree() 2007-03-01 13:17:14 -08:00
mthca_reset.c
mthca_srq.c IB/mthca: Work around gcc bug on sparc64 2007-02-10 08:00:49 -08:00
mthca_uar.c
mthca_user.h
mthca_wqe.h