• Y
    mm: use alloc_bootmem_node_nopanic() on really needed path · 8f389a99
    Yinghai Lu 提交于
    Stefan found nobootmem does not work on his system that has only 8M of
    RAM.  This causes an early panic:
    
      BIOS-provided physical RAM map:
       BIOS-88: 0000000000000000 - 000000000009f000 (usable)
       BIOS-88: 0000000000100000 - 0000000000840000 (usable)
      bootconsole [earlyser0] enabled
      Notice: NX (Execute Disable) protection missing in CPU or disabled in BIOS!
      DMI not present or invalid.
      last_pfn = 0x840 max_arch_pfn = 0x100000
      init_memory_mapping: 0000000000000000-0000000000840000
      8MB LOWMEM available.
        mapped low ram: 0 - 00840000
        low ram: 0 - 00840000
      Zone PFN ranges:
        DMA      0x00000001 -> 0x00001000
        Normal   empty
      Movable zone start PFN for each node
      early_node_map[2] active PFN ranges
          0: 0x00000001 -> 0x0000009f
          0: 0x00000100 -> 0x00000840
      BUG: Int 6: CR2 (null)
           EDI c034663c  ESI (null)  EBP c0329f38  ESP c0329ef4
           EBX c0346380  EDX 00000006  ECX ffffffff  EAX fffffff4
           err (null)  EIP c0353191   CS c0320060  flg 00010082
      Stack: (null) c030c533 000007cd (null) c030c533 00000001 (null) (null)
             00000003 0000083f 00000018 00000002 00000002 c0329f6c c03534d6 (null)
             (null) 00000100 00000840 (null) c0329f64 00000001 00001000 (null)
      Pid: 0, comm: swapper Not tainted 2.6.36 #5
      Call Trace:
       [<c02e3707>] ? 0xc02e3707
       [<c035e6e5>] 0xc035e6e5
       [<c0353191>] ? 0xc0353191
       [<c03534d6>] 0xc03534d6
       [<c034f1cd>] 0xc034f1cd
       [<c034a824>] 0xc034a824
       [<c03513cb>] ? 0xc03513cb
       [<c0349432>] 0xc0349432
       [<c0349066>] 0xc0349066
    
    It turns out that we should ignore the low limit of 16M.
    
    Use alloc_bootmem_node_nopanic() in this case.
    
    [akpm@linux-foundation.org: less mess]
    Signed-off-by: NYinghai LU <yinghai@kernel.org>
    Reported-by: NStefan Hellermann <stefan@the2masters.de>
    Tested-by: NStefan Hellermann <stefan@the2masters.de>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: "H. Peter Anvin" <hpa@linux.intel.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: <stable@kernel.org>		[2.6.34+]
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    8f389a99
bootmem.h 5.2 KB