Hi YunQiang, Could you try the following kernel patch & let me know if it works for you?
My theory is that this is fallout from commit 517e1fbeb65f ("mm/usercopy: Drop extra is_vmalloc_or_module() check") which went into Linux v4.12. I guess this shows our test systems don't have hardened usercopy enabled - I'll go change that! Thanks, Paul --- diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c index 2f616ebeb7e0..01b2eadd28bd 100644 --- a/arch/mips/mm/mmap.c +++ b/arch/mips/mm/mmap.c @@ -203,6 +203,11 @@ unsigned long arch_randomize_brk(struct mm_struct *mm) int __virt_addr_valid(const volatile void *kaddr) { + unsigned long vaddr = (unsigned long)vaddr; + + if ((vaddr < PAGE_OFFSET) || (vaddr >= MAP_BASE)) + return false; + return pfn_valid(PFN_DOWN(virt_to_phys(kaddr))); } EXPORT_SYMBOL_GPL(__virt_addr_valid);