From: vimal singh <vimal.newwork@gmail.com>
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Stoyan Gaydarov <sgayda2@uiuc.edu>,
linux-kernel@vger.kernel.org, David.Woodhouse@intel.com,
sr@denx.de, kay.sievers@vrfy.org, gregkh@suse.de,
linux-mtd@lists.infradead.org
Subject: Re: [PATCH] [mtd] fixed faulty check
Date: Thu, 30 Jul 2009 20:43:51 +0530 [thread overview]
Message-ID: <ce9ab5790907300813r2c35249csbce608a0f7533562@mail.gmail.com> (raw)
In-Reply-To: <4A71B401.1090208@linutronix.de>
On Thu, Jul 30, 2009 at 8:23 PM, Sebastian Andrzej
Siewior<bigeasy@linutronix.de> wrote:
> Stoyan Gaydarov wrote:
>>>>
>>>> We have to and of_flash_remove() takes care of it.
>>>>
>>>
>>>
>>
>> Does this mean that the original patch is fine or does it still need the
>> kfree? From what i understand when going to err_out it will take care of
>> info using of_flash_remove() so then it is not needed in the if check.
>
> The original patch was fine but it leaked info. of_flash_remove() does the
> cleanup of info but only if it is part of driver's data (after the
> of_flash_remove()). So you have to call dev_set_drvdata(&dev->dev, info)
> earlier, after the kzalloc() to save the data or else there is no clean
> up.
>
Is this patch looks OK??
diff --git a/drivers/mtd/maps/physmap_of.c b/drivers/mtd/maps/physmap_of.c
index 39d357b..d104cfc 100644
--- a/drivers/mtd/maps/physmap_of.c
+++ b/drivers/mtd/maps/physmap_of.c
@@ -204,7 +204,7 @@ static int __devinit of_flash_probe(struct of_device *dev,
dev_err(&dev->dev, "Malformed reg property on %s\n",
dev->node->full_name);
err = -EINVAL;
- goto err_out;
+ goto err_flash_remove;
}
count /= reg_tuple_size;
@@ -212,14 +212,14 @@ static int __devinit of_flash_probe(struct of_device *dev,
info = kzalloc(sizeof(struct of_flash) +
sizeof(struct of_flash_list) * count, GFP_KERNEL);
if (!info)
- goto err_out;
-
- mtd_list = kzalloc(sizeof(struct mtd_info) * count, GFP_KERNEL);
- if (!info)
- goto err_out;
+ goto err_flash_remove;
dev_set_drvdata(&dev->dev, info);
+ mtd_list = kzalloc(sizeof(struct mtd_info) * count, GFP_KERNEL);
+ if (!mtd_list)
+ goto err_flash_remove;
+
for (i = 0; i < count; i++) {
err = -ENXIO;
if (of_address_to_resource(dp, i, &res)) {
@@ -338,6 +338,7 @@ static int __devinit of_flash_probe(struct of_device *dev,
err_out:
kfree(mtd_list);
+eerr_flash_remov:
of_flash_remove(dev);
return err;
next prev parent reply other threads:[~2009-07-30 15:14 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-30 12:49 Stoyan Gaydarov
2009-07-30 13:03 ` Sebastian Andrzej Siewior
2009-07-30 13:39 ` vimal singh
2009-07-30 13:47 ` Sebastian Andrzej Siewior
2009-07-30 14:14 ` vimal singh
[not found] ` <4A71AD5E.4080704@uiuc.edu>
2009-07-30 14:34 ` vimal singh
2009-07-30 14:53 ` Sebastian Andrzej Siewior
2009-07-30 15:13 ` vimal singh [this message]
[not found] ` <4A71B940.80607@uiuc.edu>
2009-07-30 15:24 ` vimal singh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ce9ab5790907300813r2c35249csbce608a0f7533562@mail.gmail.com \
--to=vimal.newwork@gmail.com \
--cc=David.Woodhouse@intel.com \
--cc=bigeasy@linutronix.de \
--cc=gregkh@suse.de \
--cc=kay.sievers@vrfy.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=sgayda2@uiuc.edu \
--cc=sr@denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®