Browse Source

IB: Fix modify QP checking of "current QP state" attribute

According to the IB spec version 1.2, section 11.2.4.2, the current
table has a couple of mistakes where it allows the current QP state
(IB_QP_CUR_STATE) attribute.  For the transitions:

  RTS -> RTS: IB_QP_CUR_STATE should be allowed for all transports
  SQD -> SQD: IB_QP_CUR_STATE should never be allowed

Signed-off-by: Dotan Barak <dotanb@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Dotan Barak 19 years ago
parent
commit
4546d31d84
1 changed files with 4 additions and 4 deletions
  1. 4 4
      drivers/infiniband/core/verbs.c

+ 4 - 4
drivers/infiniband/core/verbs.c

@@ -366,10 +366,12 @@ static const struct {
 			.opt_param = {
 				[IB_QPT_UD]  = (IB_QP_CUR_STATE			|
 						IB_QP_QKEY),
-				[IB_QPT_UC]  = (IB_QP_ACCESS_FLAGS		|
+				[IB_QPT_UC]  = (IB_QP_CUR_STATE			|
+						IB_QP_ACCESS_FLAGS		|
 						IB_QP_ALT_PATH			|
 						IB_QP_PATH_MIG_STATE),
-				[IB_QPT_RC]  = (IB_QP_ACCESS_FLAGS		|
+				[IB_QPT_RC]  = (IB_QP_CUR_STATE			|
+						IB_QP_ACCESS_FLAGS		|
 						IB_QP_ALT_PATH			|
 						IB_QP_PATH_MIG_STATE		|
 						IB_QP_MIN_RNR_TIMER),
@@ -419,7 +421,6 @@ static const struct {
 				[IB_QPT_UD]  = (IB_QP_PKEY_INDEX		|
 						IB_QP_QKEY),
 				[IB_QPT_UC]  = (IB_QP_AV			|
-						IB_QP_CUR_STATE			|
 						IB_QP_ALT_PATH			|
 						IB_QP_ACCESS_FLAGS		|
 						IB_QP_PKEY_INDEX		|
@@ -431,7 +432,6 @@ static const struct {
 						IB_QP_RNR_RETRY			|
 						IB_QP_MAX_QP_RD_ATOMIC		|
 						IB_QP_MAX_DEST_RD_ATOMIC	|
-						IB_QP_CUR_STATE			|
 						IB_QP_ALT_PATH			|
 						IB_QP_ACCESS_FLAGS		|
 						IB_QP_PKEY_INDEX		|