2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-09 14:14:00 +08:00
linux-next/arch/powerpc/kernel
Xiu Jianfeng f4a0318f27 powerpc: add support for syscall stack randomization
Add support for adding a random offset to the stack while handling
syscalls. This patch uses mftb() instead of get_random_int() for better
performance.

In order to avoid unconditional stack canaries on syscall entry (due to
the use of alloca()), also disable stack protector to avoid triggering
needless checks and slowing down the entry path. As there is no general
way to control stack protector coverage with a function attribute, this
must be disabled at the compilation unit level.

Signed-off-by: Xiu Jianfeng <xiujianfeng@huawei.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220701082435.126596-3-xiujianfeng@huawei.com
2022-07-28 16:22:15 +10:00
..
ptrace powerpc: Fix all occurences of duplicate words 2022-07-25 12:05:15 +10:00
syscalls arch: syscalls: simplify uapi/kapi directory creation 2022-03-31 12:03:46 +09:00
trace powerpc: Fix all occurences of duplicate words 2022-07-25 12:05:15 +10:00
vdso powerpc/vdso: Fix __kernel_sync_dicache sequence with coherent icache 2022-07-27 21:36:04 +10:00
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
align.c powerpc/inst: Define ppc_inst_t 2021-12-09 22:41:21 +11:00
asm-offsets.c KVM: PPC: Book3S HV: Add a new config for P8 debug timing 2022-06-29 19:21:21 +10:00
audit.c Revert "powerpc/audit: Convert powerpc to AUDIT_ARCH_COMPAT_GENERIC" 2021-10-27 22:30:32 +11:00
btext.c powerpc: Fix all occurences of duplicate words 2022-07-25 12:05:15 +10:00
cacheinfo.c powerpc: Remove asm/prom.h from all files that don't need it 2022-05-08 22:15:04 +10:00
cacheinfo.h
compat_audit.c Revert "powerpc/audit: Convert powerpc to AUDIT_ARCH_COMPAT_GENERIC" 2021-10-27 22:30:32 +11:00
cpu_setup_6xx.S powerpc/32: Blacklist functions running with MMU disabled for kprobe 2020-06-02 20:59:11 +10:00
cpu_setup_44x.S
cpu_setup_fsl_booke.S powerpc: Retire e200 core (mpc555x processor) 2020-12-05 21:49:18 +11:00
cpu_setup_pa6t.S
cpu_setup_power.c powerpc/64s: Always set PMU control registers to frozen/disabled when not in use 2021-11-24 21:08:57 +11:00
cpu_setup_ppc970.S
cputable.c powerpc: Remove remaining parts of oprofile 2022-07-27 21:36:05 +10:00
crash_dump.c powerpc updates for 5.19 2022-05-28 11:27:17 -07:00
dawr.c powerpc: Include asm/firmware.h in all users of firmware_has_feature() 2022-06-29 16:45:05 +10:00
dbell.c powerpc/64s/interrupt: Don't enable MSR[EE] in irq handlers unless perf is in use 2021-12-16 21:31:45 +11:00
dma-iommu.c powerpc/iommu: Report the correct most efficient DMA mask for PCI devices 2021-09-30 17:10:17 +10:00
dma-mask.c
dma-swiotlb.c swiotlb: add a SWIOTLB_ANY flag to lift the low memory restriction 2022-04-18 07:21:12 +02:00
dt_cpu_ftrs.c powerpc: Remove remaining parts of oprofile 2022-07-27 21:36:05 +10:00
early_32.c powerpc: Move C prototypes out of asm-prototypes.h 2022-03-08 22:06:25 +11:00
eeh_cache.c powerpc/kernel: Add __init attribute to eligible functions 2021-12-23 22:33:10 +11:00
eeh_driver.c powerpc: Fix all occurences of duplicate words 2022-07-25 12:05:15 +10:00
eeh_event.c powerpc: fix typos in comments 2022-05-05 22:12:44 +10:00
eeh_pe.c powerpc: Fix all occurences of "the the" 2022-05-22 15:59:43 +10:00
eeh_sysfs.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
eeh.c powerpc: fix typos in comments 2022-05-05 22:12:44 +10:00
entry_32.S powerpc/rtas: Move rtas entry assembly into its own file 2022-05-19 23:11:27 +10:00
entry_64.S powerpc/rtas: Move rtas entry assembly into its own file 2022-05-19 23:11:27 +10:00
epapr_hcalls.S
epapr_paravirt.c powerpc/inst: Define ppc_inst_t 2021-12-09 22:41:21 +11:00
exceptions-64e.S powerpc: flexible GPR range save/restore macros 2021-11-29 23:15:20 +11:00
exceptions-64s.S powerpc: Fix all occurences of duplicate words 2022-07-25 12:05:15 +10:00
fadump.c powerpc updates for 5.19 2022-05-28 11:27:17 -07:00
firmware.c powerpc: fix unbalanced node refcount in check_kvm_guest() 2021-10-09 00:15:59 +11:00
fpu.S powerpc/64s/interrupt: handle MSR EE and RI in interrupt entry wrapper 2021-12-16 21:31:45 +11:00
fsl_booke_entry_mapping.S powerpc/booke: Avoid link stack corruption in several places 2021-08-25 13:35:47 +10:00
head_8xx.S powerpc/32: Remove _ENTRY() macro 2022-02-07 21:03:10 +11:00
head_32.h powerpc updates for 5.17 2022-01-14 15:17:26 +01:00
head_40x.S powerpc/32: Remove _ENTRY() macro 2022-02-07 21:03:10 +11:00
head_44x.S powerpc/32: Remove _ENTRY() macro 2022-02-07 21:03:10 +11:00
head_64.S powerpc/64e: KASAN Full support for BOOK3E/64 2022-06-29 17:04:15 +10:00
head_book3s_32.S powerpc/32: Set an IBAT covering up to _einittext during init 2022-07-27 21:36:05 +10:00
head_booke.h powerpc: flexible GPR range save/restore macros 2021-11-29 23:15:20 +11:00
head_fsl_booke.S powerpc/32: Remove _ENTRY() macro 2022-02-07 21:03:10 +11:00
hw_breakpoint_constraints.c powerpc/inst: Define ppc_inst_t 2021-12-09 22:41:21 +11:00
hw_breakpoint.c powerpc/inst: Define ppc_inst_t 2021-12-09 22:41:21 +11:00
idle_6xx.S powerpc/mm: Switch obsolete dssall to .long 2021-12-23 22:35:13 +11:00
idle_book3e.S
idle_book3s.S powerpc/idle: Don't corrupt back chain when going idle 2021-10-20 21:37:58 +11:00
idle_e500.S powerpc/32: Return directly from power_save_ppc32_restore() 2021-03-29 13:22:10 +11:00
idle.c powerpc/idle: Fix return value of __setup() handler 2022-05-04 19:37:46 +10:00
ima_arch.c powerpc/ima: Fix secure boot rules in ima arch policy 2020-05-07 17:25:54 +10:00
interrupt_64.S powerpc: Replace PPC64_ELF_ABI_v{1/2} by CONFIG_PPC64_ELF_ABI_V{1/2} 2022-05-19 23:11:29 +10:00
interrupt.c powerpc: Move system_call_exception() to syscall.c 2022-07-28 16:22:15 +10:00
io-workarounds.c powerpc: Fix reverse map real-mode address lookup with huge vmalloc 2021-05-28 22:54:27 +10:00
io.c
iomap.c powerpc: inline iomap accessors 2020-12-04 01:01:09 +11:00
iommu.c powerpc/iommu: Fix iommu_table_in_use for a small default DMA window case 2022-07-28 16:22:13 +10:00
irq_64.c powerpc/irq64: Remove get_irq_happened() 2022-06-29 16:47:43 +10:00
irq.c powerpc/irq: Simplify __do_irq() 2022-06-29 16:58:31 +10:00
isa-bridge.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
jump_label.c powerpc: Don't use 'struct ppc_inst' to reference instruction location 2021-06-17 00:09:00 +10:00
kdebugfs.c powerpc: rename powerpc_debugfs_root to arch_debugfs_dir 2021-08-13 22:04:26 +10:00
kgdb.c powerpc/config: Add CONFIG_BOOKE_OR_40x 2021-12-09 22:41:19 +11:00
kprobes-ftrace.c ftrace: disable preemption when recursion locked 2021-10-27 11:21:49 -04:00
kprobes.c powerpc/64: Drop ppc_inst_as_str() 2022-06-29 19:37:07 +10:00
kvm_emul.S powerpc/kvm: Add ifdefs around template code 2019-09-14 00:04:40 +10:00
kvm.c gup: Turn fault_in_pages_{readable,writeable} into fault_in_{readable,writeable} 2021-10-18 16:33:03 +02:00
l2cr_6xx.S powerpc/mm: Switch obsolete dssall to .long 2021-12-23 22:35:13 +11:00
legacy_serial.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
Makefile powerpc: add support for syscall stack randomization 2022-07-28 16:22:15 +10:00
mce_power.c powerpc/inst: Define ppc_inst_t 2021-12-09 22:41:21 +11:00
mce.c powerpc/mce: use early_cpu_to_node() in mce_init() 2022-07-27 21:36:04 +10:00
misc_32.S powerpc: Avoid link stack corruption in misc asm functions 2021-08-25 13:35:47 +10:00
misc_64.S powerpc: Replace PPC64_ELF_ABI_v{1/2} by CONFIG_PPC64_ELF_ABI_V{1/2} 2022-05-19 23:11:29 +10:00
misc.S powerpc: Avoid link stack corruption in misc asm functions 2021-08-25 13:35:47 +10:00
module_32.c powerpc/modules: Use PPC_LI macros instead of opencoding 2022-05-22 15:58:27 +10:00
module_64.c powerpc/modules: Use PPC_LI macros instead of opencoding 2022-05-22 15:58:27 +10:00
module.c powerpc: Replace PPC64_ELF_ABI_v{1/2} by CONFIG_PPC64_ELF_ABI_V{1/2} 2022-05-19 23:11:29 +10:00
msi.c
note.S powerpc: Add PowerPC Capabilities ELF note 2019-08-30 09:40:15 +10:00
nvram_64.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
of_platform.c powerpc/eeh: Remove eeh_dev_phb_init_dynamic() 2020-07-26 23:34:19 +10:00
optprobes_head.S powerpc: flexible GPR range save/restore macros 2021-11-29 23:15:20 +11:00
optprobes.c powerpc/inst: Define ppc_inst_t as u32 on PPC32 2021-12-09 22:41:21 +11:00
paca.c powerpc/mm: Remove CONFIG_PPC_MM_SLICES 2022-05-05 22:11:57 +10:00
pci_32.c powerpc/pci: Add config option for using all 256 PCI buses 2022-07-27 21:36:04 +10:00
pci_64.c powerpc/pci: Hide pci_device_from_OF_node() for non-powermac code 2022-07-27 21:36:03 +10:00
pci_dn.c powerpc: Fix all occurences of duplicate words 2022-07-25 12:05:15 +10:00
pci_of_scan.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
pci-common.c powerpc/pci: Prefer PCI domain assignment via DT 'linux,pci-domain' and alias 2022-07-28 16:22:13 +10:00
pci-hotplug.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
pmc.c
ppc32.h
ppc_save_regs.S powerpc: Improve ppc_save_regs() 2020-04-04 21:40:57 +11:00
proc_powerpc.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
process.c powerpc: Enable execve syscall exit tracepoint 2022-06-18 10:19:10 +10:00
prom_init_check.sh powerpc/prom_init: Fix kernel config grep 2022-06-24 13:47:26 +10:00
prom_init.c Merge branch 'fixes' into next 2022-07-09 19:29:34 +10:00
prom_parse.c
prom.c powerpc: Remove asm/prom.h from asm/mpc52xx.h and asm/pci.h 2022-07-28 16:22:12 +10:00
reloc_32.S powerpc: Avoid link stack corruption in misc asm functions 2021-08-25 13:35:47 +10:00
reloc_64.S powerpc/64: Add UADDR64 relocation support 2022-03-09 21:47:53 +11:00
rtas_entry.S powerpc/rtas: Leave MSR[RI] enabled over RTAS call 2022-05-19 23:11:27 +10:00
rtas_flash.c powerpc: fix typos in comments 2022-05-05 22:12:44 +10:00
rtas_pci.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
rtas-proc.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
rtas-rtc.c powerpc: Remove asm/prom.h from all files that don't need it 2022-05-08 22:15:04 +10:00
rtas.c powerpc/rtas: Allow ibm,platform-dump RTAS call with null buffer address 2022-06-18 10:19:10 +10:00
rtasd.c powerpc: Remove asm/prom.h from all files that don't need it 2022-05-08 22:15:04 +10:00
secure_boot.c powerpc/pseries: Detect secure and trusted boot state of the system. 2020-07-16 14:49:53 +10:00
security.c powerpc: add link stack flush mitigation status in debugfs. 2022-01-31 13:45:23 +11:00
secvar-ops.c powerpc/powernv: Add OPAL API interface to access secure variable 2019-11-13 00:33:22 +11:00
secvar-sysfs.c powerpc/secvar: fix refcount leak in format_show() 2022-03-08 22:07:41 +11:00
setup_32.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
setup_64.c powerpc/64e: Remove MMU_FTR_USE_TLBRSRV and MMU_FTR_USE_PAIRED_MAS 2022-06-29 17:04:14 +10:00
setup-common.c powerpc/mm: Move CMA reservations after initmem_init() 2022-06-18 10:18:55 +10:00
setup.h powerpc/config: Add CONFIG_BOOKE_OR_40x 2021-12-09 22:41:19 +11:00
signal_32.c powerpc/signal: Report minimum signal frame size to userspace via AT_MINSIGSTKSZ 2022-05-19 23:11:26 +10:00
signal_64.c powerpc/signal: Update comment for clarity 2022-07-28 16:22:14 +10:00
signal.c powerpc/signal: Report minimum signal frame size to userspace via AT_MINSIGSTKSZ 2022-05-19 23:11:26 +10:00
signal.h powerpc/signal32: Fix sigset_t copy 2021-11-16 21:24:16 +11:00
smp-tbsync.c
smp.c powerpc/crash: save cpu register data in crash_smp_send_stop() 2022-07-28 16:22:13 +10:00
stacktrace.c kprobes: treewide: Make it harder to refer kretprobe_trampoline directly 2021-09-30 21:24:06 -04:00
static_call.c powerpc/32: Add support for out-of-line static calls 2021-10-22 15:22:05 +11:00
suspend.c
swsusp_32.S powerpc/mm: Switch obsolete dssall to .long 2021-12-23 22:35:13 +11:00
swsusp_64.c powerpc/machdep: Remove stale functions from ppc_md structure 2021-10-22 15:22:05 +11:00
swsusp_asm64.S powerpc/mm: Switch obsolete dssall to .long 2021-12-23 22:35:13 +11:00
swsusp_booke.S
swsusp.c
sys_ppc32.c powerpc/compat_sys: swap hi/lo parts of 64-bit syscall args in LE mode 2021-02-11 23:35:07 +11:00
syscall.c powerpc: add support for syscall stack randomization 2022-07-28 16:22:15 +10:00
syscalls.c powerpc: Remove redundant spaces to match coding style 2022-05-04 19:37:46 +10:00
sysfs.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
systbl_chk.sh
systbl.S powerpc/syscalls: switch to generic syscalltbl.sh 2021-04-14 23:04:16 +10:00
tau_6xx.c powerpc: Move C prototypes out of asm-prototypes.h 2022-03-08 22:06:25 +11:00
time.c powerpc: Add missing headers 2022-05-08 22:15:40 +10:00
tm.S powerpc/tm: Fix more userspace r13 corruption 2022-03-16 11:59:24 +11:00
traps.c powerpc: make facility_unavailable_exception 64s 2022-07-28 16:22:14 +10:00
ucall.S powerpc/kernel: Add ucall_norets() ultravisor call handler 2019-08-30 09:40:15 +10:00
udbg_16550.c powerpc/kernel: Add __init attribute to eligible functions 2021-12-23 22:33:10 +11:00
udbg.c isystem: ship and use stdarg.h 2021-08-19 09:02:55 +09:00
uprobes.c powerpc: Reject probes on instructions that can't be single stepped 2022-05-06 00:00:20 +10:00
vdso32_wrapper.S powerpc/vdso: Merge vdso64 and vdso32 into a single directory 2022-02-12 22:47:43 +11:00
vdso64_wrapper.S powerpc/vdso: Merge vdso64 and vdso32 into a single directory 2022-02-12 22:47:43 +11:00
vdso.c powerpc: Remove asm/prom.h from all files that don't need it 2022-05-08 22:15:04 +10:00
vecemu.c powerpc/inst: Define ppc_inst_t 2021-12-09 22:41:21 +11:00
vector.S powerpc/64s/interrupt: handle MSR EE and RI in interrupt entry wrapper 2021-12-16 21:31:45 +11:00
vmlinux.lds.S powerpc/64: Add UADDR64 relocation support 2022-03-09 21:47:53 +11:00
watchdog.c powerpc/watchdog: introduce a NMI watchdog's factor 2022-07-27 21:36:02 +10:00