Skip to content
This repository was archived by the owner on Nov 8, 2023. It is now read-only.

Commit b5efb63

Browse files
hcahcatorvalds
authored andcommitted
s390/mm: Add NULL pointer check to crst_table_free() base_crst_free()
crst_table_free() used to work with NULL pointers before the conversion to ptdescs. Since crst_table_free() can be called with a NULL pointer (error handling in crst_table_upgrade() add an explicit check. Also add the same check to base_crst_free() for consistency reasons. In real life this should not happen, since order two GFP_KERNEL allocations will not fail, unless FAIL_PAGE_ALLOC is enabled and used. Reported-by: Yunseong Kim <yskelg@gmail.com> Fixes: 6326c26 ("s390: convert various pgalloc functions to use ptdescs") Signed-off-by: Heiko Carstens <hca@linux.ibm.com> Acked-by: Alexander Gordeev <agordeev@linux.ibm.com> Cc: stable@kernel.org Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 4376e96 commit b5efb63

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

arch/s390/mm/pgalloc.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ unsigned long *crst_table_alloc(struct mm_struct *mm)
5555

5656
void crst_table_free(struct mm_struct *mm, unsigned long *table)
5757
{
58+
if (!table)
59+
return;
5860
pagetable_free(virt_to_ptdesc(table));
5961
}
6062

@@ -262,6 +264,8 @@ static unsigned long *base_crst_alloc(unsigned long val)
262264

263265
static void base_crst_free(unsigned long *table)
264266
{
267+
if (!table)
268+
return;
265269
pagetable_free(virt_to_ptdesc(table));
266270
}
267271

0 commit comments

Comments
 (0)