Re: [PATCH 3/3] x86: restore old GART alloc_coherent behavior

From: Alan Cox
Date: Wed Sep 24 2008 - 09:07:29 EST


On Wed, 24 Sep 2008 20:48:37 +0900
FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx> 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@xxxxxxxxxxxxx>

Acked-by: Alan Cox <alan@xxxxxxxxxx>

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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/