aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoropeneuler-ci-bot <george@openeuler.sh>2024-04-24 07:20:42 +0000
committerGitee <noreply@gitee.com>2024-04-24 07:20:42 +0000
commit482093a21fc2138432e3ddff393b5c99b2fb8ca0 (patch)
treef36bffe84cdafb2b43aa419b681d25da210e58a0
parent5868257a4ccef380f8590e2f9f8ea439a2c33486 (diff)
parent2e1f14848cfb3f63894f64d4b0f11c388c578dd1 (diff)
downloadopenEuler-kernel-482093a21fc2138432e3ddff393b5c99b2fb8ca0.tar.gz
!6536 [sync] PR-5222: powerpc/mm: Fix null-pointer dereference in pgtable_cache_add
Merge Pull Request from: @openeuler-sync-bot Origin pull request: https://gitee.com/openeuler/kernel/pulls/5222 PR sync from: Peng Zhang <zhangpeng362@huawei.com> https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/YFPZEZXT3Q2NAP566YHFU6RKNBGTDEF4/ https://gitee.com/src-openeuler/kernel/issues/I96GP1 Link:https://gitee.com/openeuler/kernel/pulls/6536 Reviewed-by: Kefeng Wang <wangkefeng.wang@huawei.com> Signed-off-by: Jialin Zhang <zhangjialin11@huawei.com>
-rw-r--r--arch/powerpc/mm/init-common.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/powerpc/mm/init-common.c b/arch/powerpc/mm/init-common.c
index 8e0d792ac2967c..52a20c97e46eda 100644
--- a/arch/powerpc/mm/init-common.c
+++ b/arch/powerpc/mm/init-common.c
@@ -111,7 +111,7 @@ void pgtable_cache_add(unsigned int shift)
* as to leave enough 0 bits in the address to contain it. */
unsigned long minalign = max(MAX_PGTABLE_INDEX_SIZE + 1,
HUGEPD_SHIFT_MASK + 1);
- struct kmem_cache *new;
+ struct kmem_cache *new = NULL;
/* It would be nice if this was a BUILD_BUG_ON(), but at the
* moment, gcc doesn't seem to recognize is_power_of_2 as a
@@ -124,7 +124,8 @@ void pgtable_cache_add(unsigned int shift)
align = max_t(unsigned long, align, minalign);
name = kasprintf(GFP_KERNEL, "pgtable-2^%d", shift);
- new = kmem_cache_create(name, table_size, align, 0, ctor(shift));
+ if (name)
+ new = kmem_cache_create(name, table_size, align, 0, ctor(shift));
if (!new)
panic("Could not allocate pgtable cache for order %d", shift);