| 484 | } |
| 485 | |
| 486 | static int |
| 487 | pmd_remove(struct rte_vdev_device *vdev) |
| 488 | { |
| 489 | struct rte_eth_dev *dev = NULL; |
| 490 | |
| 491 | if (!vdev) |
| 492 | return -EINVAL; |
| 493 | |
| 494 | PMD_LOG(INFO, "Removing device \"%s\"", rte_vdev_device_name(vdev)); |
| 495 | |
| 496 | /* Find the ethdev entry */ |
| 497 | dev = rte_eth_dev_allocated(rte_vdev_device_name(vdev)); |
| 498 | if (dev == NULL) |
| 499 | return 0; /* port already released */ |
| 500 | |
| 501 | pmd_dev_close(dev); |
| 502 | rte_eth_dev_release_port(dev); |
| 503 | |
| 504 | return 0; |
| 505 | } |
| 506 | |
| 507 | static struct rte_vdev_driver pmd_softnic_drv = { |
| 508 | .probe = pmd_probe, |
nothing calls this directly
no test coverage detected