• Helge Deller's avatar
    parisc: fix kernel BUG at arch/parisc/include/asm/mmzone.h:50 · ae249b5f
    Helge Deller authored
    With CONFIG_DISCONTIGMEM=y and multiple physical memory areas,
    cat /proc/kpageflags triggers this kernel bug:
    
    kernel BUG at arch/parisc/include/asm/mmzone.h:50!
    CPU: 2 PID: 7848 Comm: cat Tainted: G      D W 3.10.0-rc3-64bit #44
     IAOQ[0]: kpageflags_read0x128/0x238
     IAOQ[1]: kpageflags_read0x12c/0x238
     RP(r2): proc_reg_read0xbc/0x130
    Backtrace:
     [<00000000402ca2d4>] proc_reg_read0xbc/0x130
     [<0000000040235bcc>] vfs_read0xc4/0x1d0
     [<0000000040235f0c>] SyS_read0x94/0xf0
     [<0000000040105fc0>] syscall_exit0x0/0x14
    
    kpageflags_read() walks through the whole memory, even if some memory
    areas are physically not available. So, we should better not BUG on an
    unavailable pfn in pfn_to_nid() but just return the expected value -1 or
    0.
    Signed-off-by: default avatarHelge Deller <deller@gmx.de>
    ae249b5f
mmzone.h 1.48 KB