Paul Burton <paul.bur...@mips.com> 于2019年5月26日周日 上午7:22写道: > > 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);
It works well at least on my Loongson 3 laptop. I tried to reinstall all packages with gz'ed mannual pages. No of this problem happens again. -- YunQiang Su