On 4/26/2019 6:09 AM, Xiaolong Ye wrote: > Since 18.11, it is suggested that driver should release all its private > resources at the dev_close routine. So all resources previously released > in remove routine are now released at the dev_close routine, and the > dev_close routine will be called in driver remove routine in order to > support removing a device without closing its ports. > > Above behavior changes are supported by setting RTE_ETH_DEV_CLOSE_REMOVE > flag during probe stage. > > Signed-off-by: Xiaolong Ye <[email protected]>
<...> > @@ -936,14 +940,7 @@ rte_pmd_af_xdp_remove(struct rte_vdev_device *dev) > if (eth_dev == NULL) > return -1; > > - internals = eth_dev->data->dev_private; > - > - rte_ring_free(internals->umem->buf_ring); > - rte_memzone_free(internals->umem->mz); > - rte_free(internals->umem); > - > - rte_eth_dev_release_port(eth_dev); I thinks we should keep 'rte_eth_dev_release_port()' in '.remove()' path, the 'RTE_ETH_DEV_CLOSE_REMOVE' flag will take care of this in 'rte_eth_dev_close()' but still needed in '.remove()' path. > - > + eth_dev_close(eth_dev); > > return 0; > } >

