Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8154549c authored by Andi Kleen's avatar Andi Kleen Committed by Linus Torvalds
Browse files

x86_64: Fail dma_alloc_coherent on dma less devices

This should fix an oops with PCMCIA PATA devices

	http://bugzilla.kernel.org/show_bug.cgi?id=8424



This is not a full fix for the problem, but probably
still the right thing to do.

[ I'm almost certain it's *not* the right thing to do, but it avoids an
  oops, and I want comments from others on what the right thing would
  actually be..  I suspect we should just remove the use of dma_mask
  entirely in this function, and just use coherent_dma_mask.  - Linus ]

Signed-off-by: default avatarAndi Kleen <ak@suse.de>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 1a2b7330
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -82,6 +82,10 @@ dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
	if (dma_mask == 0)
	if (dma_mask == 0)
		dma_mask = DMA_32BIT_MASK;
		dma_mask = DMA_32BIT_MASK;


	/* Device not DMA able */
	if (dev->dma_mask == NULL)
		return NULL;

	/* Don't invoke OOM killer */
	/* Don't invoke OOM killer */
	gfp |= __GFP_NORETRY;
	gfp |= __GFP_NORETRY;