Skip to content
  • David Miller's avatar
    mm: nobootmem: Correct alloc_bootmem semantics. · 4e1c2b28
    David Miller authored
    
    
    The comments above __alloc_bootmem_node() claim that the code will
    first try the allocation using 'goal' and if that fails it will
    try again but with the 'goal' requirement dropped.
    
    Unfortunately, this is not what the code does, so fix it to do so.
    
    This is important for nobootmem conversions to architectures such
    as sparc where MAX_DMA_ADDRESS is infinity.
    
    On such architectures all of the allocations done by generic spots,
    such as the sparse-vmemmap implementation, will pass in:
    
    	__pa(MAX_DMA_ADDRESS)
    
    as the goal, and with the limit given as "-1" this will always fail
    unless we add the appropriate fallback logic here.
    
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Acked-by: default avatarYinghai Lu <yinghai@kernel.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    4e1c2b28