From: Kevin Laatz <kevin.la...@intel.com>

When rte_rawdev_pmd_release() is called, rte_rawdev_close() looks for a
dev_close function for the device causing a segmentation fault when no
close() function is implemented for a driver.

This patch resolves the issue by adding a stub function ioat_dev_close().

Fixes: f687e842e328 ("raw/ioat: introduce IOAT driver")
Cc: sta...@dpdk.org

Reported-by: Sunil Pai G <sunil.pa...@intel.com>
Signed-off-by: Kevin Laatz <kevin.la...@intel.com>
Reviewed-by: Bruce Richardson <bruce.richard...@intel.com>
Acked-by: Sunil Pai G <sunil.pa...@intel.com>
Acked-by: Radu Nicolau <radu.nico...@intel.com>
---
 drivers/raw/ioat/ioat_rawdev.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/raw/ioat/ioat_rawdev.c b/drivers/raw/ioat/ioat_rawdev.c
index 7f1a15436..0732b059f 100644
--- a/drivers/raw/ioat/ioat_rawdev.c
+++ b/drivers/raw/ioat/ioat_rawdev.c
@@ -203,6 +203,12 @@ ioat_xstats_reset(struct rte_rawdev *dev, const uint32_t 
*ids, uint32_t nb_ids)
        return 0;
 }
 
+static int
+ioat_dev_close(struct rte_rawdev *dev __rte_unused)
+{
+       return 0;
+}
+
 extern int ioat_rawdev_test(uint16_t dev_id);
 
 static int
@@ -212,6 +218,7 @@ ioat_rawdev_create(const char *name, struct rte_pci_device 
*dev)
                        .dev_configure = ioat_dev_configure,
                        .dev_start = ioat_dev_start,
                        .dev_stop = ioat_dev_stop,
+                       .dev_close = ioat_dev_close,
                        .dev_info_get = ioat_dev_info_get,
                        .xstats_get = ioat_xstats_get,
                        .xstats_get_names = ioat_xstats_get_names,
-- 
2.25.1

Reply via email to