diff options
author | Dotan Barak <dotanb@mellanox.co.il> | 2006-03-02 14:22:28 -0500 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2006-03-20 13:08:20 -0500 |
commit | 4546d31d84beafe74c56651173ac4fe197c7de8b (patch) | |
tree | 5196b616386b05c4a64ce8e70e78ca5e2b27fbb2 /drivers/infiniband/core/verbs.c | |
parent | 9acf6a8570dcfc9f55724b8b71099fc8768e8c26 (diff) |
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>
Diffstat (limited to 'drivers/infiniband/core/verbs.c')
-rw-r--r-- | drivers/infiniband/core/verbs.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c index c69334dc8012..cae0845f472a 100644 --- a/drivers/infiniband/core/verbs.c +++ b/drivers/infiniband/core/verbs.c | |||
@@ -366,10 +366,12 @@ static const struct { | |||
366 | .opt_param = { | 366 | .opt_param = { |
367 | [IB_QPT_UD] = (IB_QP_CUR_STATE | | 367 | [IB_QPT_UD] = (IB_QP_CUR_STATE | |
368 | IB_QP_QKEY), | 368 | IB_QP_QKEY), |
369 | [IB_QPT_UC] = (IB_QP_ACCESS_FLAGS | | 369 | [IB_QPT_UC] = (IB_QP_CUR_STATE | |
370 | IB_QP_ACCESS_FLAGS | | ||
370 | IB_QP_ALT_PATH | | 371 | IB_QP_ALT_PATH | |
371 | IB_QP_PATH_MIG_STATE), | 372 | IB_QP_PATH_MIG_STATE), |
372 | [IB_QPT_RC] = (IB_QP_ACCESS_FLAGS | | 373 | [IB_QPT_RC] = (IB_QP_CUR_STATE | |
374 | IB_QP_ACCESS_FLAGS | | ||
373 | IB_QP_ALT_PATH | | 375 | IB_QP_ALT_PATH | |
374 | IB_QP_PATH_MIG_STATE | | 376 | IB_QP_PATH_MIG_STATE | |
375 | IB_QP_MIN_RNR_TIMER), | 377 | IB_QP_MIN_RNR_TIMER), |
@@ -419,7 +421,6 @@ static const struct { | |||
419 | [IB_QPT_UD] = (IB_QP_PKEY_INDEX | | 421 | [IB_QPT_UD] = (IB_QP_PKEY_INDEX | |
420 | IB_QP_QKEY), | 422 | IB_QP_QKEY), |
421 | [IB_QPT_UC] = (IB_QP_AV | | 423 | [IB_QPT_UC] = (IB_QP_AV | |
422 | IB_QP_CUR_STATE | | ||
423 | IB_QP_ALT_PATH | | 424 | IB_QP_ALT_PATH | |
424 | IB_QP_ACCESS_FLAGS | | 425 | IB_QP_ACCESS_FLAGS | |
425 | IB_QP_PKEY_INDEX | | 426 | IB_QP_PKEY_INDEX | |
@@ -431,7 +432,6 @@ static const struct { | |||
431 | IB_QP_RNR_RETRY | | 432 | IB_QP_RNR_RETRY | |
432 | IB_QP_MAX_QP_RD_ATOMIC | | 433 | IB_QP_MAX_QP_RD_ATOMIC | |
433 | IB_QP_MAX_DEST_RD_ATOMIC | | 434 | IB_QP_MAX_DEST_RD_ATOMIC | |
434 | IB_QP_CUR_STATE | | ||
435 | IB_QP_ALT_PATH | | 435 | IB_QP_ALT_PATH | |
436 | IB_QP_ACCESS_FLAGS | | 436 | IB_QP_ACCESS_FLAGS | |
437 | IB_QP_PKEY_INDEX | | 437 | IB_QP_PKEY_INDEX | |