mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 08:14:15 +08:00
RDMA/qedr: Fix qpids xarray api used
The qpids xarray isn't accessed from irq context and therefore there
is no need to use the xa_XXX_irq version of the apis.
Remove the _irq.
Fixes: b6014f9e5f
("qedr: Convert qpidr to XArray")
Link: https://lore.kernel.org/r/20191027200451.28187-3-michal.kalderon@marvell.com
Signed-off-by: Ariel Elior <ariel.elior@marvell.com>
Signed-off-by: Michal Kalderon <michal.kalderon@marvell.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
parent
73ab512f72
commit
5fdff18b4d
@ -360,7 +360,7 @@ static int qedr_alloc_resources(struct qedr_dev *dev)
|
|||||||
xa_init_flags(&dev->srqs, XA_FLAGS_LOCK_IRQ);
|
xa_init_flags(&dev->srqs, XA_FLAGS_LOCK_IRQ);
|
||||||
|
|
||||||
if (IS_IWARP(dev)) {
|
if (IS_IWARP(dev)) {
|
||||||
xa_init_flags(&dev->qps, XA_FLAGS_LOCK_IRQ);
|
xa_init(&dev->qps);
|
||||||
dev->iwarp_wq = create_singlethread_workqueue("qedr_iwarpq");
|
dev->iwarp_wq = create_singlethread_workqueue("qedr_iwarpq");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -739,7 +739,7 @@ void qedr_iw_qp_rem_ref(struct ib_qp *ibqp)
|
|||||||
struct qedr_qp *qp = get_qedr_qp(ibqp);
|
struct qedr_qp *qp = get_qedr_qp(ibqp);
|
||||||
|
|
||||||
if (atomic_dec_and_test(&qp->refcnt)) {
|
if (atomic_dec_and_test(&qp->refcnt)) {
|
||||||
xa_erase_irq(&qp->dev->qps, qp->qp_id);
|
xa_erase(&qp->dev->qps, qp->qp_id);
|
||||||
kfree(qp);
|
kfree(qp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1918,7 +1918,7 @@ struct ib_qp *qedr_create_qp(struct ib_pd *ibpd,
|
|||||||
qp->ibqp.qp_num = qp->qp_id;
|
qp->ibqp.qp_num = qp->qp_id;
|
||||||
|
|
||||||
if (rdma_protocol_iwarp(&dev->ibdev, 1)) {
|
if (rdma_protocol_iwarp(&dev->ibdev, 1)) {
|
||||||
rc = xa_insert_irq(&dev->qps, qp->qp_id, qp, GFP_KERNEL);
|
rc = xa_insert(&dev->qps, qp->qp_id, qp, GFP_KERNEL);
|
||||||
if (rc)
|
if (rc)
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
@ -2492,7 +2492,7 @@ int qedr_destroy_qp(struct ib_qp *ibqp, struct ib_udata *udata)
|
|||||||
|
|
||||||
if (atomic_dec_and_test(&qp->refcnt) &&
|
if (atomic_dec_and_test(&qp->refcnt) &&
|
||||||
rdma_protocol_iwarp(&dev->ibdev, 1)) {
|
rdma_protocol_iwarp(&dev->ibdev, 1)) {
|
||||||
xa_erase_irq(&dev->qps, qp->qp_id);
|
xa_erase(&dev->qps, qp->qp_id);
|
||||||
kfree(qp);
|
kfree(qp);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user