From: Jim Quinlan Date: Tue, 27 Aug 2013 20:57:51 +0000 (-0400) Subject: MIPS: DMA: For BMIPS5000 cores flush region just like non-coherent R10000 X-Git-Tag: v3.12-rc1~21^2~4 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f86f55d3ad21b21b736bdeb29bee0f0937b77138;p=pandora-kernel.git MIPS: DMA: For BMIPS5000 cores flush region just like non-coherent R10000 The BMIPS5000 (Zephyr) processor utilizes instruction speculation. A stale misprediction address in either the JTB or the CRS may trigger a prefetch inside a region that is currently being used by a DMA engine, which is not IO-coherent. This prefetch will fetch a line into the scache, and that line will soon become stale (ie wrong) during/after the DMA. Mayhem ensues. In dma-default.c, the r10000 is handled as a special case in the same way that we want to handle Zephyr. So we generalize the exception cases into a function, and include Zephyr as one of the processors that needs this special care. Signed-off-by: Jim Quinlan Cc: linux-mips@linux-mips.org Cc: cernekee@gmail.com Patchwork: https://patchwork.linux-mips.org/patch/5776/ Signed-off-by: Ralf Baechle --- Reading git-diff-tree failed