MLX5_SET(destroy_qp_in, in, opcode, MLX5_CMD_OP_DESTROY_QP);
        MLX5_SET(destroy_qp_in, in, qpn, qp->qpn);
        MLX5_SET(destroy_qp_in, in, uid, qp->uid);
-       mlx5_cmd_exec_in(dev->mdev, destroy_qp, in);
-       return 0;
+       return mlx5_cmd_exec_in(dev->mdev, destroy_qp, in);
 }
 
 int mlx5_core_set_delay_drop(struct mlx5_ib_dev *dev,
        return mlx5_cmd_exec_in(dev->mdev, dealloc_xrcd, in);
 }
 
-static void destroy_rq_tracked(struct mlx5_ib_dev *dev, u32 rqn, u16 uid)
+static int destroy_rq_tracked(struct mlx5_ib_dev *dev, u32 rqn, u16 uid)
 {
        u32 in[MLX5_ST_SZ_DW(destroy_rq_in)] = {};
 
        MLX5_SET(destroy_rq_in, in, opcode, MLX5_CMD_OP_DESTROY_RQ);
        MLX5_SET(destroy_rq_in, in, rqn, rqn);
        MLX5_SET(destroy_rq_in, in, uid, uid);
-       mlx5_cmd_exec_in(dev->mdev, destroy_rq, in);
+       return mlx5_cmd_exec_in(dev->mdev, destroy_rq, in);
 }
 
 int mlx5_core_create_rq_tracked(struct mlx5_ib_dev *dev, u32 *in, int inlen,
                                 struct mlx5_core_qp *rq)
 {
        destroy_resource_common(dev, rq);
-       destroy_rq_tracked(dev, rq->qpn, rq->uid);
-       return 0;
+       return destroy_rq_tracked(dev, rq->qpn, rq->uid);
 }
 
 static void destroy_sq_tracked(struct mlx5_ib_dev *dev, u32 sqn, u16 uid)