linux_dsm_epyc7002/arch/powerpc
Oliver O'Halloran 3343962068 powerpc/eeh: Handle hugepages in ioremap space
In commit 4a7b06c157a2 ("powerpc/eeh: Handle hugepages in ioremap
space") support for using hugepages in the vmalloc and ioremap areas was
enabled for radix. Unfortunately this broke EEH MMIO error checking.

Detection works by inserting a hook which checks the results of the
ioreadXX() set of functions.  When a read returns a 0xFFs response we
need to check for an error which we do by mapping the (virtual) MMIO
address back to a physical address, then mapping physical address to a
PCI device via an interval tree.

When translating virt -> phys we currently assume the ioremap space is
only populated by PAGE_SIZE mappings. If a hugepage mapping is found we
emit a WARN_ON(), but otherwise handles the check as though a normal
page was found. In pathalogical cases such as copying a buffer
containing a lot of 0xFFs from BAR memory this can result in the system
not booting because it's too busy printing WARN_ON()s.

There's no real reason to assume huge pages can't be present and we're
prefectly capable of handling them, so do that.

Fixes: 4a7b06c157a2 ("powerpc/eeh: Handle hugepages in ioremap space")
Reported-by: Sachin Sant <sachinp@linux.vnet.ibm.com>
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Tested-by: Sachin Sant <sachinp@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20190710150517.27114-1-oohall@gmail.com
2019-07-12 01:02:09 +10:00
..
boot powerpc/boot: pass CONFIG options in a simpler and more robust way 2019-07-10 13:20:44 +10:00
configs powerpc: Enable CONFIG_IPV6 in ppc64_defconfig 2019-07-04 21:04:06 +10:00
crypto treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
include powerpc: Move PPC_HA() PPC_HI() and PPC_LO() to ppc-opcode.h 2019-07-06 00:29:50 +10:00
kernel powerpc/eeh: Handle hugepages in ioremap space 2019-07-12 01:02:09 +10:00
kvm powerpc/book3s: Use config independent helpers for page table walk 2019-07-05 00:43:50 +10:00
lib powerpc/64: flush_inval_dcache_range() becomes flush_dcache_range() 2019-07-05 01:35:10 +10:00
math-emu powerpc: math-emu: remove unneeded header search paths 2019-01-14 20:39:27 +11:00
mm powerpc/64: flush_inval_dcache_range() becomes flush_dcache_range() 2019-07-05 01:35:10 +10:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf 2019-03-16 12:20:08 -07:00
oprofile Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
perf powerpc/perf/24x7: use rb_entry 2019-07-04 17:09:37 +10:00
platforms powerpc/8xx: Add microcode patch to move SMC parameter RAM. 2019-07-05 02:06:38 +10:00
purgatory powerpc: disable KASAN instrumentation on early/critical files. 2019-05-03 01:20:26 +10:00
sysdev powerpc/8xx: move CPM1 related files from sysdev/ to platforms/8xx 2019-07-05 02:06:37 +10:00
tools powerpc/tools/checkpatch: Ignore DT_SPLIT_BINDING_PATCH 2018-12-04 19:45:01 +11:00
xmon powerpc/book3s: Use config independent helpers for page table walk 2019-07-05 00:43:50 +10:00
Kbuild powerpc: Add -Werror at arch/powerpc level 2018-10-19 00:56:17 +11:00
Kconfig powerpc/boot: Add lzo support for uImage 2019-07-05 02:06:38 +10:00
Kconfig.debug powerpc/xmon: add read-only mode 2019-05-03 02:54:57 +10:00
Makefile treewide: prefix header search paths with $(srctree)/ 2019-05-18 11:49:57 +09:00
Makefile.postlink