| 1444 | } |
| 1445 | |
| 1446 | static int |
| 1447 | idpf_pci_remove(struct rte_pci_device *pci_dev) |
| 1448 | { |
| 1449 | struct idpf_adapter_ext *adapter = idpf_find_adapter_ext(pci_dev); |
| 1450 | uint16_t port_id; |
| 1451 | |
| 1452 | /* Ethdev created can be found RTE_ETH_FOREACH_DEV_OF through rte_device */ |
| 1453 | RTE_ETH_FOREACH_DEV_OF(port_id, &pci_dev->device) { |
| 1454 | rte_eth_dev_close(port_id); |
| 1455 | } |
| 1456 | |
| 1457 | rte_spinlock_lock(&idpf_adapter_lock); |
| 1458 | TAILQ_REMOVE(&idpf_adapter_list, adapter, next); |
| 1459 | rte_spinlock_unlock(&idpf_adapter_lock); |
| 1460 | idpf_adapter_ext_deinit(adapter); |
| 1461 | rte_free(adapter); |
| 1462 | |
| 1463 | return 0; |
| 1464 | } |
| 1465 | |
| 1466 | static struct rte_pci_driver rte_idpf_pmd = { |
| 1467 | .id_table = pci_id_idpf_map, |
nothing calls this directly
no test coverage detected