linux/arch/powerpc
Christophe Leroy 18c85964b1 powerpc: Do not dereference code as 'struct ppc_inst' (uprobe, code-patching, feature-fixups)
'struct ppc_inst' is an internal structure to represent an instruction,
it is not directly the representation of that instruction in text code.
It is not meant to map and dereference code.

Dereferencing code directly through 'struct ppc_inst' has two main issues:
- On powerpc, structs are expected to be 8 bytes aligned while code is
spread every 4 byte.
- Should a non prefixed instruction lie at the end of the page and the
following page not be mapped, it would generate a page fault.

In-memory code must be accessed with ppc_inst_read().

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/c9a1201dd0a66b4a0f91f0fb46d9385cbf030feb.1621516826.git.christophe.leroy@csgroup.eu
2021-06-16 23:35:57 +10:00
..
boot powerpc/ps3: Re-align DTB in image 2021-06-10 21:44:57 +10:00
configs powerpc/Makefile: Add ppc32/ppc64_randconfig targets 2021-05-23 20:51:35 +10:00
crypto crypto: powepc/sha1 - remove unneeded semicolon 2021-03-07 15:13:14 +11:00
include powerpc/inst: Avoid pointer dereferencing in ppc_inst_equal() 2021-06-16 23:35:57 +10:00
kernel powerpc: Do not dereference code as 'struct ppc_inst' (uprobe, code-patching, feature-fixups) 2021-06-16 23:35:57 +10:00
kexec powerpc/kexec_file: Use current CPU info while setting up FDT 2021-05-04 22:26:57 +10:00
kvm KVM: PPC: Book3S HV: Save host FSCR in the P7/8 path 2021-05-28 22:54:27 +10:00
lib powerpc: Do not dereference code as 'struct ppc_inst' (uprobe, code-patching, feature-fixups) 2021-06-16 23:35:57 +10:00
math-emu powerpc/math: Fix missing __user qualifier for get_user() and other sparse warnings 2021-03-29 13:22:12 +11:00
mm powerpc/mem: Add back missing header to fix 'no previous prototype' error 2021-06-06 21:43:11 +10:00
net powerpc/ebpf32: Use _Rx macros instead of __REG_Rx ones 2021-06-16 00:16:48 +10:00
perf powerpc/perf: Simplify Makefile 2021-06-15 17:12:27 +10:00
platforms powerpc/spider-pci: Remove set but not used variable 'val' 2021-06-15 17:12:27 +10:00
purgatory powerpc/kexec: Don't use .machine ppc64 in trampoline_64.S 2021-04-08 21:17:43 +10:00
sysdev Merge branch 'akpm' (patches from Andrew) 2021-04-30 14:38:01 -07:00
tools powerpc/tools: Remove 90 line limit in checkpatch script 2020-09-08 22:57:11 +10:00
xmon powerpc/xmon: make dumping log buffer contents more reliable 2021-05-23 20:51:35 +10:00
Kbuild
Kconfig powerpc: Kconfig: disable CONFIG_COMPAT for clang < 12 2021-05-23 20:51:35 +10:00
Kconfig.debug powerpc: iommu: fix build when neither PCI or IBMVIO is set 2021-04-08 21:17:46 +10:00
Makefile powerpc/Makefile: Add ppc32/ppc64_randconfig targets 2021-05-23 20:51:35 +10:00
Makefile.postlink powerpc: unrel_branch_check.sh: use nm to find symbol value 2020-09-02 11:00:22 +10:00