From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============8613607285761167150==" MIME-Version: 1.0 From: ramesh.thomas at intel.com Subject: [Accel-config] [PATCH v2 4/5] accel-config: Add freeing of mdev list Date: Tue, 08 Dec 2020 16:16:17 -0500 Message-ID: <20201208211617.351761-5-ramesh.thomas@intel.com> In-Reply-To: 20201208211617.351761-1-ramesh.thomas@intel.com To: accel-config@lists.01.org List-ID: --===============8613607285761167150== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Ramesh Thomas 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 Reviewed-by: Dave Jiang --- 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 =3D engine->device; @@ -195,6 +205,7 @@ static void free_device(struct accfg_device *device, st= ruct 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 --===============8613607285761167150==--