diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c index 17616d79ab90..19c749a5b610 100644 --- a/arch/arm/mm/fault.c +++ b/arch/arm/mm/fault.c @@ -131,7 +131,7 @@ static long get_user_pfn(struct mm_struct *mm, unsigned long addr) long pfn = -1; pgd_t *pgd; - if (!mm) + if (!mm || addr >= VMALLOC_START) mm = &init_mm; pgd = pgd_offset(mm, addr); diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c index d97e502e6d9f..2a976fc4299c 100644 --- a/arch/arm64/mm/fault.c +++ b/arch/arm64/mm/fault.c @@ -174,7 +174,7 @@ static long get_user_pfn(struct mm_struct *mm, unsigned long addr) long pfn = -1; pgd_t *pgd; - if (!mm) + if (!mm || addr >= VMALLOC_START) mm = &init_mm; pgd = pgd_offset(mm, addr);