RDMA/mlx5: Check for error return in flow_rule rather than err
authorColin Ian King <colin.king@canonical.com>
Fri, 12 Apr 2019 10:40:17 +0000 (11:40 +0100)
committerJason Gunthorpe <jgg@mellanox.com>
Fri, 12 Apr 2019 14:19:49 +0000 (11:19 -0300)
Currently when the call to create_flow_rule_vport_sq fails, the error
check is being performed on err rather than on the return pointer
flow_rule.  The return flow_rule maybe NULL (which is not considered an
error) or an error code, so check for the error on flow_rule.

Addresses-Coverity: ("Uninitialized scalar variable")
Fixes: d5ed8ac34cef ("RDMA/mlx5: Move default representors SQ steering to rule to modify QP")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Acked-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/hw/mlx5/qp.c

index a970af0..487dccb 100644 (file)
@@ -3276,7 +3276,7 @@ static int modify_raw_packet_qp(struct mlx5_ib_dev *dev, struct mlx5_ib_qp *qp,
                flow_rule = create_flow_rule_vport_sq(dev, sq,
                                                      raw_qp_param->port);
                if (IS_ERR(flow_rule))
-                       return err;
+                       return PTR_ERR(flow_rule);
 
                err = modify_raw_packet_qp_sq(dev->mdev, sq, sq_state,
                                              raw_qp_param, qp->ibqp.pd);