the memory allocated and ioremap address need free after
device_register return error.
v2: remove redundant "return"
Signed-off-by: Ding Xiang <[email protected]>
---
arch/mips/txx9/generic/setup.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/arch/mips/txx9/generic/setup.c b/arch/mips/txx9/generic/setup.c
index f6d9182..e116a55 100644
--- a/arch/mips/txx9/generic/setup.c
+++ b/arch/mips/txx9/generic/setup.c
@@ -961,11 +961,12 @@ void __init txx9_sramc_init(struct resource *r)
err = sysfs_create_bin_file(&dev->dev.kobj, &dev->bindata_attr);
if (err) {
device_unregister(&dev->dev);
- iounmap(dev->base);
- kfree(dev);
+ goto exit_free;
}
return;
exit_put:
put_device(&dev->dev);
- return;
+exit_free:
+ iounmap(dev->base);
+ kfree(dev);
}
--
1.9.1
On Wed, 5 Sep 2018 19:22:19 +0800, Ding Xiang <[email protected]> wrote:
> the memory allocated and ioremap address need free after
> device_register return error.
...
> exit_put:
> put_device(&dev->dev);
> - return;
> +exit_free:
> + iounmap(dev->base);
> + kfree(dev);
This change will break exit_put error path.
I think kfree will be called from txx9_device_release by put_device.
Please refer James's comment on previous trial:
<https://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20180305221833.GJ4197%40saruman>
---
Atsushi Nemoto
On 9/5/2018 11:37 PM, Atsushi Nemoto wrote:
> On Wed, 5 Sep 2018 19:22:19 +0800, Ding Xiang <[email protected]> wrote:
>> the memory allocated and ioremap address need free after
>> device_register return error.
> ...
>> exit_put:
>> put_device(&dev->dev);
>> - return;
>> +exit_free:
>> + iounmap(dev->base);
>> + kfree(dev);
> This change will break exit_put error path.
> I think kfree will be called from txx9_device_release by put_device.
>
> Please refer James's comment on previous trial:
> <https://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20180305221833.GJ4197%40saruman>
yes, put_device will call txx9_device_release and free txx9_sramc_dev,
and kfree inĀ sysfs_create_bin_file() error handle
is also unneeded, I will send a new patch soon