| 2359 | } |
| 2360 | |
| 2361 | static void ena_destroy_device(struct rte_eth_dev *eth_dev) |
| 2362 | { |
| 2363 | struct ena_adapter *adapter = eth_dev->data->dev_private; |
| 2364 | struct ena_com_dev *ena_dev = &adapter->ena_dev; |
| 2365 | |
| 2366 | if (adapter->state == ENA_ADAPTER_STATE_FREE) |
| 2367 | return; |
| 2368 | |
| 2369 | ena_com_set_admin_running_state(ena_dev, false); |
| 2370 | |
| 2371 | if (adapter->state != ENA_ADAPTER_STATE_CLOSED) |
| 2372 | ena_close(eth_dev); |
| 2373 | |
| 2374 | ena_com_rss_destroy(ena_dev); |
| 2375 | |
| 2376 | ena_com_delete_debug_area(ena_dev); |
| 2377 | ena_com_delete_host_info(ena_dev); |
| 2378 | |
| 2379 | ena_com_abort_admin_commands(ena_dev); |
| 2380 | ena_com_wait_for_abort_completion(ena_dev); |
| 2381 | ena_com_admin_destroy(ena_dev); |
| 2382 | ena_com_mmio_reg_read_request_destroy(ena_dev); |
| 2383 | ena_com_delete_customer_metrics_buffer(ena_dev); |
| 2384 | |
| 2385 | adapter->state = ENA_ADAPTER_STATE_FREE; |
| 2386 | } |
| 2387 | |
| 2388 | static int eth_ena_dev_uninit(struct rte_eth_dev *eth_dev) |
| 2389 | { |
no test coverage detected