x86: restore old GART alloc_coherent behavior
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Wed, 24 Sep 2008 11:48:37 +0000 (20:48 +0900)
committerIngo Molnar <mingo@elte.hu>
Thu, 25 Sep 2008 09:02:26 +0000 (11:02 +0200)
commit1d990882153f36723f9e8717c4401689e64c7a36
treee0e09333cf42756d90bf6e8a0e1ae588a852babe
parentecef533ea68b2fb3baaf459beb2f802a240bdb16
x86: restore old GART alloc_coherent behavior

Currently, GART alloc_coherent tries to allocate pages with GFP_DMA32
for a device having dma_masks > 24bit < 32bits. If GART gets an
address that a device can't access to, GART try to map the address to
a virtual I/O address that the device can access to.

But Andi pointed out, "The GART is somewhere in the 4GB range so you
cannot use it to map anything < 4GB. Also GART is pretty small."

http://lkml.org/lkml/2008/9/12/43

That is, it's possible that GART doesn't have virtual I/O address
space that a device can access to. The above behavior doesn't work for
a device having dma_masks > 24bit < 32bits.

This patch restores old GART alloc_coherent behavior (before the
alloc_coherent rewrite).

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/pci-gart_64.c