net/failsafe: fix reported hash key size in device info
[dpdk.git] / drivers / net / hns3 / hns3_ethdev.c
index ca87180..918fbe0 100644 (file)
@@ -1473,8 +1473,6 @@ hns3_remove_mac_addr(struct rte_eth_dev *dev, uint32_t idx)
                return;
        }
 
-       if (idx == 0)
-               hw->mac.default_addr_setted = false;
        rte_spinlock_unlock(&hw->lock);
 }
 
@@ -3836,7 +3834,7 @@ hns3_get_mac_link_status(struct hns3_hw *hw)
        ret = hns3_cmd_send(hw, &desc, 1);
        if (ret) {
                hns3_err(hw, "get link status cmd failed %d", ret);
-               return ret;
+               return ETH_LINK_DOWN;
        }
 
        req = (struct hns3_link_status_cmd *)desc.data;
@@ -4197,6 +4195,7 @@ hns3_dev_start(struct rte_eth_dev *dev)
                return ret;
        hns3_set_rxtx_function(dev);
        hns3_mp_req_start_rxtx(dev);
+       rte_eal_alarm_set(HNS3_SERVICE_INTERVAL, hns3_service_handler, dev);
 
        hns3_info(hw, "hns3 dev start successful!");
        return 0;
@@ -4279,6 +4278,7 @@ hns3_dev_stop(struct rte_eth_dev *dev)
                hns3_dev_release_mbufs(hns);
                hw->adapter_state = HNS3_NIC_CONFIGURED;
        }
+       rte_eal_alarm_cancel(hns3_service_handler, dev);
        rte_spinlock_unlock(&hw->lock);
        hns3_unmap_rx_interrupt(dev);
 }
@@ -4301,7 +4301,6 @@ hns3_dev_close(struct rte_eth_dev *eth_dev)
        hw->adapter_state = HNS3_NIC_CLOSING;
        hns3_reset_abort(hns);
        hw->adapter_state = HNS3_NIC_CLOSED;
-       rte_eal_alarm_cancel(hns3_service_handler, eth_dev);
 
        hns3_configure_all_mc_mac_addr(hns, true);
        hns3_remove_all_vlan_table(hns);
@@ -4760,7 +4759,8 @@ hns3_stop_service(struct hns3_adapter *hns)
        struct rte_eth_dev *eth_dev;
 
        eth_dev = &rte_eth_devices[hw->data->port_id];
-       rte_eal_alarm_cancel(hns3_service_handler, eth_dev);
+       if (hw->adapter_state == HNS3_NIC_STARTED)
+               rte_eal_alarm_cancel(hns3_service_handler, eth_dev);
        hw->mac.link_status = ETH_LINK_DOWN;
 
        hns3_set_rxtx_function(eth_dev);
@@ -4801,7 +4801,9 @@ hns3_start_service(struct hns3_adapter *hns)
        eth_dev = &rte_eth_devices[hw->data->port_id];
        hns3_set_rxtx_function(eth_dev);
        hns3_mp_req_start_rxtx(eth_dev);
-       hns3_service_handler(eth_dev);
+       if (hw->adapter_state == HNS3_NIC_STARTED)
+               hns3_service_handler(eth_dev);
+
        return 0;
 }
 
@@ -5059,7 +5061,6 @@ hns3_dev_init(struct rte_eth_dev *eth_dev)
                hns3_notify_reset_ready(hw, false);
        }
 
-       rte_eal_alarm_set(HNS3_SERVICE_INTERVAL, hns3_service_handler, eth_dev);
        hns3_info(hw, "hns3 dev initialization successful!");
        return 0;