net/hns3: add check for deferred start queue when rollback
[dpdk.git] / drivers / net / hns3 / hns3_ethdev.c
index 5aed704..0b565a5 100644 (file)
@@ -2015,11 +2015,9 @@ hns3_dev_configure(struct rte_eth_dev *dev)
                        goto cfg_err;
        }
 
-       /* When RSS is not configured, redirect the packet queue 0 */
        if ((uint32_t)mq_mode & RTE_ETH_MQ_RX_RSS_FLAG) {
                conf->rxmode.offloads |= RTE_ETH_RX_OFFLOAD_RSS_HASH;
                rss_conf = conf->rx_adv_conf.rss_conf;
-               hw->rss_dis_flag = false;
                ret = hns3_dev_rss_hash_update(dev, &rss_conf);
                if (ret)
                        goto cfg_err;
@@ -2825,7 +2823,6 @@ hns3_get_board_configuration(struct hns3_hw *hw)
 
        hw->mac.media_type = cfg.media_type;
        hw->rss_size_max = cfg.rss_size_max;
-       hw->rss_dis_flag = false;
        memcpy(hw->mac.mac_addr, cfg.mac_addr, RTE_ETHER_ADDR_LEN);
        hw->mac.phy_addr = cfg.phy_addr;
        hw->dcb_info.num_pg = 1;
@@ -4364,10 +4361,12 @@ hns3_service_handler(void *param)
        struct hns3_adapter *hns = eth_dev->data->dev_private;
        struct hns3_hw *hw = &hns->hw;
 
-       if (!hns3_is_reset_pending(hns))
+       if (!hns3_is_reset_pending(hns)) {
                hns3_update_linkstatus_and_event(hw, true);
-       else
+               hns3_update_hw_stats(hw);
+       } else {
                hns3_warn(hw, "Cancel the query when reset is pending");
+       }
 
        rte_eal_alarm_set(HNS3_SERVICE_INTERVAL, hns3_service_handler, eth_dev);
 }