net/mlx5: check register available for metadata action
authorTonghao Zhang <xiangxia.m.yue@gmail.com>
Fri, 20 Nov 2020 14:48:03 +0000 (14:48 +0000)
committerRaslan Darawsheh <rasland@nvidia.com>
Sun, 22 Nov 2020 14:37:05 +0000 (15:37 +0100)
commit5ea8356ec86bd9c4d5bd52588522b9911f18836d
treedfd8c7de190660fdded183a0b53538370b112ac6
parent5fc2e5c27d69bcebb352d17603a1d3ca2628f17b
net/mlx5: check register available for metadata action

If user don't set the dv_xmeta_en to 1 or 2,
in the flow_dv_convert_action_set_meta function:

- flow_dv_get_metadata_reg may return the REG_NONE,
  when MLX5_METADATA_FDB enabled for metadata set action.

- reg_to_field(REG_NONE) returns MLX5_MODI_OUT_NONE,
  that is invalid and rdma-core fails.

The rdma-core calltrace:
    dr_action_create_modify_action
    dr_actions_convert_modify_header
    dr_action_modify_sw_to_hw
    dr_action_modify_sw_to_hw_set
    dr_ste_get_modify_hdr_hw_field

Fixes: fcc8d2f716fd ("net/mlx5: extend flow metadata support")
Cc: stable@dpdk.org
Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
drivers/net/mlx5/mlx5_flow_dv.c