aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/qib/qib_qp.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband/hw/qib/qib_qp.c')
-rw-r--r--drivers/infiniband/hw/qib/qib_qp.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/qib/qib_qp.c b/drivers/infiniband/hw/qib/qib_qp.c
index 7e7e16fbee99..1ce56b51ab1a 100644
--- a/drivers/infiniband/hw/qib/qib_qp.c
+++ b/drivers/infiniband/hw/qib/qib_qp.c
@@ -1038,6 +1038,11 @@ struct ib_qp *qib_create_qp(struct ib_pd *ibpd,
1038 goto bail_swq; 1038 goto bail_swq;
1039 } 1039 }
1040 RCU_INIT_POINTER(qp->next, NULL); 1040 RCU_INIT_POINTER(qp->next, NULL);
1041 qp->s_hdr = kzalloc(sizeof(*qp->s_hdr), GFP_KERNEL);
1042 if (!qp->s_hdr) {
1043 ret = ERR_PTR(-ENOMEM);
1044 goto bail_qp;
1045 }
1041 qp->timeout_jiffies = 1046 qp->timeout_jiffies =
1042 usecs_to_jiffies((4096UL * (1UL << qp->timeout)) / 1047 usecs_to_jiffies((4096UL * (1UL << qp->timeout)) /
1043 1000UL); 1048 1000UL);
@@ -1159,6 +1164,7 @@ bail_ip:
1159 vfree(qp->r_rq.wq); 1164 vfree(qp->r_rq.wq);
1160 free_qpn(&dev->qpn_table, qp->ibqp.qp_num); 1165 free_qpn(&dev->qpn_table, qp->ibqp.qp_num);
1161bail_qp: 1166bail_qp:
1167 kfree(qp->s_hdr);
1162 kfree(qp); 1168 kfree(qp);
1163bail_swq: 1169bail_swq:
1164 vfree(swq); 1170 vfree(swq);
@@ -1214,6 +1220,7 @@ int qib_destroy_qp(struct ib_qp *ibqp)
1214 else 1220 else
1215 vfree(qp->r_rq.wq); 1221 vfree(qp->r_rq.wq);
1216 vfree(qp->s_wq); 1222 vfree(qp->s_wq);
1223 kfree(qp->s_hdr);
1217 kfree(qp); 1224 kfree(qp);
1218 return 0; 1225 return 0;
1219} 1226}