mirror of
https://github.com/torvalds/linux.git
synced 2024-12-28 22:02:28 +00:00
IB/core: Save QP in ib_flow structure
When we create flow steering rule, we need to save the related QP in the
ib_flow struct. this QP is used in destroy flow.
Move the QP assignment from ib_uverbs_ex_create_flow into ib_create_flow,
this would allow both kernel and userspace consumers to use it.
This bug wasn't seen in the wild because there are no kernel consumers
currently in the kernel.
Fixes: 319a441d13
("IB/core: Add receive flow steering support")
Signed-off-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Maor Gottlieb <maorg@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
e37a79e5d4
commit
8ecc7985b4
@ -3745,7 +3745,6 @@ int ib_uverbs_ex_create_flow(struct ib_uverbs_file *file,
|
||||
err = PTR_ERR(flow_id);
|
||||
goto err_free;
|
||||
}
|
||||
flow_id->qp = qp;
|
||||
flow_id->uobject = uobj;
|
||||
uobj->object = flow_id;
|
||||
|
||||
|
@ -1734,8 +1734,10 @@ struct ib_flow *ib_create_flow(struct ib_qp *qp,
|
||||
return ERR_PTR(-ENOSYS);
|
||||
|
||||
flow_id = qp->device->create_flow(qp, flow_attr, domain);
|
||||
if (!IS_ERR(flow_id))
|
||||
if (!IS_ERR(flow_id)) {
|
||||
atomic_inc(&qp->usecnt);
|
||||
flow_id->qp = qp;
|
||||
}
|
||||
return flow_id;
|
||||
}
|
||||
EXPORT_SYMBOL(ib_create_flow);
|
||||
|
Loading…
Reference in New Issue
Block a user