]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
maple: fix wrong return value of maple_bus_init().
authorLu Wei <luwei32@huawei.com>
Thu, 26 Nov 2020 02:43:11 +0000 (10:43 +0800)
committerAndrea Righi <andrea.righi@canonical.com>
Tue, 7 Dec 2021 06:34:04 +0000 (07:34 +0100)
BugLink: https://bugs.launchpad.net/bugs/1952579
[ Upstream commit bde82ee391fa6d3ad054313c4aa7b726d32515ce ]

If KMEM_CACHE or maple_alloc_dev failed, the maple_bus_init() will return 0
rather than error, because the retval is not changed after KMEM_CACHE or
maple_alloc_dev failed.

Fixes: 17be2d2b1c33 ("sh: Add maple bus support for the SEGA Dreamcast.")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Lu Wei <luwei32@huawei.com>
Acked-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Signed-off-by: Rich Felker <dalias@libc.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
drivers/sh/maple/maple.c

index bd0fbcdbdefe9408b018c42ef9a55301d982c049..e24e220e56eea10b2e77010f0fab8d8dd25eb6f2 100644 (file)
@@ -834,8 +834,10 @@ static int __init maple_bus_init(void)
 
        maple_queue_cache = KMEM_CACHE(maple_buffer, SLAB_HWCACHE_ALIGN);
 
-       if (!maple_queue_cache)
+       if (!maple_queue_cache) {
+               retval = -ENOMEM;
                goto cleanup_bothirqs;
+       }
 
        INIT_LIST_HEAD(&maple_waitq);
        INIT_LIST_HEAD(&maple_sentq);
@@ -848,6 +850,7 @@ static int __init maple_bus_init(void)
                if (!mdev[i]) {
                        while (i-- > 0)
                                maple_free_dev(mdev[i]);
+                       retval = -ENOMEM;
                        goto cleanup_cache;
                }
                baseunits[i] = mdev[i];