net/virtio: reject deferred Rx start
[dpdk.git] / drivers / net / atlantic / atl_ethdev.c
index 8dafaba..b2b3bd3 100644 (file)
@@ -407,6 +407,8 @@ eth_atl_dev_init(struct rte_eth_dev *eth_dev)
 
        hw->aq_nic_cfg = &adapter->hw_cfg;
 
+       pthread_mutex_init(&hw->mbox_mutex, NULL);
+
        /* disable interrupt */
        atl_disable_intr(hw);
 
@@ -471,6 +473,8 @@ eth_atl_dev_uninit(struct rte_eth_dev *eth_dev)
        rte_free(eth_dev->data->mac_addrs);
        eth_dev->data->mac_addrs = NULL;
 
+       pthread_mutex_destroy(&hw->mbox_mutex);
+
        return 0;
 }
 
@@ -1544,11 +1548,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;