linux/arch/xtensa
Max Filippov 6a776f6ae3 xtensa: make __pa work with uncached KSEG addresses
commit 2b83878dd7 upstream.

When __pa is applied to virtual address in uncached KSEG region the
result is incorrect. Fix it by checking if the original address is in
the uncached KSEG and adjusting the result. It looks better than masking
off bits because pfn_valid would correctly work with new __pa results
and it may be made working in noMMU case, once we get definition for
uncached memory view.

This is required for the dma_common_mmap and DMA debug code to work
correctly: they both indirectly use __pa with coherent DMA addresses.
In case of DMA debug the visible effect is false reports that an address
mapped for DMA is accessed by CPU.

Tested-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2017-04-12 12:41:14 +02:00
..
boot xtensa: rearrange CCOUNT calibration 2016-09-20 18:52:59 -07:00
configs xtensa: add default memmap and mmio32native options to defconfigs 2016-09-20 20:43:24 -07:00
include xtensa: make __pa work with uncached KSEG addresses 2017-04-12 12:41:14 +02:00
kernel xtensa: move parse_tag_fdt out of #ifdef CONFIG_BLK_DEV_INITRD 2017-03-15 10:02:47 +08:00
lib xtensa: fixes for configs without loop option 2015-11-02 18:02:47 +03:00
mm Xtensa improvements for 4.9: 2016-10-05 17:44:48 -07:00
oprofile xtensa: move oprofile stack tracing to stacktrace.c 2015-08-17 07:32:49 +03:00
platforms Xtensa improvements for 4.9: 2016-10-05 17:44:48 -07:00
variants xtensa: Added Cadence CSP kernel configuration for Xtensa 2016-09-09 18:39:09 -07:00
Kconfig xtensa: disable MMU initialization option on MMUv2 cores 2016-09-29 12:55:00 -07:00
Kconfig.debug xtensa: disable link optimization 2014-12-15 23:47:24 -08:00
Makefile xtensa: define CONFIG_CPU_{BIG,LITTLE}_ENDIAN 2016-03-11 08:53:31 +00:00