Re: [PATCH] intel-iommu: Obey coherent_dma_mask for alloc_coherenton passthrough

From: Alex Williamson
Date: Mon Nov 09 2009 - 20:28:48 EST


On Tue, 2009-11-10 at 01:01 +0000, David Woodhouse wrote:
> On Tue, 2009-11-10 at 00:46 +0000, David Woodhouse wrote:
> >
> > if (iommu_no_mapping(hwdev))
> > - return paddr;
> > + return paddr > dma_mask - size ? 0 : paddr;
>
> Hm, that's still wrong. If your mask is 0xffffffff and you map
> 0xfffff000 + 0x1000, that should be allowed, right? How about:
>
> return paddr <= dma_mask - size + 1 ? paddr : 0;

Ok, I was going to suggest that there was probably a -1 missing from my
patch. I'd also be surprised if you could actually get a paddr + size -
1 from a single allocation that would wrap. Would a device even be able
to handle that for DMA?

> And is this strictly necessary as part of the patch we're discussing?

Yeah, we could probably do without it. As for the commit comment, it's
rather scathing, but I can live with it. Thanks,

Alex

--
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/