From: Pavel Belous <pavel.bel...@aquantia.com>

Driver reports current flow control mode based on internal flow control
settings. Currently this logic works incorrectly.

Fixes: 921eb6b8ce31 ("net/atlantic: fix flow control by sync settings on Rx")
Cc: sta...@dpdk.org
Signed-off-by: Pavel Belous <pavel.bel...@aquantia.com>
Signed-off-by: Igor Russkikh <igor.russk...@aquantia.com>
---
 drivers/net/atlantic/atl_ethdev.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/atlantic/atl_ethdev.c 
b/drivers/net/atlantic/atl_ethdev.c
index 178f7db..1b9d514 100644
--- a/drivers/net/atlantic/atl_ethdev.c
+++ b/drivers/net/atlantic/atl_ethdev.c
@@ -1535,11 +1535,11 @@ atl_flow_ctrl_get(struct rte_eth_dev *dev, struct 
rte_eth_fc_conf *fc_conf)
 
        if (fc == AQ_NIC_FC_OFF)
                fc_conf->mode = RTE_FC_NONE;
-       else if (fc & (AQ_NIC_FC_RX | AQ_NIC_FC_TX))
+       else if ((fc & AQ_NIC_FC_RX) && (fc & AQ_NIC_FC_TX))
                fc_conf->mode = RTE_FC_FULL;
        else if (fc & AQ_NIC_FC_RX)
                fc_conf->mode = RTE_FC_RX_PAUSE;
-       else if (fc & AQ_NIC_FC_RX)
+       else if (fc & AQ_NIC_FC_TX)
                fc_conf->mode = RTE_FC_TX_PAUSE;
 
        return 0;
-- 
2.7.4

Reply via email to