On 1/26/2022 3:29 AM, Wei Huang wrote:
Use rte_dev_remove() to replace rte_rawdev_pmd_release()
in ifpga_rawdev_cleanup(), resources occupied by ifpga
raw devices such as threads can be released correctly.


As far as I understand you are fixing an issue that not all resources
are released, is this correct?
What are these not released resources?

And 'rte_rawdev_pmd_release()' rawdev API seems intended to do the cleanup,
is it expected that some resources are not freed after this call, or
should we fix that API?
If the device remove API needs to be used, what is the point of
'rte_rawdev_pmd_release()' API?

cc'ed rawdev maintainers for comment.

Fixes: f724a802 ("raw/ifpga: add miscellaneous APIs")

Signed-off-by: Wei Huang <wei.hu...@intel.com>
---
  drivers/raw/ifpga/ifpga_rawdev.c | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/raw/ifpga/ifpga_rawdev.c b/drivers/raw/ifpga/ifpga_rawdev.c
index fdf3c23..88c38aa 100644
--- a/drivers/raw/ifpga/ifpga_rawdev.c
+++ b/drivers/raw/ifpga/ifpga_rawdev.c
@@ -1787,12 +1787,14 @@ int ifpga_rawdev_partial_reconfigure(struct rte_rawdev 
*dev, int port,
  void ifpga_rawdev_cleanup(void)
  {
        struct ifpga_rawdev *dev;
+       struct rte_rawdev *rdev;
        unsigned int i;
for (i = 0; i < IFPGA_RAWDEV_NUM; i++) {
                dev = &ifpga_rawdevices[i];
                if (dev->rawdev) {
-                       rte_rawdev_pmd_release(dev->rawdev);
+                       rdev = dev->rawdev;
+                       rte_dev_remove(rdev->device);
                        dev->rawdev = NULL;
                }
        }

Reply via email to