ethdev now validates requests for VMDq Rx and Tx modes. No need to validate again in the driver.
Note: - for igb, max_vmdq_pools is already 0 for models that do not support VMDq, so checking the VMDq modes is unneeded, - for i40e, the FW flag was already checked to populate max_vmdq_pools, Signed-off-by: David Marchand <[email protected]> --- drivers/net/hns3/hns3_dcb.c | 9 ------- drivers/net/intel/e1000/igb_rxtx.c | 39 ---------------------------- drivers/net/intel/i40e/i40e_ethdev.c | 5 ---- 3 files changed, 53 deletions(-) diff --git a/drivers/net/hns3/hns3_dcb.c b/drivers/net/hns3/hns3_dcb.c index 6d2945d9c5..e7912aebb2 100644 --- a/drivers/net/hns3/hns3_dcb.c +++ b/drivers/net/hns3/hns3_dcb.c @@ -1840,7 +1840,6 @@ int hns3_check_dev_mq_mode(struct rte_eth_dev *dev) { enum rte_eth_rx_mq_mode rx_mq_mode = dev->data->dev_conf.rxmode.mq_mode; - enum rte_eth_tx_mq_mode tx_mq_mode = dev->data->dev_conf.txmode.mq_mode; struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private); struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw); struct rte_eth_dcb_rx_conf *dcb_rx_conf; @@ -1849,14 +1848,6 @@ hns3_check_dev_mq_mode(struct rte_eth_dev *dev) int max_tc = 0; int i; - if (((uint32_t)rx_mq_mode & RTE_ETH_MQ_RX_VMDQ_FLAG) || - (tx_mq_mode == RTE_ETH_MQ_TX_VMDQ_DCB || - tx_mq_mode == RTE_ETH_MQ_TX_VMDQ_ONLY)) { - hns3_err(hw, "VMDQ is not supported, rx_mq_mode = %d, tx_mq_mode = %d.", - rx_mq_mode, tx_mq_mode); - return -EOPNOTSUPP; - } - dcb_rx_conf = &dev->data->dev_conf.rx_adv_conf.dcb_rx_conf; dcb_tx_conf = &dev->data->dev_conf.tx_adv_conf.dcb_tx_conf; if ((uint32_t)rx_mq_mode & RTE_ETH_MQ_RX_DCB_FLAG) { diff --git a/drivers/net/intel/e1000/igb_rxtx.c b/drivers/net/intel/e1000/igb_rxtx.c index 4fda5d57a0..ef531f1cd4 100644 --- a/drivers/net/intel/e1000/igb_rxtx.c +++ b/drivers/net/intel/e1000/igb_rxtx.c @@ -2113,41 +2113,6 @@ igb_rss_configure(struct rte_eth_dev *dev) igb_hw_rss_hash_set(hw, &rss_conf); } -/* - * Check if the mac type support VMDq or not. - * Return 1 if it supports, otherwise, return 0. - */ -static int -igb_is_vmdq_supported(const struct rte_eth_dev *dev) -{ - const struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private); - - switch (hw->mac.type) { - case e1000_82576: - case e1000_82580: - case e1000_i350: - return 1; - case e1000_82540: - case e1000_82541: - case e1000_82542: - case e1000_82543: - case e1000_82544: - case e1000_82545: - case e1000_82546: - case e1000_82547: - case e1000_82571: - case e1000_82572: - case e1000_82573: - case e1000_82574: - case e1000_82583: - case e1000_i210: - case e1000_i211: - default: - PMD_INIT_LOG(ERR, "Cannot support VMDq feature"); - return 0; - } -} - static int igb_vmdq_rx_hw_configure(struct rte_eth_dev *dev) { @@ -2161,10 +2126,6 @@ igb_vmdq_rx_hw_configure(struct rte_eth_dev *dev) hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private); cfg = &dev->data->dev_conf.rx_adv_conf.vmdq_rx_conf; - /* Check if mac type can support VMDq, return value of 0 means NOT support */ - if (igb_is_vmdq_supported(dev) == 0) - return -1; - igb_rss_disable(dev); /* RCTL: enable VLAN filter */ diff --git a/drivers/net/intel/i40e/i40e_ethdev.c b/drivers/net/intel/i40e/i40e_ethdev.c index 41d5586403..2405d9e119 100644 --- a/drivers/net/intel/i40e/i40e_ethdev.c +++ b/drivers/net/intel/i40e/i40e_ethdev.c @@ -6655,11 +6655,6 @@ i40e_vmdq_setup(struct rte_eth_dev *dev) */ i40e_pf_disable_irq0(hw); - if ((pf->flags & I40E_FLAG_VMDQ) == 0) { - PMD_INIT_LOG(ERR, "FW doesn't support VMDQ"); - return -ENOTSUP; - } - conf_vsis = conf->rx_adv_conf.vmdq_rx_conf.nb_queue_pools; if (conf_vsis > pf->max_nb_vmdq_vsi) { PMD_INIT_LOG(ERR, "VMDQ config: %u, max support:%u", -- 2.54.0

