Hi, > -----Original Message----- > From: Kevin Traynor <ktray...@redhat.com> > Sent: Friday, March 20, 2020 6:48 PM > To: dev@dpdk.org; Raslan Darawsheh <rasl...@mellanox.com> > Cc: Kevin Traynor <ktray...@redhat.com> > Subject: [PATCH] net/mlx5: fix gcc 10 enum-conversion warning > > gcc 10.0.1 reports warnings when using mlx5_rte_flow enums > with rte_flow type enums. For example: > > ../drivers/net/mlx5/mlx5_flow.c: In function ‘flow_hairpin_split’: > ../drivers/net/mlx5/mlx5_flow.c:3406:19: > warning: implicit conversion from ‘enum mlx5_rte_flow_action_type’ to > ‘enum rte_flow_action_type’ [-Wenum-conversion] > 3406 | tag_action->type = MLX5_RTE_FLOW_ACTION_TYPE_TAG; > | ^ > ../drivers/net/mlx5/mlx5_flow.c:3419:13: > warning: implicit conversion from ‘enum mlx5_rte_flow_item_type’ to > ‘enum rte_flow_item_type’ [-Wenum-conversion] > 3419 | item->type = MLX5_RTE_FLOW_ITEM_TYPE_TAG; > | ^ > > Fix by casting to the correct enum. > > Signed-off-by: Kevin Traynor <ktray...@redhat.com> > --- > drivers/net/mlx5/mlx5_flow.c | 46 ++++++++++++++++++++++++------------ > 1 file changed, 31 insertions(+), 15 deletions(-) > > diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c > index 41072da6d..c1b87a3ed 100644 > --- a/drivers/net/mlx5/mlx5_flow.c > +++ b/drivers/net/mlx5/mlx5_flow.c > @@ -3002,5 +3002,6 @@ flow_mreg_add_copy_action(struct rte_eth_dev > *dev, uint32_t mark_id, > if (mark_id != MLX5_DEFAULT_COPY_ID) { > items[0] = (struct rte_flow_item){ > - .type = MLX5_RTE_FLOW_ITEM_TYPE_TAG, > + .type = (enum rte_flow_item_type) > + MLX5_RTE_FLOW_ITEM_TYPE_TAG, > .spec = &tag_spec, > }; > @@ -3009,9 +3010,11 @@ flow_mreg_add_copy_action(struct rte_eth_dev > *dev, uint32_t mark_id, > }; > actions[0] = (struct rte_flow_action){ > - .type = MLX5_RTE_FLOW_ACTION_TYPE_MARK, > + .type = (enum rte_flow_action_type) > + MLX5_RTE_FLOW_ACTION_TYPE_MARK, > .conf = &ftag, > }; > actions[1] = (struct rte_flow_action){ > - .type = > MLX5_RTE_FLOW_ACTION_TYPE_COPY_MREG, > + .type = (enum rte_flow_action_type) > + > MLX5_RTE_FLOW_ACTION_TYPE_COPY_MREG, > .conf = &cp_mreg, > }; > @@ -3030,5 +3033,6 @@ flow_mreg_add_copy_action(struct rte_eth_dev > *dev, uint32_t mark_id, > }; > actions[0] = (struct rte_flow_action){ > - .type = > MLX5_RTE_FLOW_ACTION_TYPE_COPY_MREG, > + .type = (enum rte_flow_action_type) > + > MLX5_RTE_FLOW_ACTION_TYPE_COPY_MREG, > .conf = &cp_mreg, > }; > @@ -3404,5 +3408,6 @@ flow_hairpin_split(struct rte_eth_dev *dev, > /* Add set meta action and end action for the Rx flow. */ > tag_action = actions_rx; > - tag_action->type = MLX5_RTE_FLOW_ACTION_TYPE_TAG; > + tag_action->type = (enum rte_flow_action_type) > + MLX5_RTE_FLOW_ACTION_TYPE_TAG; > actions_rx++; > rte_memcpy(actions_rx, actions, sizeof(struct rte_flow_action)); > @@ -3417,5 +3422,6 @@ flow_hairpin_split(struct rte_eth_dev *dev, > addr = (void *)&pattern_tx[2]; > item = pattern_tx; > - item->type = MLX5_RTE_FLOW_ITEM_TYPE_TAG; > + item->type = (enum rte_flow_item_type) > + MLX5_RTE_FLOW_ITEM_TYPE_TAG; > tag_item = (void *)addr; > tag_item->data = *flow_id; > @@ -3549,5 +3555,6 @@ flow_meter_split_prep(struct rte_eth_dev *dev, > /* Add the extra tag action first. */ > tag_action = actions_pre; > - tag_action->type = > MLX5_RTE_FLOW_ACTION_TYPE_TAG; > + tag_action->type = (enum rte_flow_action_type) > + > MLX5_RTE_FLOW_ACTION_TYPE_TAG; > actions_pre++; > action_cur = &actions_pre; > @@ -3610,5 +3617,6 @@ flow_meter_split_prep(struct rte_eth_dev *dev, > * for vlan push and set vid. > */ > - sfx_items->type = > MLX5_RTE_FLOW_ITEM_TYPE_VLAN; > + sfx_items->type = (enum > rte_flow_item_type) > + > MLX5_RTE_FLOW_ITEM_TYPE_VLAN; > sfx_items++; > } > @@ -3625,5 +3633,6 @@ flow_meter_split_prep(struct rte_eth_dev *dev, > tag_mask = tag_spec + 1; > tag_mask->data = 0xffffff00; > - tag_item->type = MLX5_RTE_FLOW_ITEM_TYPE_TAG; > + tag_item->type = (enum rte_flow_item_type) > + MLX5_RTE_FLOW_ITEM_TYPE_TAG; > tag_item->spec = tag_spec; > tag_item->last = NULL; > @@ -3728,5 +3737,6 @@ flow_mreg_split_qrss_prep(struct rte_eth_dev > *dev, > /* Replace QUEUE/RSS action. */ > split_actions[qrss_idx] = (struct rte_flow_action){ > - .type = MLX5_RTE_FLOW_ACTION_TYPE_TAG, > + .type = (enum rte_flow_action_type) > + MLX5_RTE_FLOW_ACTION_TYPE_TAG, > .conf = set_tag, > }; > @@ -3791,5 +3801,6 @@ flow_mreg_tx_copy_prep(struct rte_eth_dev > *dev, > if (encap_idx == actions_n - 1) { > ext_actions[actions_n - 1] = (struct rte_flow_action){ > - .type = > MLX5_RTE_FLOW_ACTION_TYPE_COPY_MREG, > + .type = (enum rte_flow_action_type) > + > MLX5_RTE_FLOW_ACTION_TYPE_COPY_MREG, > .conf = cp_mreg, > }; > @@ -3799,5 +3810,6 @@ flow_mreg_tx_copy_prep(struct rte_eth_dev > *dev, > } else { > ext_actions[encap_idx] = (struct rte_flow_action){ > - .type = > MLX5_RTE_FLOW_ACTION_TYPE_COPY_MREG, > + .type = (enum rte_flow_action_type) > + > MLX5_RTE_FLOW_ACTION_TYPE_COPY_MREG, > .conf = cp_mreg, > }; > @@ -3913,4 +3925,5 @@ flow_create_split_metadata(struct rte_eth_dev > *dev, > else > ext_actions[qrss - actions].type = > + (enum > rte_flow_action_type) > > MLX5_RTE_FLOW_ACTION_TYPE_TAG; > /* > @@ -3964,5 +3977,6 @@ flow_create_split_metadata(struct rte_eth_dev > *dev, > struct rte_flow_item q_items[] = { > { > - .type = MLX5_RTE_FLOW_ITEM_TYPE_TAG, > + .type = (enum rte_flow_item_type) > + MLX5_RTE_FLOW_ITEM_TYPE_TAG, > .spec = &q_tag_spec, > .last = NULL, > @@ -4605,5 +4619,6 @@ mlx5_ctrl_flow_source_queue(struct rte_eth_dev > *dev, > struct rte_flow_item items[] = { > { > - .type = MLX5_RTE_FLOW_ITEM_TYPE_TX_QUEUE, > + .type = (enum rte_flow_item_type) > + MLX5_RTE_FLOW_ITEM_TYPE_TX_QUEUE, > .spec = &queue_spec, > .last = NULL, > @@ -5722,5 +5737,6 @@ mlx5_flow_discover_mreg_c(struct rte_eth_dev > *dev) > struct rte_flow_action actions[] = { > [0] = { > - .type = > MLX5_RTE_FLOW_ACTION_TYPE_COPY_MREG, > + .type = (enum rte_flow_action_type) > + > MLX5_RTE_FLOW_ACTION_TYPE_COPY_MREG, > .conf = &(struct > mlx5_flow_action_copy_mreg){ > .src = REG_C_1, > -- > 2.21.1
Patch applied to next-net-mlx, Kindest regards, Raslan Darawsheh