mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-10 03:20:49 +00:00
RDMA/restrack: Track driver QP types in resource tracker
The check for QP type different than XRC has excluded driver QP
types from the resource tracker.
As a result, "rdma resource show" user command would not show opened
driver QPs which does not reflect the real state of the system.
Check QP type explicitly instead of assuming enum values/ordering.
Fixes: 40909f664d
("RDMA/efa: Add EFA verbs implementation")
Signed-off-by: Gal Pressman <galpress@amazon.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
Link: https://lore.kernel.org/r/20190801104354.11417-1-galpress@amazon.com
Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
e5366d309a
commit
52e0a118a2
@ -302,7 +302,9 @@ static inline struct ib_qp *_ib_create_qp(struct ib_device *dev,
|
||||
struct ib_udata *udata,
|
||||
struct ib_uobject *uobj)
|
||||
{
|
||||
enum ib_qp_type qp_type = attr->qp_type;
|
||||
struct ib_qp *qp;
|
||||
bool is_xrc;
|
||||
|
||||
if (!dev->ops.create_qp)
|
||||
return ERR_PTR(-EOPNOTSUPP);
|
||||
@ -320,7 +322,8 @@ static inline struct ib_qp *_ib_create_qp(struct ib_device *dev,
|
||||
* and more importantly they are created internaly by driver,
|
||||
* see mlx5 create_dev_resources() as an example.
|
||||
*/
|
||||
if (attr->qp_type < IB_QPT_XRC_INI) {
|
||||
is_xrc = qp_type == IB_QPT_XRC_INI || qp_type == IB_QPT_XRC_TGT;
|
||||
if ((qp_type < IB_QPT_MAX && !is_xrc) || qp_type == IB_QPT_DRIVER) {
|
||||
qp->res.type = RDMA_RESTRACK_QP;
|
||||
if (uobj)
|
||||
rdma_restrack_uadd(&qp->res);
|
||||
|
Loading…
Reference in New Issue
Block a user