ARM: 2.6.3[45] PCI regression (IXP4xx and PXA?)

Russell King - ARM Linux
2010-08-14T18:46:05Z

On Sat, Aug 14, 2010 at 06:30:37PM +0900, FUJITA Tomonori wrote:
> On Fri, 13 Aug 2010 22:54:13 +0100
> Russell King - ARM Linux <linux@arm.linux.org.uk> wrote:
> > This means that when dmabounce comes to allocate the replacement
> > buffer, it gets a buffer which won't be accessible to the DMA
> > controller
>
> Really? looks like dmabounce does nothing for coherent memory that
> dma_alloc_coherent() allocates.
>
> The following very hacky patch works?

So what happens if you use a driver which uses dma_alloc_coherent()
directly? Should the driver really be passed memory which is
inaccessible to the device because its outside the host bridge PCI
window?

No, this is clearly wrong, so this patch doesn't fix anything. It's
a bodge, nothing more. The real solution is to have _both_ masks
both reduced down according to the host bridge, as we used to do.

So I suggest 6fee48c is reverted so that these platforms don't regress
for -rc1.

As I said when you sent the originally patch, it _looked_ okay, but I
don't have any way to test it. It seems from testing (which
unfortunately only seems to only happen after patches hit mainline)
that it is not okay after all.