Commit 1ccddc42 authored by Leon Romanovsky's avatar Leon Romanovsky Committed by Jason Gunthorpe

RDMA/verbs: Drop kernel variant of destroy_flow

Following the removal of ib_create_flow(), adjust the code to get rid of
ib_destroy_flow() too.
Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
parent ca576fbb
...@@ -3631,7 +3631,8 @@ int ib_uverbs_ex_create_flow(struct ib_uverbs_file *file, ...@@ -3631,7 +3631,8 @@ int ib_uverbs_ex_create_flow(struct ib_uverbs_file *file,
kfree(kern_flow_attr); kfree(kern_flow_attr);
return 0; return 0;
err_copy: err_copy:
ib_destroy_flow(flow_id); if (!qp->device->destroy_flow(flow_id))
atomic_dec(&qp->usecnt);
err_free: err_free:
ib_uverbs_flow_resources_free(uflow_res); ib_uverbs_flow_resources_free(uflow_res);
err_free_flow_attr: err_free_flow_attr:
......
...@@ -48,14 +48,17 @@ static int uverbs_free_ah(struct ib_uobject *uobject, ...@@ -48,14 +48,17 @@ static int uverbs_free_ah(struct ib_uobject *uobject,
static int uverbs_free_flow(struct ib_uobject *uobject, static int uverbs_free_flow(struct ib_uobject *uobject,
enum rdma_remove_reason why) enum rdma_remove_reason why)
{ {
int ret;
struct ib_flow *flow = (struct ib_flow *)uobject->object; struct ib_flow *flow = (struct ib_flow *)uobject->object;
struct ib_uflow_object *uflow = struct ib_uflow_object *uflow =
container_of(uobject, struct ib_uflow_object, uobject); container_of(uobject, struct ib_uflow_object, uobject);
struct ib_qp *qp = flow->qp;
int ret;
ret = ib_destroy_flow(flow); ret = qp->device->destroy_flow(flow);
if (!ret) if (!ret) {
atomic_dec(&qp->usecnt);
ib_uverbs_flow_resources_free(uflow->resources); ib_uverbs_flow_resources_free(uflow->resources);
}
return ret; return ret;
} }
......
...@@ -2275,18 +2275,6 @@ int ib_destroy_rwq_ind_table(struct ib_rwq_ind_table *rwq_ind_table) ...@@ -2275,18 +2275,6 @@ int ib_destroy_rwq_ind_table(struct ib_rwq_ind_table *rwq_ind_table)
} }
EXPORT_SYMBOL(ib_destroy_rwq_ind_table); EXPORT_SYMBOL(ib_destroy_rwq_ind_table);
int ib_destroy_flow(struct ib_flow *flow_id)
{
int err;
struct ib_qp *qp = flow_id->qp;
err = qp->device->destroy_flow(flow_id);
if (!err)
atomic_dec(&qp->usecnt);
return err;
}
EXPORT_SYMBOL(ib_destroy_flow);
int ib_check_mr_status(struct ib_mr *mr, u32 check_mask, int ib_check_mr_status(struct ib_mr *mr, u32 check_mask,
struct ib_mr_status *mr_status) struct ib_mr_status *mr_status)
{ {
......
...@@ -3807,8 +3807,6 @@ struct ib_xrcd *__ib_alloc_xrcd(struct ib_device *device, const char *caller); ...@@ -3807,8 +3807,6 @@ struct ib_xrcd *__ib_alloc_xrcd(struct ib_device *device, const char *caller);
*/ */
int ib_dealloc_xrcd(struct ib_xrcd *xrcd); int ib_dealloc_xrcd(struct ib_xrcd *xrcd);
int ib_destroy_flow(struct ib_flow *flow_id);
static inline int ib_check_mr_access(int flags) static inline int ib_check_mr_access(int flags)
{ {
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment