diff options
-rw-r--r-- | drivers/infiniband/core/ucma.c | 5 | ||||
-rw-r--r-- | drivers/infiniband/core/uverbs_cmd.c | 1 | ||||
-rw-r--r-- | drivers/infiniband/core/verbs.c | 2 | ||||
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_fs.c | 2 | ||||
-rw-r--r-- | drivers/infiniband/hw/mlx4/mad.c | 7 | ||||
-rw-r--r-- | drivers/infiniband/hw/qib/qib_iba6120.c | 2 | ||||
-rw-r--r-- | drivers/infiniband/hw/qib/qib_pcie.c | 2 |
7 files changed, 11 insertions, 10 deletions
diff --git a/drivers/infiniband/core/ucma.c b/drivers/infiniband/core/ucma.c index b37b0c02a7b9..5034a87cc72d 100644 --- a/drivers/infiniband/core/ucma.c +++ b/drivers/infiniband/core/ucma.c | |||
@@ -808,9 +808,12 @@ static ssize_t ucma_accept(struct ucma_file *file, const char __user *inbuf, | |||
808 | return PTR_ERR(ctx); | 808 | return PTR_ERR(ctx); |
809 | 809 | ||
810 | if (cmd.conn_param.valid) { | 810 | if (cmd.conn_param.valid) { |
811 | ctx->uid = cmd.uid; | ||
812 | ucma_copy_conn_param(&conn_param, &cmd.conn_param); | 811 | ucma_copy_conn_param(&conn_param, &cmd.conn_param); |
812 | mutex_lock(&file->mut); | ||
813 | ret = rdma_accept(ctx->cm_id, &conn_param); | 813 | ret = rdma_accept(ctx->cm_id, &conn_param); |
814 | if (!ret) | ||
815 | ctx->uid = cmd.uid; | ||
816 | mutex_unlock(&file->mut); | ||
814 | } else | 817 | } else |
815 | ret = rdma_accept(ctx->cm_id, NULL); | 818 | ret = rdma_accept(ctx->cm_id, NULL); |
816 | 819 | ||
diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c index b930da4c0c63..4d27e4c3fe34 100644 --- a/drivers/infiniband/core/uverbs_cmd.c +++ b/drivers/infiniband/core/uverbs_cmd.c | |||
@@ -1485,6 +1485,7 @@ ssize_t ib_uverbs_create_qp(struct ib_uverbs_file *file, | |||
1485 | qp->event_handler = attr.event_handler; | 1485 | qp->event_handler = attr.event_handler; |
1486 | qp->qp_context = attr.qp_context; | 1486 | qp->qp_context = attr.qp_context; |
1487 | qp->qp_type = attr.qp_type; | 1487 | qp->qp_type = attr.qp_type; |
1488 | atomic_set(&qp->usecnt, 0); | ||
1488 | atomic_inc(&pd->usecnt); | 1489 | atomic_inc(&pd->usecnt); |
1489 | atomic_inc(&attr.send_cq->usecnt); | 1490 | atomic_inc(&attr.send_cq->usecnt); |
1490 | if (attr.recv_cq) | 1491 | if (attr.recv_cq) |
diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c index 602b1bd723a9..575b78045aaf 100644 --- a/drivers/infiniband/core/verbs.c +++ b/drivers/infiniband/core/verbs.c | |||
@@ -421,6 +421,7 @@ struct ib_qp *ib_create_qp(struct ib_pd *pd, | |||
421 | qp->uobject = NULL; | 421 | qp->uobject = NULL; |
422 | qp->qp_type = qp_init_attr->qp_type; | 422 | qp->qp_type = qp_init_attr->qp_type; |
423 | 423 | ||
424 | atomic_set(&qp->usecnt, 0); | ||
424 | if (qp_init_attr->qp_type == IB_QPT_XRC_TGT) { | 425 | if (qp_init_attr->qp_type == IB_QPT_XRC_TGT) { |
425 | qp->event_handler = __ib_shared_qp_event_handler; | 426 | qp->event_handler = __ib_shared_qp_event_handler; |
426 | qp->qp_context = qp; | 427 | qp->qp_context = qp; |
@@ -430,7 +431,6 @@ struct ib_qp *ib_create_qp(struct ib_pd *pd, | |||
430 | qp->xrcd = qp_init_attr->xrcd; | 431 | qp->xrcd = qp_init_attr->xrcd; |
431 | atomic_inc(&qp_init_attr->xrcd->usecnt); | 432 | atomic_inc(&qp_init_attr->xrcd->usecnt); |
432 | INIT_LIST_HEAD(&qp->open_list); | 433 | INIT_LIST_HEAD(&qp->open_list); |
433 | atomic_set(&qp->usecnt, 0); | ||
434 | 434 | ||
435 | real_qp = qp; | 435 | real_qp = qp; |
436 | qp = __ib_open_qp(real_qp, qp_init_attr->event_handler, | 436 | qp = __ib_open_qp(real_qp, qp_init_attr->event_handler, |
diff --git a/drivers/infiniband/hw/ipath/ipath_fs.c b/drivers/infiniband/hw/ipath/ipath_fs.c index b7d4216db3c3..a4de9d58e9b4 100644 --- a/drivers/infiniband/hw/ipath/ipath_fs.c +++ b/drivers/infiniband/hw/ipath/ipath_fs.c | |||
@@ -89,7 +89,7 @@ static int create_file(const char *name, umode_t mode, | |||
89 | error = ipathfs_mknod(parent->d_inode, *dentry, | 89 | error = ipathfs_mknod(parent->d_inode, *dentry, |
90 | mode, fops, data); | 90 | mode, fops, data); |
91 | else | 91 | else |
92 | error = PTR_ERR(dentry); | 92 | error = PTR_ERR(*dentry); |
93 | mutex_unlock(&parent->d_inode->i_mutex); | 93 | mutex_unlock(&parent->d_inode->i_mutex); |
94 | 94 | ||
95 | return error; | 95 | return error; |
diff --git a/drivers/infiniband/hw/mlx4/mad.c b/drivers/infiniband/hw/mlx4/mad.c index 95c94d8f0254..259b0670b51c 100644 --- a/drivers/infiniband/hw/mlx4/mad.c +++ b/drivers/infiniband/hw/mlx4/mad.c | |||
@@ -257,12 +257,9 @@ static int ib_process_mad(struct ib_device *ibdev, int mad_flags, u8 port_num, | |||
257 | return IB_MAD_RESULT_SUCCESS; | 257 | return IB_MAD_RESULT_SUCCESS; |
258 | 258 | ||
259 | /* | 259 | /* |
260 | * Don't process SMInfo queries or vendor-specific | 260 | * Don't process SMInfo queries -- the SMA can't handle them. |
261 | * MADs -- the SMA can't handle them. | ||
262 | */ | 261 | */ |
263 | if (in_mad->mad_hdr.attr_id == IB_SMP_ATTR_SM_INFO || | 262 | if (in_mad->mad_hdr.attr_id == IB_SMP_ATTR_SM_INFO) |
264 | ((in_mad->mad_hdr.attr_id & IB_SMP_ATTR_VENDOR_MASK) == | ||
265 | IB_SMP_ATTR_VENDOR_MASK)) | ||
266 | return IB_MAD_RESULT_SUCCESS; | 263 | return IB_MAD_RESULT_SUCCESS; |
267 | } else if (in_mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_PERF_MGMT || | 264 | } else if (in_mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_PERF_MGMT || |
268 | in_mad->mad_hdr.mgmt_class == MLX4_IB_VENDOR_CLASS1 || | 265 | in_mad->mad_hdr.mgmt_class == MLX4_IB_VENDOR_CLASS1 || |
diff --git a/drivers/infiniband/hw/qib/qib_iba6120.c b/drivers/infiniband/hw/qib/qib_iba6120.c index 4f18e2d332df..d0c64d514813 100644 --- a/drivers/infiniband/hw/qib/qib_iba6120.c +++ b/drivers/infiniband/hw/qib/qib_iba6120.c | |||
@@ -2105,7 +2105,7 @@ static void alloc_dummy_hdrq(struct qib_devdata *dd) | |||
2105 | dd->cspec->dummy_hdrq = dma_alloc_coherent(&dd->pcidev->dev, | 2105 | dd->cspec->dummy_hdrq = dma_alloc_coherent(&dd->pcidev->dev, |
2106 | dd->rcd[0]->rcvhdrq_size, | 2106 | dd->rcd[0]->rcvhdrq_size, |
2107 | &dd->cspec->dummy_hdrq_phys, | 2107 | &dd->cspec->dummy_hdrq_phys, |
2108 | GFP_KERNEL | __GFP_COMP); | 2108 | GFP_ATOMIC | __GFP_COMP); |
2109 | if (!dd->cspec->dummy_hdrq) { | 2109 | if (!dd->cspec->dummy_hdrq) { |
2110 | qib_devinfo(dd->pcidev, "Couldn't allocate dummy hdrq\n"); | 2110 | qib_devinfo(dd->pcidev, "Couldn't allocate dummy hdrq\n"); |
2111 | /* fallback to just 0'ing */ | 2111 | /* fallback to just 0'ing */ |
diff --git a/drivers/infiniband/hw/qib/qib_pcie.c b/drivers/infiniband/hw/qib/qib_pcie.c index f695061d688e..0fde788e1100 100644 --- a/drivers/infiniband/hw/qib/qib_pcie.c +++ b/drivers/infiniband/hw/qib/qib_pcie.c | |||
@@ -560,7 +560,7 @@ static int qib_tune_pcie_coalesce(struct qib_devdata *dd) | |||
560 | * BIOS may not set PCIe bus-utilization parameters for best performance. | 560 | * BIOS may not set PCIe bus-utilization parameters for best performance. |
561 | * Check and optionally adjust them to maximize our throughput. | 561 | * Check and optionally adjust them to maximize our throughput. |
562 | */ | 562 | */ |
563 | static int qib_pcie_caps = 0x51; | 563 | static int qib_pcie_caps; |
564 | module_param_named(pcie_caps, qib_pcie_caps, int, S_IRUGO); | 564 | module_param_named(pcie_caps, qib_pcie_caps, int, S_IRUGO); |
565 | MODULE_PARM_DESC(pcie_caps, "Max PCIe tuning: Payload (0..3), ReadReq (4..7)"); | 565 | MODULE_PARM_DESC(pcie_caps, "Max PCIe tuning: Payload (0..3), ReadReq (4..7)"); |
566 | 566 | ||