net/bnxt: fix VLAN add when port is stopped
authorKalesh AP <kalesh-anakkur.purayil@broadcom.com>
Tue, 21 Apr 2020 21:33:49 +0000 (14:33 -0700)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 22 Apr 2020 11:41:24 +0000 (13:41 +0200)
Driver destroys the vnic when the port is brought down.
When user tries to add a vlan when port is stopped, driver
issues HWRM command to FW with invalid vnic_id and it fails.

Fixed to return an error while setting vlan when port is
not started.

Fixes: b4e190d55c25 ("net/bnxt: fix MAC/VLAN filter allocation")
Cc: stable@dpdk.org
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
drivers/net/bnxt/bnxt_ethdev.c

index 206111d..589190b 100644 (file)
@@ -2082,6 +2082,11 @@ static int bnxt_vlan_filter_set_op(struct rte_eth_dev *eth_dev,
        if (rc)
                return rc;
 
+       if (!eth_dev->data->dev_started) {
+               PMD_DRV_LOG(ERR, "port must be started before setting vlan\n");
+               return -EINVAL;
+       }
+
        /* These operations apply to ALL existing MAC/VLAN filters */
        if (on)
                return bnxt_add_vlan_filter(bp, vlan_id);