At Fri, 27 Nov 2009 08:46:35 +0000, Ralf Baechle wrote:
On Thu, Nov 26, 2009 at 04:13:06PM +0100, Takashi Iwai wrote:
The non-coherent MIPS arch doesn't give the correct address by a simple virt_to_page() for pages allocated via dma_alloc_coherent().
Original patch by Wu Zhangjin wuzj@lemote.com. A proper check of the buffer allocation type was added to avoid the wrong conversion.
The origins of this patch go back far further. The oldest patch I could find which is a superset of this was written by Atsushi Nemoto and various incarnations of it have been sumitted to and reject by me a number of times through the years.
Note that this doesn't fix perfectly: the pages should be marked with proper pgprot value. This will be done in a future implementation like the conversion to dma_mmap_coherent().
Signed-off-by: Takashi Iwai tiwai@suse.de
So while this is ugly I don't think this patch will actually make the the situation worse for any MIPS platform. So with both eyes closed:
Acked-by: Ralf Baechle ralf@linux-mips.org
I added your ack with the comment about the origins to the GIT commit now.
Thanks for closing your eyes ;) Hopefully this hack can be removed again shortly...
Takashi