OSDN Git Service

mips: txx9: fix iounmap related issue
authorDing Xiang <dingxiang@cmss.chinamobile.com>
Thu, 6 Sep 2018 04:19:19 +0000 (12:19 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 25 Nov 2019 14:53:49 +0000 (15:53 +0100)
[ 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

index 9d9962a..7dc97e9 100644 (file)
@@ -961,12 +961,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;
 }