linux/drivers/infiniband
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
..
core IB/umad: fix memory leaks 2005-12-09 13:46:32 -08:00
hw/mthca IB/mthca: Fix IB_QP_ACCESS_FLAGS handling. 2005-12-15 14:36:24 -08:00
ulp IPoIB: fix error handling in ipoib_open 2005-11-29 10:55:58 -08:00
Kconfig IB: Add SCSI RDMA Protocol (SRP) initiator 2005-11-02 14:07:13 -08:00
Makefile IB: Add SCSI RDMA Protocol (SRP) initiator 2005-11-02 14:07:13 -08:00