]> git.droids-corp.org - dpdk.git/commitdiff
net/mlx5: fix VLAN configuration after port stop
authorShahaf Shuler <shahafs@mellanox.com>
Wed, 13 Dec 2017 14:03:10 +0000 (16:03 +0200)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 16 Jan 2018 17:47:49 +0000 (18:47 +0100)
Ethdev layer has an API to configure vlan setting on the flight, i.e.
when the port state is start.

Calling such API when the port is stopped may cause segmentation fault
as the related Verbs contexts has not been created yet.

Fixes: 09cb5b581762 ("net/mlx5: separate DPDK from verbs Rx queue objects")
Cc: stable@dpdk.org
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
drivers/net/mlx5/mlx5_vlan.c

index 6fc315ef31f6ea7ae672782c7d6b447324e8336c..198a69e3c0bc8d4e4f4427299ae8156845f00749 100644 (file)
@@ -127,6 +127,11 @@ priv_vlan_strip_queue_set(struct priv *priv, uint16_t idx, int on)
 
        DEBUG("set VLAN offloads 0x%x for port %d queue %d",
              vlan_offloads, rxq->port_id, idx);
+       if (!rxq_ctrl->ibv) {
+               /* Update related bits in RX queue. */
+               rxq->vlan_strip = !!on;
+               return;
+       }
        mod = (struct ibv_wq_attr){
                .attr_mask = IBV_WQ_ATTR_FLAGS,
                .flags_mask = IBV_WQ_FLAGS_CVLAN_STRIPPING,