net/mlx5: fix Rx VLAN stripping capability check
A hardware capability check is missing before enabling RX VLAN stripping
during queue setup.
Also, while dev_conf.rxmode.hw_vlan_strip is currently a single bit that
can be stored in priv->hw_vlan_strip directly, it should be interpreted as
a boolean value for safety.
Fixes: f3db948918
("mlx5: support Rx VLAN stripping")
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
This commit is contained in:
parent
78d9c95d91
commit
6a707608dc
@ -1222,7 +1222,8 @@ rxq_setup(struct rte_eth_dev *dev, struct rxq *rxq, uint16_t desc,
|
||||
DEBUG("priv->device_attr.max_sge is %d",
|
||||
priv->device_attr.max_sge);
|
||||
/* Configure VLAN stripping. */
|
||||
tmpl.vlan_strip = dev->data->dev_conf.rxmode.hw_vlan_strip;
|
||||
tmpl.vlan_strip = (priv->hw_vlan_strip &&
|
||||
!!dev->data->dev_conf.rxmode.hw_vlan_strip);
|
||||
attr.wq = (struct ibv_exp_wq_init_attr){
|
||||
.wq_context = NULL, /* Could be useful in the future. */
|
||||
.wq_type = IBV_EXP_WQT_RQ,
|
||||
|
@ -218,7 +218,7 @@ mlx5_vlan_offload_set(struct rte_eth_dev *dev, int mask)
|
||||
unsigned int i;
|
||||
|
||||
if (mask & ETH_VLAN_STRIP_MASK) {
|
||||
int hw_vlan_strip = dev->data->dev_conf.rxmode.hw_vlan_strip;
|
||||
int hw_vlan_strip = !!dev->data->dev_conf.rxmode.hw_vlan_strip;
|
||||
|
||||
if (!priv->hw_vlan_strip) {
|
||||
ERROR("VLAN stripping is not supported");
|
||||
|
Loading…
Reference in New Issue
Block a user