s390/vmem: fix empty page tables cleanup under KASAN
Commit b9ff81003cf1 ("s390/vmem: cleanup empty page tables") introduced empty page tables cleanup in vmem code, but when the kernel is built with KASAN enabled the code has no effect due to wrong KASAN shadow memory intersection condition, which effectively ignores any memory range below KASAN shadow. Fix intersection condition to make code work as anticipated. Fixes: b9ff81003cf1 ("s390/vmem: cleanup empty page tables") Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
This commit is contained in:
parent
dfca37d36b
commit
108303b0a2
@ -298,7 +298,7 @@ static void try_free_pmd_table(pud_t *pud, unsigned long start)
|
||||
if (end > VMALLOC_START)
|
||||
return;
|
||||
#ifdef CONFIG_KASAN
|
||||
if (start < KASAN_SHADOW_END && KASAN_SHADOW_START > end)
|
||||
if (start < KASAN_SHADOW_END && end > KASAN_SHADOW_START)
|
||||
return;
|
||||
#endif
|
||||
pmd = pmd_offset(pud, start);
|
||||
@ -373,7 +373,7 @@ static void try_free_pud_table(p4d_t *p4d, unsigned long start)
|
||||
if (end > VMALLOC_START)
|
||||
return;
|
||||
#ifdef CONFIG_KASAN
|
||||
if (start < KASAN_SHADOW_END && KASAN_SHADOW_START > end)
|
||||
if (start < KASAN_SHADOW_END && end > KASAN_SHADOW_START)
|
||||
return;
|
||||
#endif
|
||||
|
||||
@ -427,7 +427,7 @@ static void try_free_p4d_table(pgd_t *pgd, unsigned long start)
|
||||
if (end > VMALLOC_START)
|
||||
return;
|
||||
#ifdef CONFIG_KASAN
|
||||
if (start < KASAN_SHADOW_END && KASAN_SHADOW_START > end)
|
||||
if (start < KASAN_SHADOW_END && end > KASAN_SHADOW_START)
|
||||
return;
|
||||
#endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user