linux/arch/s390
Alexander Gordeev e5a0031c79 fs/proc/kcore.c: allow translation of physical memory addresses
commit 3d5854d75e upstream.

When /proc/kcore is read an attempt to read the first two pages results in
HW-specific page swap on s390 and another (so called prefix) pages are
accessed instead.  That leads to a wrong read.

Allow architecture-specific translation of memory addresses using
kc_xlate_dev_mem_ptr() and kc_unxlate_dev_mem_ptr() callbacks similarily
to /dev/mem xlate_dev_mem_ptr() and unxlate_dev_mem_ptr() callbacks.  That
way an architecture can deal with specific physical memory ranges.

Re-use the existing /dev/mem callback implementation on s390, which
handles the described prefix pages swapping correctly.

For other architectures the default callback is basically NOP.  It is
expected the condition (vaddr == __va(__pa(vaddr))) always holds true for
KCORE_RAM memory type.

Link: https://lkml.kernel.org/r/20240930122119.1651546-1-agordeev@linux.ibm.com
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Suggested-by: Heiko Carstens <hca@linux.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2024-10-17 15:24:37 +02:00
..
appldata sysctl: Add size to register_sysctl 2023-08-15 15:26:17 -07:00
boot s390/boot: Remove alt_stfle_fac_list from decompressor 2024-06-12 11:12:33 +02:00
configs cred: get rid of CONFIG_DEBUG_CREDENTIALS 2023-12-20 17:01:51 +01:00
crypto crypto: s390/aes - Fix buffer overread in CTR mode 2024-01-31 16:18:50 -08:00
hypfs s390 updates for 6.6 merge window 2023-08-28 17:22:39 -07:00
include fs/proc/kcore.c: allow translation of physical memory addresses 2024-10-17 15:24:37 +02:00
kernel s390/cpum_sf: Remove WARN_ON_ONCE statements 2024-10-17 15:24:16 +02:00
kvm KVM: s390: fix validity interception issue when gisa is switched off 2024-08-29 17:33:12 +02:00
lib s390: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-09 15:20:50 +02:00
mm s390/mm: Add cond_resched() to cmm_alloc/free_pages() 2024-10-17 15:24:15 +02:00
net Revert "bpf: Take return from set_memory_rox() into account with bpf_jit_binary_lock_ro()" 2024-07-09 11:44:29 +02:00
pci s390/pci: Allow allocation of more than 1 MSI interrupt 2024-08-03 08:54:41 +02:00
purgatory s390 updates for 6.5 merge window part 2 2023-07-06 13:18:30 -07:00
tools KVM: s390: Add facility 197 to the allow list 2022-07-13 15:25:25 +02:00
Kbuild - An extensive rework of kexec and crash Kconfig from Eric DeVolder 2023-08-29 14:53:51 -07:00
Kconfig kexec: fix KEXEC_FILE dependencies 2024-01-05 15:19:41 +01:00
Kconfig.debug s390/Kconfig.debug: fix indentation 2022-06-01 12:03:15 +02:00
Makefile kbuild: unify vdso_install rules 2024-06-12 11:12:32 +02:00