Skip to content

Commit

Permalink
x86: unify gfp masks
Browse files Browse the repository at this point in the history
Use the same gfp masks for x86_64 and i386.
It involves using HIGHMEM or DMA32 where necessary, for the sake
of code compatibility, (no real effect), and using the NORETRY
mask for i386.

Signed-off-by: Glauber Costa <gcosta@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
  • Loading branch information
Glauber Costa authored and Ingo Molnar committed Apr 19, 2008
1 parent 5fa78ca commit 8f19ca1
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 2 deletions.
6 changes: 4 additions & 2 deletions arch/x86/kernel/pci-dma_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ void *dma_alloc_coherent(struct device *dev, size_t size,
unsigned long dma_mask = 0;

/* ignore region specifiers */
gfp &= ~(__GFP_DMA | __GFP_HIGHMEM);
gfp &= ~(__GFP_DMA | __GFP_HIGHMEM | __GFP_DMA32);

if (dma_alloc_from_coherent_mem(dev, size, dma_handle, &ret))
return ret;
Expand All @@ -91,7 +91,9 @@ void *dma_alloc_coherent(struct device *dev, size_t size,
if (dma_mask == 0)
dma_mask = DMA_32BIT_MASK;

again:
/* Don't invoke OOM killer */
gfp |= __GFP_NORETRY;
again:
page = dma_alloc_pages(dev, gfp, order);
if (page == NULL)
return NULL;
Expand Down
2 changes: 2 additions & 0 deletions arch/x86/kernel/pci-dma_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
unsigned long dma_mask = 0;
u64 bus;

/* ignore region specifiers */
gfp &= ~(__GFP_DMA | __GFP_HIGHMEM | __GFP_DMA32);

if (dma_alloc_from_coherent_mem(dev, size, dma_handle, &memory))
return memory;
Expand Down

0 comments on commit 8f19ca1

Please sign in to comment.