Re: [PATCH] swiotlb: use coherent_dma_mask in alloc_coherent

From: Ingo Molnar
Date: Mon Nov 17 2008 - 03:15:54 EST



* FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx> wrote:

> This patch fixes swiotlb to use dev->coherent_dma_mask in
> alloc_coherent. Currently, swiotlb uses dev->dma_mask in
> alloc_coherent but alloc_coherent is supposed to use
> coherent_dma_mask. It could break drivers that uses smaller
> coherent_dma_mask than dma_mask (though the current code works for
> the majority that use the same mask for coherent_dma_mask and
> dma_mask).
>
> Signed-off-by: FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx>
> ---
> lib/swiotlb.c | 10 +++++++---
> 1 files changed, 7 insertions(+), 3 deletions(-)

Applied it with the changelog below to tip/core/urgent, thanks!

I also flagged it for v2.6.28 inclusion. This bug was caused by the
removal of the GFP_DMA hack in swiotlb_alloc_coherent() in this cycle.
I havent seen it actually reported anywhere - have you perhaps?Or have
you found this via code review?

Do we know roughly the range of devices/systems where there's a real
address range that cannot be DMA-ed to coherently, and an estimation
about how frequently they would be affected by this bug?

Ingo

--------------->