| From 1a82d6f0e2ccb3a8e27226db619bb3191417c554 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 6 Sep 2018 12:19:19 +0800 |
| Subject: mips: txx9: fix iounmap related issue |
| |
| From: Ding Xiang <dingxiang@cmss.chinamobile.com> |
| |
| [ Upstream commit c6e1241a82e6e74d1ae5cc34581dab2ffd6022d0 ] |
| |
| if device_register return error, iounmap should be called, also iounmap |
| need to call before put_device. |
| |
| Signed-off-by: Ding Xiang <dingxiang@cmss.chinamobile.com> |
| Reviewed-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> |
| Signed-off-by: Paul Burton <paul.burton@mips.com> |
| Patchwork: https://patchwork.linux-mips.org/patch/20476/ |
| Cc: ralf@linux-mips.org |
| Cc: jhogan@kernel.org |
| Cc: linux-mips@linux-mips.org |
| Cc: linux-kernel@vger.kernel.org |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/mips/txx9/generic/setup.c | 5 ++--- |
| 1 file changed, 2 insertions(+), 3 deletions(-) |
| |
| diff --git a/arch/mips/txx9/generic/setup.c b/arch/mips/txx9/generic/setup.c |
| index f6d9182ef82a9..70a1ab66d252c 100644 |
| --- a/arch/mips/txx9/generic/setup.c |
| +++ b/arch/mips/txx9/generic/setup.c |
| @@ -960,12 +960,11 @@ void __init txx9_sramc_init(struct resource *r) |
| goto exit_put; |
| err = sysfs_create_bin_file(&dev->dev.kobj, &dev->bindata_attr); |
| if (err) { |
| - device_unregister(&dev->dev); |
| iounmap(dev->base); |
| - kfree(dev); |
| + device_unregister(&dev->dev); |
| } |
| return; |
| exit_put: |
| + iounmap(dev->base); |
| put_device(&dev->dev); |
| - return; |
| } |
| -- |
| 2.20.1 |
| |