]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
memory tier: release the new_memtier in find_create_memory_tier()
authorTong Tiangen <tongtiangen@huawei.com>
Sun, 29 Jan 2023 04:06:51 +0000 (04:06 +0000)
committerAndrea Righi <andrea.righi@canonical.com>
Tue, 14 Mar 2023 15:47:38 +0000 (16:47 +0100)
BugLink: https://bugs.launchpad.net/bugs/2011425
commit 93419139fa14124c1c507d804f2b28866ebee28d upstream.

In find_create_memory_tier(), if failed to register device, then we should
release new_memtier from the tier list and put device instead of memtier.

Link: https://lkml.kernel.org/r/20230129040651.1329208-1-tongtiangen@huawei.com
Fixes: 9832fb87834e ("mm/demotion: expose memory tier details via sysfs")
Signed-off-by: Tong Tiangen <tongtiangen@huawei.com>
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Cc: Hanjun Guo <guohanjun@huawei.com>
Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: Guohanjun <guohanjun@huawei.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
mm/memory-tiers.c

index c734658c6242443d5c2a4609531028c939846d74..e593e56e530b72bb6fd0bc0a00e456e0aedc93ff 100644 (file)
@@ -211,8 +211,8 @@ static struct memory_tier *find_create_memory_tier(struct memory_dev_type *memty
 
        ret = device_register(&new_memtier->dev);
        if (ret) {
-               list_del(&memtier->list);
-               put_device(&memtier->dev);
+               list_del(&new_memtier->list);
+               put_device(&new_memtier->dev);
                return ERR_PTR(ret);
        }
        memtier = new_memtier;