linux/drivers/infiniband/hw/mthca
Jack Morgenstein d1646f86a2 IB/mthca: Fix IB_QP_ACCESS_FLAGS handling.
This patch corrects some corner cases in managing the RAE/RRE bits in
the mthca qp context.  These bits need to be zero if the user requests
max_dest_rd_atomic of zero.  The bits need to be restored to the value
implied by the qp access flags attribute in a previous (or the
current) modify-qp command if the dest_rd_atomic variable is changed
to non-zero.

In the current implementation, the following scenario will not work:
RESET-to-INIT 	set QP access flags to all disabled (zeroes)
INIT-to-RTR     set max_dest_rd_atomic=10, AND
		set qp_access_flags = IB_ACCESS_REMOTE_READ | IB_ACCESS_REMOTE_ATOMIC

The current code will incorrectly take the access-flags value set in
the RESET-to-INIT transition.

We can simplify, and correct, this IB_QP_ACCESS_FLAGS handling: it is
always safe to set qp access flags in the firmware command if either
of IB_QP_MAX_DEST_RD_ATOMIC or IB_QP_ACCESS_FLAGS is set, so let's
just set it to the correct value, always.

Signed-off-by: Jack Morgenstein <jackm@mellanox.co.il>
Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2005-12-15 14:36:24 -08:00
..
Kconfig Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile [IB] mthca: first pass at catastrophic error reporting 2005-10-27 11:03:38 -07:00
mthca_allocator.c [PATCH] IB/mthca: Factor out common queue alloc code 2005-08-26 20:37:37 -07:00
mthca_av.c [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
mthca_catas.c Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband 2005-11-10 13:27:06 -08:00
mthca_cmd.c IB/mthca: fix QP size limits for mem-free HCAs 2005-11-30 09:55:22 -08:00
mthca_cmd.h [PATCH] gfp_t: drivers/infiniband 2005-10-28 08:16:50 -07:00
mthca_config_reg.h [PATCH] IB: Add copyright notices 2005-08-26 20:37:35 -07:00
mthca_cq.c IB/mthca: Fix SRQ cleanup during QP destroy 2005-12-15 14:20:23 -08:00
mthca_dev.h [IB] uverbs: have kernel return QP capabilities 2005-11-10 10:22:50 -08:00
mthca_doorbell.h [PATCH] IB: sparse endianness cleanup 2005-08-26 20:37:35 -07:00
mthca_eq.c [IB] mthca: report asynchronous CQ events 2005-10-29 07:39:42 -07:00
mthca_mad.c [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
mthca_main.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
mthca_mcg.c [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
mthca_memfree.c IB/mthca: Fix thinko in mthca_table_find() 2005-12-15 13:55:50 -08:00
mthca_memfree.h Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2005-10-28 15:50:51 -07:00
mthca_mr.c [IB] kzalloc() conversions 2005-11-02 07:23:14 -08:00
mthca_pd.c [PATCH] IB: Add copyright notices 2005-08-26 20:37:35 -07:00
mthca_profile.c Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband 2005-11-04 16:31:54 -08:00
mthca_profile.h [PATCH] IB/mthca: Add SRQ implementation 2005-08-26 20:37:37 -07:00
mthca_provider.c [IB] uverbs: have kernel return QP capabilities 2005-11-10 10:22:50 -08:00
mthca_provider.h [IB] uverbs: have kernel return QP capabilities 2005-11-10 10:22:50 -08:00
mthca_qp.c IB/mthca: Fix IB_QP_ACCESS_FLAGS handling. 2005-12-15 14:36:24 -08:00
mthca_reset.c [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
mthca_srq.c Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband 2005-11-10 13:27:06 -08:00
mthca_uar.c [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
mthca_user.h [IB] uverbs: Add device-specific ABI version attribute 2005-10-17 15:20:26 -07:00
mthca_wqe.h IB/mthca: fix posting of send lists of length >= 255 on mem-free HCAs 2005-11-29 11:33:46 -08:00