diff options
author | Dotan Barak <dotanb@mellanox.co.il> | 2006-03-01 17:28:12 -0500 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2006-03-20 13:08:18 -0500 |
commit | 67e7377661db4e341ed5e9a0358d11a55e532aa8 (patch) | |
tree | ccc47340a8a0be951b65aec8f90f099eecdb181d /drivers/infiniband/hw/mthca/mthca_qp.c | |
parent | 7667abd1528782003d8b83c54756523ec547af6e (diff) |
IB/mthca: Check alternate P_Key index when setting alternate path
Check that the alternate P_Key index is in range when setting the
alternate path for a QP. Also make a cosmetic touch up to the debug
message printed when the main P_Key index is out of range.
Signed-off-by: Dotan Barak <dotanb@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/mthca/mthca_qp.c')
-rw-r--r-- | drivers/infiniband/hw/mthca/mthca_qp.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/mthca/mthca_qp.c b/drivers/infiniband/hw/mthca/mthca_qp.c index c24260845bfd..f673c461e30b 100644 --- a/drivers/infiniband/hw/mthca/mthca_qp.c +++ b/drivers/infiniband/hw/mthca/mthca_qp.c | |||
@@ -536,8 +536,8 @@ int mthca_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask) | |||
536 | 536 | ||
537 | if ((attr_mask & IB_QP_PKEY_INDEX) && | 537 | if ((attr_mask & IB_QP_PKEY_INDEX) && |
538 | attr->pkey_index >= dev->limits.pkey_table_len) { | 538 | attr->pkey_index >= dev->limits.pkey_table_len) { |
539 | mthca_dbg(dev, "PKey index (%u) too large. max is %d\n", | 539 | mthca_dbg(dev, "P_Key index (%u) too large. max is %d\n", |
540 | attr->pkey_index,dev->limits.pkey_table_len-1); | 540 | attr->pkey_index, dev->limits.pkey_table_len-1); |
541 | return -EINVAL; | 541 | return -EINVAL; |
542 | } | 542 | } |
543 | 543 | ||
@@ -652,6 +652,12 @@ int mthca_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask) | |||
652 | } | 652 | } |
653 | 653 | ||
654 | if (attr_mask & IB_QP_ALT_PATH) { | 654 | if (attr_mask & IB_QP_ALT_PATH) { |
655 | if (attr->alt_pkey_index >= dev->limits.pkey_table_len) { | ||
656 | mthca_dbg(dev, "Alternate P_Key index (%u) too large. max is %d\n", | ||
657 | attr->alt_pkey_index, dev->limits.pkey_table_len-1); | ||
658 | return -EINVAL; | ||
659 | } | ||
660 | |||
655 | if (attr->alt_port_num == 0 || attr->alt_port_num > dev->limits.num_ports) { | 661 | if (attr->alt_port_num == 0 || attr->alt_port_num > dev->limits.num_ports) { |
656 | mthca_dbg(dev, "Alternate port number (%u) is invalid\n", | 662 | mthca_dbg(dev, "Alternate port number (%u) is invalid\n", |
657 | attr->alt_port_num); | 663 | attr->alt_port_num); |