Message ID | 20230129040651.1329208-1-tongtiangen@huawei.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [-next] memory tier: release the new_memtier in find_create_memory_tier() | expand |
Tong Tiangen <tongtiangen@huawei.com> writes: > 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. > > Fixes: 9832fb87834e ("mm/demotion: expose memory tier details via sysfs") > Signed-off-by: Tong Tiangen <tongtiangen@huawei.com> > --- > mm/memory-tiers.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/mm/memory-tiers.c b/mm/memory-tiers.c > index c734658c6242..e593e56e530b 100644 > --- a/mm/memory-tiers.c > +++ b/mm/memory-tiers.c > @@ -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; Good catch! Thanks! I think that this should be in stable since v6.1. Best Regards, Huang, Ying
diff --git a/mm/memory-tiers.c b/mm/memory-tiers.c index c734658c6242..e593e56e530b 100644 --- a/mm/memory-tiers.c +++ b/mm/memory-tiers.c @@ -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;
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. Fixes: 9832fb87834e ("mm/demotion: expose memory tier details via sysfs") Signed-off-by: Tong Tiangen <tongtiangen@huawei.com> --- mm/memory-tiers.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)