IB/ehca: Update qp_state on cached modify_qp()
authorAlexander Schmidt <alexs@linux.vnet.ibm.com>
Tue, 12 Aug 2008 13:46:07 +0000 (15:46 +0200)
committerRoland Dreier <rolandd@cisco.com>
Tue, 12 Aug 2008 18:34:58 +0000 (11:34 -0700)
commit51ad241af45a0bfc02d1ed72a3ad58b46f8e30df
tree53c427390b91a0430309668153d6f7994b970bbf
parentf2d7499be1b1fe1cd8a5e6a01c1f44173894a241
IB/ehca: Update qp_state on cached modify_qp()

Since the introduction of the port auto-detect mode for ehca, calls to
modify_qp() may be cached in the device driver when the ports are not
activated yet. When a modify_qp() call is cached, the qp state remains
untouched until the port is activated, which will leave the qp in the
reset state. In the reset state, however, it is not allowed to post SQ
WQEs, which confuses applications like ib_mad.

The solution for this problem is to immediately set the qp state as
requested by modify_qp(), even when the call is cached.

Signed-off-by: Alexander Schmidt <alexs@linux.vnet.ibm.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/ehca/ehca_qp.c