MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ena_close

Function ena_close

dpdk/drivers/net/ena/ena_ethdev.c:852–884  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

850}
851
852static int ena_close(struct rte_eth_dev *dev)
853{
854 struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
855 struct rte_intr_handle *intr_handle = pci_dev->intr_handle;
856 struct ena_adapter *adapter = dev->data->dev_private;
857 int ret = 0;
858
859 if (rte_eal_process_type() != RTE_PROC_PRIMARY)
860 return 0;
861
862 if (adapter->state == ENA_ADAPTER_STATE_RUNNING)
863 ret = ena_stop(dev);
864 adapter->state = ENA_ADAPTER_STATE_CLOSED;
865
866 ena_rx_queue_release_all(dev);
867 ena_tx_queue_release_all(dev);
868
869 rte_free(adapter->drv_stats);
870 adapter->drv_stats = NULL;
871
872 rte_intr_disable(intr_handle);
873 rte_intr_callback_unregister(intr_handle,
874 ena_interrupt_handler_rte,
875 dev);
876
877 /*
878 * MAC is not allocated dynamically. Setting NULL should prevent from
879 * release of the resource in the rte_eth_dev_release_port().
880 */
881 dev->data->mac_addrs = NULL;
882
883 return ret;
884}
885
886static int
887ena_dev_reset(struct rte_eth_dev *dev)

Callers 1

ena_destroy_deviceFunction · 0.85

Calls 7

rte_eal_process_typeFunction · 0.85
ena_stopFunction · 0.85
ena_rx_queue_release_allFunction · 0.85
ena_tx_queue_release_allFunction · 0.85
rte_freeFunction · 0.85
rte_intr_disableFunction · 0.50

Tested by

no test coverage detected