diff options
| -rw-r--r-- | drivers/infiniband/hw/mlx5/devx.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/mlx5/devx.c b/drivers/infiniband/hw/mlx5/devx.c index ac116d63e466..f2f11e652dcd 100644 --- a/drivers/infiniband/hw/mlx5/devx.c +++ b/drivers/infiniband/hw/mlx5/devx.c | |||
| @@ -723,6 +723,7 @@ static int UVERBS_HANDLER(MLX5_IB_METHOD_DEVX_OBJ_CREATE)( | |||
| 723 | attrs, MLX5_IB_ATTR_DEVX_OBJ_CREATE_HANDLE); | 723 | attrs, MLX5_IB_ATTR_DEVX_OBJ_CREATE_HANDLE); |
| 724 | struct mlx5_ib_ucontext *c = to_mucontext(uobj->context); | 724 | struct mlx5_ib_ucontext *c = to_mucontext(uobj->context); |
| 725 | struct mlx5_ib_dev *dev = to_mdev(c->ibucontext.device); | 725 | struct mlx5_ib_dev *dev = to_mdev(c->ibucontext.device); |
| 726 | u32 out[MLX5_ST_SZ_DW(general_obj_out_cmd_hdr)]; | ||
| 726 | struct devx_obj *obj; | 727 | struct devx_obj *obj; |
| 727 | int err; | 728 | int err; |
| 728 | 729 | ||
| @@ -754,10 +755,12 @@ static int UVERBS_HANDLER(MLX5_IB_METHOD_DEVX_OBJ_CREATE)( | |||
| 754 | 755 | ||
| 755 | err = uverbs_copy_to(attrs, MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_OUT, cmd_out, cmd_out_len); | 756 | err = uverbs_copy_to(attrs, MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_OUT, cmd_out, cmd_out_len); |
| 756 | if (err) | 757 | if (err) |
| 757 | goto obj_free; | 758 | goto obj_destroy; |
| 758 | 759 | ||
| 759 | return 0; | 760 | return 0; |
| 760 | 761 | ||
| 762 | obj_destroy: | ||
| 763 | mlx5_cmd_exec(obj->mdev, obj->dinbox, obj->dinlen, out, sizeof(out)); | ||
| 761 | obj_free: | 764 | obj_free: |
| 762 | kfree(obj); | 765 | kfree(obj); |
| 763 | return err; | 766 | return err; |
