lkml.org 
[lkml]   [2014]   [Dec]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/6] UBI: Fastmap: Fix memory leaks while closing the WL sub-system
    Am 07.12.2014 um 12:32 schrieb Tanya Brokhman:
    > On 12/7/2014 11:54 AM, Richard Weinberger wrote:
    >> Am 07.12.2014 um 09:13 schrieb Tanya Brokhman:
    >>> On 11/30/2014 1:35 PM, Richard Weinberger wrote:
    >>>> Add a ubi_fastmap_close() to free all resources used by fastmap
    >>>> at WL shutdown.
    >>>>
    >>>> Signed-off-by: Richard Weinberger <richard@nod.at>
    >>>> ---
    >>>> drivers/mtd/ubi/wl.c | 21 ++++++++++++++++++---
    >>>> 1 file changed, 18 insertions(+), 3 deletions(-)
    >>>>
    >>>> diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c
    >>>> index c2822f7..47b215f 100644
    >>>> --- a/drivers/mtd/ubi/wl.c
    >>>> +++ b/drivers/mtd/ubi/wl.c
    >>>> @@ -2064,6 +2064,23 @@ static void protection_queue_destroy(struct ubi_device *ubi)
    >>>> }
    >>>> }
    >>>>
    >>>> +static void ubi_fastmap_close(struct ubi_device *ubi)
    >>>> +{
    >>>> +#ifdef CONFIG_MTD_UBI_FASTMAP
    >>>> + int i;
    >>>> +
    >>>> + flush_work(&ubi->fm_work);
    >>>> + return_unused_pool_pebs(ubi, &ubi->fm_pool);
    >>>> + return_unused_pool_pebs(ubi, &ubi->fm_wl_pool);
    >>>> +
    >>>> + if (ubi->fm) {
    >>>> + for (i = 0; i < ubi->fm->used_blocks; i++)
    >>>> + kfree(ubi->fm->e[i]);
    >>>> + }
    >>>> + kfree(ubi->fm);
    >>>
    >>> kfree(ubi->fm_buf)?
    >>
    >> No this is not a typo, I kfree() here ubi->fm by design.
    >> What am I missing? :)
    >
    > I think you missed freeing ubi->fm_buf, before (not instead) you free ubi->fm :)

    No. fm_buf is vfree()d upon detach time.

    Thanks,
    //richard


    \
     
     \ /
      Last update: 2014-12-07 12:41    [W:2.351 / U:1.652 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site