diff options
| -rw-r--r-- | drivers/infiniband/core/mad.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/infiniband/core/mad.c b/drivers/infiniband/core/mad.c index dc3fd1e8af07..4c837e66516b 100644 --- a/drivers/infiniband/core/mad.c +++ b/drivers/infiniband/core/mad.c | |||
| @@ -2663,6 +2663,7 @@ static int ib_mad_port_start(struct ib_mad_port_private *port_priv) | |||
| 2663 | int ret, i; | 2663 | int ret, i; |
| 2664 | struct ib_qp_attr *attr; | 2664 | struct ib_qp_attr *attr; |
| 2665 | struct ib_qp *qp; | 2665 | struct ib_qp *qp; |
| 2666 | u16 pkey_index; | ||
| 2666 | 2667 | ||
| 2667 | attr = kmalloc(sizeof *attr, GFP_KERNEL); | 2668 | attr = kmalloc(sizeof *attr, GFP_KERNEL); |
| 2668 | if (!attr) { | 2669 | if (!attr) { |
| @@ -2670,6 +2671,11 @@ static int ib_mad_port_start(struct ib_mad_port_private *port_priv) | |||
| 2670 | return -ENOMEM; | 2671 | return -ENOMEM; |
| 2671 | } | 2672 | } |
| 2672 | 2673 | ||
| 2674 | ret = ib_find_pkey(port_priv->device, port_priv->port_num, | ||
| 2675 | IB_DEFAULT_PKEY_FULL, &pkey_index); | ||
| 2676 | if (ret) | ||
| 2677 | pkey_index = 0; | ||
| 2678 | |||
| 2673 | for (i = 0; i < IB_MAD_QPS_CORE; i++) { | 2679 | for (i = 0; i < IB_MAD_QPS_CORE; i++) { |
| 2674 | qp = port_priv->qp_info[i].qp; | 2680 | qp = port_priv->qp_info[i].qp; |
| 2675 | if (!qp) | 2681 | if (!qp) |
| @@ -2680,7 +2686,7 @@ static int ib_mad_port_start(struct ib_mad_port_private *port_priv) | |||
| 2680 | * one is needed for the Reset to Init transition | 2686 | * one is needed for the Reset to Init transition |
| 2681 | */ | 2687 | */ |
| 2682 | attr->qp_state = IB_QPS_INIT; | 2688 | attr->qp_state = IB_QPS_INIT; |
| 2683 | attr->pkey_index = 0; | 2689 | attr->pkey_index = pkey_index; |
| 2684 | attr->qkey = (qp->qp_num == 0) ? 0 : IB_QP1_QKEY; | 2690 | attr->qkey = (qp->qp_num == 0) ? 0 : IB_QP1_QKEY; |
| 2685 | ret = ib_modify_qp(qp, attr, IB_QP_STATE | | 2691 | ret = ib_modify_qp(qp, attr, IB_QP_STATE | |
| 2686 | IB_QP_PKEY_INDEX | IB_QP_QKEY); | 2692 | IB_QP_PKEY_INDEX | IB_QP_QKEY); |
