• M
    x86, pci-dma.c: don't always add __GFP_NORETRY to gfp · b7f09ae5
    Miquel van Smoorenburg 提交于
    Currently arch/x86/kernel/pci-dma.c always adds __GFP_NORETRY
    to the allocation flags, because it wants to be reasonably
    sure not to deadlock when calling alloc_pages().
    
    But really that should only be done in two cases:
    - when allocating memory in the lower 16 MB DMA zone.
      If there's no free memory there, waiting or OOM killing is of no use
    - when optimistically trying an allocation in the DMA32 zone
      when dma_mask < DMA_32BIT_MASK hoping that the allocation
      happens to fall within the limits of the dma_mask
    
    Also blindly adding __GFP_NORETRY to the the gfp variable might
    not be a good idea since we then also use it when calling
    dma_ops->alloc_coherent(). Clearing it might also not be a
    good idea, dma_alloc_coherent()'s caller might have set it
    on purpose. The gfp variable should not be clobbered.
    
    [ mingo@elte.hu: converted to delta patch ontop of previous version. ]
    Signed-off-by: NMiquel van Smoorenburg <miquels@cistron.nl>
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    b7f09ae5
pci-dma.c 12.2 KB