#include "hns3_logs.h"
#include "hns3_rxtx.h"
#include "hns3_regs.h"
+#include "hns3_intr.h"
#include "hns3_dcb.h"
#define HNS3VF_KEEP_ALIVE_INTERVAL 2000000 /* us */
enum hns3vf_evt_cause event_cause;
uint32_t clearval;
+ if (hw->irq_thread_id == 0)
+ hw->irq_thread_id = pthread_self();
+
/* Disable interrupt */
hns3vf_disable_irq0(hw);
hns3_set_default_rss_args(hw);
+ (void)hns3_stats_reset(eth_dev);
return 0;
err_get_config:
hns3vf_disable_irq0(hw);
rte_intr_disable(&pci_dev->intr_handle);
-
+ hns3_intr_unregister(&pci_dev->intr_handle, hns3vf_interrupt_handler,
+ eth_dev);
err_intr_callback_register:
hns3_cmd_uninit(hw);
(void)hns3vf_set_promisc_mode(hw, false);
hns3vf_disable_irq0(hw);
rte_intr_disable(&pci_dev->intr_handle);
+ hns3_intr_unregister(&pci_dev->intr_handle, hns3vf_interrupt_handler,
+ eth_dev);
hns3_cmd_uninit(hw);
hns3_cmd_destroy_queue(hw);
hw->io_base = NULL;
.dev_stop = hns3vf_dev_stop,
.dev_close = hns3vf_dev_close,
.mtu_set = hns3vf_dev_mtu_set,
+ .stats_get = hns3_stats_get,
+ .stats_reset = hns3_stats_reset,
+ .xstats_get = hns3_dev_xstats_get,
+ .xstats_get_names = hns3_dev_xstats_get_names,
+ .xstats_reset = hns3_dev_xstats_reset,
+ .xstats_get_by_id = hns3_dev_xstats_get_by_id,
+ .xstats_get_names_by_id = hns3_dev_xstats_get_names_by_id,
.dev_infos_get = hns3vf_dev_infos_get,
.rx_queue_setup = hns3_rx_queue_setup,
.tx_queue_setup = hns3_tx_queue_setup,