• Nishanth Aravamudan's avatar
    bootmem/sparsemem: remove limit constraint in alloc_bootmem_section · f5bf18fa
    Nishanth Aravamudan authored
    While testing AMS (Active Memory Sharing) / CMO (Cooperative Memory
    Overcommit) on powerpc, we tripped the following:
    
      kernel BUG at mm/bootmem.c:483!
      cpu 0x0: Vector: 700 (Program Check) at [c000000000c03940]
          pc: c000000000a62bd8: .alloc_bootmem_core+0x90/0x39c
          lr: c000000000a64bcc: .sparse_early_usemaps_alloc_node+0x84/0x29c
          sp: c000000000c03bc0
         msr: 8000000000021032
        current = 0xc000000000b0cce0
        paca    = 0xc000000001d80000
          pid   = 0, comm = swapper
      kernel BUG at mm/bootmem.c:483!
      enter ? for help
      [c000000000c03c80] c000000000a64bcc
      .sparse_early_usemaps_alloc_node+0x84/0x29c
      [c000000000c03d50] c000000000a64f10 .sparse_init+0x12c/0x28c
      [c000000000c03e20] c000000000a474f4 .setup_arch+0x20c/0x294
      [c000000000c03ee0] c000000000a4079c .start_kernel+0xb4/0x460
      [c000000000c03f90] c000000000009670 .start_here_common+0x1c/0x2c
    
    This is
    
            BUG_ON(limit && goal + size > limit);
    
    and af...
    f5bf18fa
sparse.c 20.3 KB