ethdev: fix adding invalid MAC address
[dpdk.git] / drivers / net / i40e / i40e_ethdev.c
index 43c11cf..f85e0aa 100644 (file)
@@ -291,10 +291,10 @@ static int i40e_flow_ctrl_set(struct rte_eth_dev *dev,
                              struct rte_eth_fc_conf *fc_conf);
 static int i40e_priority_flow_ctrl_set(struct rte_eth_dev *dev,
                                       struct rte_eth_pfc_conf *pfc_conf);
-static void i40e_macaddr_add(struct rte_eth_dev *dev,
-                         struct ether_addr *mac_addr,
-                         uint32_t index,
-                         uint32_t pool);
+static int i40e_macaddr_add(struct rte_eth_dev *dev,
+                           struct ether_addr *mac_addr,
+                           uint32_t index,
+                           uint32_t pool);
 static void i40e_macaddr_remove(struct rte_eth_dev *dev, uint32_t index);
 static int i40e_dev_rss_reta_update(struct rte_eth_dev *dev,
                                    struct rte_eth_rss_reta_entry64 *reta_conf,
@@ -3267,7 +3267,7 @@ i40e_priority_flow_ctrl_set(__rte_unused struct rte_eth_dev *dev,
 }
 
 /* Add a MAC address, and update filters */
-static void
+static int
 i40e_macaddr_add(struct rte_eth_dev *dev,
                 struct ether_addr *mac_addr,
                 __rte_unused uint32_t index,
@@ -3284,13 +3284,13 @@ i40e_macaddr_add(struct rte_eth_dev *dev,
                PMD_DRV_LOG(ERR, "VMDQ not %s, can't set mac to pool %u",
                        pf->flags & I40E_FLAG_VMDQ ? "configured" : "enabled",
                        pool);
-               return;
+               return -ENOTSUP;
        }
 
        if (pool > pf->nb_cfg_vmdq_vsi) {
                PMD_DRV_LOG(ERR, "Pool number %u invalid. Max pool is %u",
                                pool, pf->nb_cfg_vmdq_vsi);
-               return;
+               return -EINVAL;
        }
 
        (void)rte_memcpy(&mac_filter.mac_addr, mac_addr, ETHER_ADDR_LEN);
@@ -3307,8 +3307,9 @@ i40e_macaddr_add(struct rte_eth_dev *dev,
        ret = i40e_vsi_add_mac(vsi, &mac_filter);
        if (ret != I40E_SUCCESS) {
                PMD_DRV_LOG(ERR, "Failed to add MACVLAN filter");
-               return;
+               return -ENODEV;
        }
+       return 0;
 }
 
 /* Remove a MAC address, and update filters */
@@ -4507,8 +4508,8 @@ i40e_update_default_filter_setting(struct i40e_vsi *vsi)
                struct i40e_mac_filter *f;
                struct ether_addr *mac;
 
-               PMD_DRV_LOG(WARNING,
-                       "Cannot remove the default macvlan filter");
+               PMD_DRV_LOG(DEBUG,
+                           "Cannot remove the default macvlan filter");
                /* It needs to add the permanent mac into mac list */
                f = rte_zmalloc("macv_filter", sizeof(*f), 0);
                if (f == NULL) {
@@ -7148,8 +7149,8 @@ i40e_dev_consistent_tunnel_filter_set(struct i40e_pf *pf,
                if (!pf->qinq_replace_flag) {
                        ret = i40e_cloud_filter_qinq_create(pf);
                        if (ret < 0)
-                               PMD_DRV_LOG(ERR,
-                                       "Failed to create a qinq tunnel filter.");
+                               PMD_DRV_LOG(DEBUG,
+                                           "QinQ tunnel filter already created.");
                        pf->qinq_replace_flag = 1;
                }
                /*      Add in the General fields the values of
@@ -8991,7 +8992,7 @@ i40e_enable_extended_tag(struct rte_eth_dev *dev)
        uint32_t buf = 0;
        int ret;
 
-       ret = rte_eal_pci_read_config(pci_dev, &buf, sizeof(buf),
+       ret = rte_pci_read_config(pci_dev, &buf, sizeof(buf),
                                      PCI_DEV_CAP_REG);
        if (ret < 0) {
                PMD_DRV_LOG(ERR, "Failed to read PCI offset 0x%x",
@@ -9004,7 +9005,7 @@ i40e_enable_extended_tag(struct rte_eth_dev *dev)
        }
 
        buf = 0;
-       ret = rte_eal_pci_read_config(pci_dev, &buf, sizeof(buf),
+       ret = rte_pci_read_config(pci_dev, &buf, sizeof(buf),
                                      PCI_DEV_CTRL_REG);
        if (ret < 0) {
                PMD_DRV_LOG(ERR, "Failed to read PCI offset 0x%x",
@@ -9016,7 +9017,7 @@ i40e_enable_extended_tag(struct rte_eth_dev *dev)
                return;
        }
        buf |= PCI_DEV_CTRL_EXT_TAG_MASK;
-       ret = rte_eal_pci_write_config(pci_dev, &buf, sizeof(buf),
+       ret = rte_pci_write_config(pci_dev, &buf, sizeof(buf),
                                       PCI_DEV_CTRL_REG);
        if (ret < 0) {
                PMD_DRV_LOG(ERR, "Failed to write PCI offset 0x%x",