From 6a1dd1a74febc89ba367bd65bdc5bb02394de5cf Mon Sep 17 00:00:00 2001 From: Alexander Aksenov Date: Mon, 2 Jun 2014 17:37:33 +0400 Subject: [PATCH] [FIX] Us_manager: images memory deallocation Change-Id: I2a911a6926f6b2595b26b367754817ba66396dd3 Signed-off-by: Alexander Aksenov --- us_manager/img/img_file.c | 12 +++++++++++- us_manager/img/img_proc.c | 11 ++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/us_manager/img/img_file.c b/us_manager/img/img_file.c index 8802512..db5c6de 100644 --- a/us_manager/img/img_file.c +++ b/us_manager/img/img_file.c @@ -28,6 +28,9 @@ #include #include + +static void img_del_ip_by_list(struct img_ip *ip); + struct img_file *create_img_file(struct dentry *dentry) { struct img_file *file; @@ -42,7 +45,14 @@ struct img_file *create_img_file(struct dentry *dentry) void free_img_file(struct img_file *file) { - /* FIXME: */ + struct img_ip *ip, *tmp; + + list_for_each_entry_safe(ip, tmp, &file->ip_list, list) { + img_del_ip_by_list(ip); + free_img_ip(ip); + } + + kfree(file); } static void img_add_ip_by_list(struct img_file *file, struct img_ip *ip) diff --git a/us_manager/img/img_proc.c b/us_manager/img/img_proc.c index 893a848..3483832 100644 --- a/us_manager/img/img_proc.c +++ b/us_manager/img/img_proc.c @@ -27,6 +27,8 @@ #include "img_file.h" #include +static void img_del_file_by_list(struct img_file *file); + struct img_proc *create_img_proc(void) { struct img_proc *proc; @@ -39,7 +41,14 @@ struct img_proc *create_img_proc(void) void free_img_proc(struct img_proc *ip) { - /* FIXME: */ + struct img_file *file, *tmp; + + list_for_each_entry_safe(file, tmp, &ip->file_list, list) { + img_del_file_by_list(file); + free_img_file(file); + } + + kfree(ip); } static void img_add_file_by_list(struct img_proc *proc, struct img_file *file) -- 2.7.4