• Scott Wood's avatar
    powerpc/fsl-booke64: Set vmemmap_psize to 4K · e57eeae4
    Scott Wood authored
    The only way Freescale booke chips support mappings larger than 4K
    is via TLB1.  The only way we support (direct) TLB1 entries is via
    hugetlb, which is not what map_kernel_page() does when given a large
    page size.
    
    Without this, a kernel with CONFIG_SPARSEMEM_VMEMMAP enabled crashes on
    boot with messages such as:
    
    PID hash table entries: 4096 (order: 3, 32768 bytes)
    Sorting __ex_table...
    BUG: Bad page state in process swapper  pfn:00a2f
    page:8000040000023a48 count:0 mapcount:0 mapping:0000040000ffce48 index:0x40000ffbe50
    page flags: 0x40000ffda40(active|arch_1|private|private_2|head|tail|swapcache|mappedtodisk|reclaim|swapbacked|unevictable|mlocked)
    page dumped because: PAGE_FLAGS_CHECK_AT_FREE flag(s) set
    bad because of flags:
    page flags: 0x311840(active|private|private_2|swapcache|unevictable|mlocked)
    Modules linked in:
    CPU: 0 PID: 0 Comm: swapper Not tainted 3.15.0-rc1-00003-g7fa250c #299
    Call Trace:
    [c00000000098ba20] [c000000000008b3c] .show_stack+0x7c/0x1cc (unreliable)
    [c00000000098baf0] [c00000000060aa50] .dump_stack+0x88/0xb4
    [c00000000098bb70] [c0000000000c0468] .bad_page+0x144/0x1a0
    [c00000000098bc10] [c0000000000c0628] .free_pages_prepare+0x164/0x17c
    [c00000000098bcc0] [c0000000000c24cc] .free_hot_cold_page+0x48/0x214
    [c00000000098bd60] [c00000000086c318] .free_all_bootmem+0x1fc/0x354
    [c00000000098be70] [c00000000085da84] .mem_init+0xac/0xdc
    [c00000000098bef0] [c0000000008547b0] .start_kernel+0x21c/0x4d4
    [c00000000098bf90] [c000000000000448] .start_here_common+0x20/0x58
    Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
    e57eeae4
tlb_nohash.c 18.2 KB