[Accel-config] [PATCH v2 4/5] accel-config: Add freeing of mdev list
ramesh.thomas at intel.com
| Newsgroups | dev.linux.lists.accel-config |
|---|---|
| Message-ID | <[email protected]> |
From: Ramesh Thomas <ramesh.thomas(a)intel.com>
Per device mdev list was not getting freed at error exit and when device
was getting freed. Add freeing of list for a given device.
Signed-off-by: Ramesh Thomas <ramesh.thomas(a)intel.com>
Reviewed-by: Dave Jiang <dave.jiang(a)intel.com>
---
accfg/lib/libaccfg.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/accfg/lib/libaccfg.c b/accfg/lib/libaccfg.c
index f9c42dc..b1de896 100644
--- a/accfg/lib/libaccfg.c
+++ b/accfg/lib/libaccfg.c
@@ -153,6 +153,16 @@ static char *accfg_get_param_str(struct accfg_ctx *ctx, int dfd, char *name)
return strdup(buf);
}
+static void free_mdevs(struct accfg_device *device)
+{
+ struct accfg_device_mdev *mdev, *next;
+
+ list_for_each_safe(&device->mdev_list, mdev, next, list) {
+ list_del_from(&device->mdev_list, &mdev->list);
+ free(mdev);
+ }
+}
+
static void free_engine(struct accfg_engine *engine)
{
struct accfg_device *device = engine->device;
@@ -195,6 +205,7 @@ static void free_device(struct accfg_device *device, struct list_head *head)
free_wq(wq);
list_for_each_safe(&device->engines, engine, engine_next, list)
free_engine(engine);
+ free_mdevs(device);
if (head)
list_del_from(head, &device->list);
@@ -473,6 +484,9 @@ exit_add_mdev:
free(d[n1]);
free(d);
+ if (rc)
+ free_mdevs(dev);
+
return rc;
}
--
2.26.2