Previously, (pf->flags | I40E_FLAG_VMDQ) will be always true regardless
of the value of its operand, because I40E_FLAG_VMDQ is 4ULL. But he
original idea should judge if VMDQ is enabled.
Fix this issue with (pf->flags & I40E_FLAG_VMDQ).

Fixes: 4805ed59e957 ("i40e: enhance mac address operations")

Signed-off-by: Beilei Xing <beilei.xing at intel.com>
---
 drivers/net/i40e/i40e_ethdev.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index f94ad87..eba6481 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -2738,9 +2738,10 @@ i40e_macaddr_add(struct rte_eth_dev *dev,
        int ret;

        /* If VMDQ not enabled or configured, return */
-       if (pool != 0 && (!(pf->flags | I40E_FLAG_VMDQ) || 
!pf->nb_cfg_vmdq_vsi)) {
+       if (pool != 0 && (!(pf->flags & I40E_FLAG_VMDQ) ||
+                         !pf->nb_cfg_vmdq_vsi)) {
                PMD_DRV_LOG(ERR, "VMDQ not %s, can't set mac to pool %u",
-                       pf->flags | I40E_FLAG_VMDQ ? "configured" : "enabled",
+                       pf->flags & I40E_FLAG_VMDQ ? "configured" : "enabled",
                        pool);
                return;
        }
@@ -2791,7 +2792,7 @@ i40e_macaddr_remove(struct rte_eth_dev *dev, uint32_t 
index)
                                vsi = pf->main_vsi;
                        else {
                                /* No VMDQ pool enabled or configured */
-                               if (!(pf->flags | I40E_FLAG_VMDQ) ||
+                               if (!(pf->flags & I40E_FLAG_VMDQ) ||
                                        (i > pf->nb_cfg_vmdq_vsi)) {
                                        PMD_DRV_LOG(ERR, "No VMDQ pool enabled"
                                                        "/configured");
-- 
2.5.0

Reply via email to