On 04/18/2018 12:59 PM, Andrew Morton wrote: >> [ 12.348499] ------------[ cut here ]------------ >> [ 12.349193] attempted to set unsupported pgprot: 8000000000000025 bits: 8000000000000000 supported: 7fffffffffffffff >> [ 12.350792] WARNING: CPU: 0 PID: 1 at arch/x86/include/asm/pgtable.h:540 handle_mm_fault+0xfc1/0xfe0: >> check_pgprot at arch/x86/include/asm/pgtable.h:535 >> (inlined by) pfn_pte at arch/x86/include/asm/pgtable.h:549 >> (inlined by) do_anonymous_page at mm/memory.c:3169 >> (inlined by) handle_pte_fault at mm/memory.c:3961 >> (inlined by) __handle_mm_fault at mm/memory.c:4087 >> (inlined by) handle_mm_fault at mm/memory.c:4124 >> [ 12.352294] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.17.0-rc1 #172 >> [ 12.353357] EIP: handle_mm_fault+0xfc1/0xfe0: >> check_pgprot at arch/x86/include/asm/pgtable.h:535 >> (inlined by) pfn_pte at arch/x86/include/asm/pgtable.h:549 >> (inlined by) do_anonymous_page at mm/memory.c:3169 >> (inlined by) handle_pte_fault at mm/memory.c:3961 >> (inlined by) __handle_mm_fault at mm/memory.c:4087 >> (inlined by) handle_mm_fault at mm/memory.c:4124 > Dave, fb43d6cb91ef57 ("x86/mm: Do not auto-massage page protections") > looks like a culprit? This looks like NX somehow getting set on a system where it is unsupported. Any idea what kind of VMA it is? We probably should have kept NX from getting set in vm_page_prot to begin with. > entry = mk_pte(page, vma->vm_page_prot); > if (vma->vm_flags & VM_WRITE) > entry = pte_mkwrite(pte_mkdirty(entry)); >