Messages in this thread | | | Subject | Re: [PATCH] intel-iommu: Obey coherent_dma_mask for alloc_coherent on passthrough | From | Alex Williamson <> | Date | Mon, 09 Nov 2009 18:28:34 -0700 |
| |
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
| |