>>
http://article.gmane.org/gmane.linux.ports.sh.devel/8560
>
> This one we know about, and as I've already said, it ends up with three
> aliasing mappings each with different attributes thusly:
>
> cpu = dma_alloc_coherent(dev, size, &dma, GFP_KERNEL);
> dma_declare_coherent_memory(dev, dma, dma, size, DMA_MEMORY_MAP);
> ==> ioremap(dma, size);
> ...
> dma_alloc_coherent(dev, ...);
>
> This wasn't spotted in the review of sh-mobile code because it's not part
> of the sh-mobile code base, but some of the generic sh architecture code.
> sh-mobile went into the kernel on March 12th, so it does pre-date the
> change to ioremap, and is therefore technically a regression.
>
> However, as can be seen from the link above, it's been known about since
> 8th August - two months ago. The problem has been discussed, and we had
> a good solution which would work. But then an oar got thrown in which
> basically resulted in that solution being rejected - on the basis that
> "it's an established API and it must work".