Messages in this thread | | | Date | Wed, 24 Sep 2008 14:06:44 +0100 | From | Alan Cox <> | Subject | Re: [PATCH 3/3] x86: restore old GART alloc_coherent behavior |
| |
On Wed, 24 Sep 2008 20:48:37 +0900 FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> wrote:
> 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>
Acked-by: Alan Cox <alan@redhat.com>
This is indeed a specific problem found with things like older AACRAID where control blocks must be below 31bits and the GART is above 0x80000000
Alan
| |