linux/arch/x86/kernel
Eric W. Biederman add0b32ef9 siginfo: Move si_trapno inside the union inside _si_fault
It turns out that linux uses si_trapno very sparingly, and as such it
can be considered extra information for a very narrow selection of
signals, rather than information that is present with every fault
reported in siginfo.

As such move si_trapno inside the union inside of _si_fault.  This
results in no change in placement, and makes it eaiser
to extend _si_fault in the future as this reduces the number of
special cases.  In particular with si_trapno included in the union it
is no longer a concern that the union must be pointer aligned on most
architectures because the union follows immediately after si_addr
which is a pointer.

This change results in a difference in siginfo field placement on
sparc and alpha for the fields si_addr_lsb, si_lower, si_upper,
si_pkey, and si_perf.  These architectures do not implement the
signals that would use si_addr_lsb, si_lower, si_upper, si_pkey, and
si_perf.  Further these architecture have not yet implemented the
userspace that would use si_perf.

The point of this change is in fact to correct these placement issues
before sparc or alpha grow userspace that cares.  This change was
discussed[1] and the agreement is that this change is currently safe.

[1]: https://lkml.kernel.org/r/CAK8P3a0+uKYwL1NhY6Hvtieghba2hKYGD6hcKx5n8=4Gtt+pHA@mail.gmail.com
Acked-by: Marco Elver <elver@google.com>
v1: https://lkml.kernel.org/r/m1tunns7yf.fsf_-_@fess.ebiederm.org
v2: https://lkml.kernel.org/r/20210505141101.11519-5-ebiederm@xmission.com
Link: https://lkml.kernel.org/r/20210517195748.8880-1-ebiederm@xmission.com
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
2021-05-18 16:17:03 -05:00
..
acpi Trivial cleanups and fixes all over the place. 2021-04-26 09:25:47 -07:00
apic A single commit to make the vector allocation code more resilent against an 2021-04-26 10:00:38 -07:00
cpu Perf events changes in this cycle were: 2021-04-28 13:03:44 -07:00
fpu x86: Fix various typos in comments 2021-03-18 15:31:53 +01:00
kprobes - turn the stack canary into a normal __percpu variable on 32-bit which 2021-04-27 17:45:09 -07:00
.gitignore
alternative.c x86/alternatives: Optimize optimize_nops() 2021-04-02 12:41:17 +02:00
amd_gart_64.c
amd_nb.c x86: Fix various typos in comments, take #2 2021-03-21 23:50:28 +01:00
aperture_64.c
apm_32.c x86: Fix various typos in comments, take #2 2021-03-21 23:50:28 +01:00
asm-offsets.c x86/paravirt: Switch iret pvops to ALTERNATIVE 2021-03-11 19:58:54 +01:00
asm-offsets_32.c x86/stackprotector/32: Make the canary into a regular percpu variable 2021-03-08 13:19:05 +01:00
asm-offsets_64.c x86/xen: Drop USERGS_SYSRET64 paravirt call 2021-02-10 12:32:07 +01:00
audit_64.c
bootflag.c
check.c
cpuid.c smp: Cleanup smp_call_function*() 2020-11-24 16:47:49 +01:00
crash.c x86/crash: Fix crash_setup_memmap_entries() out-of-bounds access 2021-04-20 17:32:46 +02:00
crash_core_32.c
crash_core_64.c
crash_dump_32.c x86/crashdump/32: Simplify copy_oldmem_page() 2020-11-24 14:42:09 +01:00
crash_dump_64.c
devicetree.c
doublefault_32.c x86/stackprotector/32: Make the canary into a regular percpu variable 2021-03-08 13:19:05 +01:00
dumpstack.c - Remove all uses of TIF_IA32 and TIF_X32 and reclaim the two bits in the end 2020-12-14 13:45:26 -08:00
dumpstack_32.c
dumpstack_64.c x86/irq/64: Adjust the per CPU irq stack pointer by 8 2021-02-10 23:34:14 +01:00
e820.c Power management updates for 5.13-rc1 2021-04-26 15:10:25 -07:00
early-quirks.c x86/gpu: Add Alderlake-S stolen memory support 2021-01-26 06:55:09 -08:00
early_printk.c
ebda.c
eisa.c
espfix_64.c
ftrace.c x86: Remove dynamic NOP selection 2021-03-15 16:24:59 +01:00
ftrace_32.S
ftrace_64.S x86/ftrace: Support objtool vmlinux.o validation in ftrace_64.S 2021-01-26 11:33:02 -06:00
head32.c
head64.c x86: Fix various typos in comments 2021-03-18 15:31:53 +01:00
head_32.S x86/stackprotector/32: Make the canary into a regular percpu variable 2021-03-08 13:19:05 +01:00
head_64.S - Fix the vmlinux size check on 64-bit along with adding useful clarifications on the topic 2020-12-14 13:54:50 -08:00
hpet.c
hw_breakpoint.c x86/debug: Prevent data breakpoints on cpu_dr7 2021-02-05 20:13:12 +01:00
i8237.c
i8253.c
i8259.c
idt.c x86: Fix various typos in comments 2021-03-18 15:31:53 +01:00
io_delay.c
ioport.c
irq.c x86: Fix various typos in comments 2021-03-18 15:31:53 +01:00
irq_32.c softirq: Move do_softirq_own_stack() to generic asm header 2021-02-10 23:34:16 +01:00
irq_64.c x86/softirq/64: Inline do_softirq_own_stack() 2021-02-10 23:34:17 +01:00
irq_work.c
irqflags.S x86/pv: Rework arch_local_irq_restore() to not use popf 2021-02-10 12:36:45 +01:00
irqinit.c
itmt.c
jailhouse.c
jump_label.c x86: Remove dynamic NOP selection 2021-03-15 16:24:59 +01:00
kdebugfs.c
kexec-bzimage64.c
kgdb.c x86: Fix various typos in comments 2021-03-18 15:31:53 +01:00
ksysfs.c
kvm.c First big cleanup to the paravirt infra to use alternatives and thus 2021-04-26 09:01:29 -07:00
kvmclock.c First big cleanup to the paravirt infra to use alternatives and thus 2021-04-26 09:01:29 -07:00
ldt.c x86/ldt: Use tlb_gather_mmu_fullmm() when freeing LDT page-tables 2021-01-29 20:02:29 +01:00
machine_kexec_32.c
machine_kexec_64.c x86: Fix various typos in comments 2021-03-18 15:31:53 +01:00
Makefile x86/paravirt: Have only one paravirt patch function 2021-03-11 20:11:09 +01:00
mmconf-fam10h_64.c
module.c x86/build: Treat R_386_PLT32 relocation as R_386_PC32 2021-01-28 12:24:06 +01:00
mpparse.c
msr.c x86/MSR: Filter MSR writes through X86_IOC_WRMSR_REGS ioctl too 2021-01-27 19:06:47 +01:00
nmi.c
nmi_selftest.c
paravirt-spinlocks.c x86/paravirt: Add new features for paravirt patching 2021-03-11 19:51:49 +01:00
paravirt.c x86/paravirt: Have only one paravirt patch function 2021-03-11 20:11:09 +01:00
pci-dma.c
pci-iommu_table.c x86: Remove definition of DEBUG 2021-01-15 08:23:10 +01:00
pci-swiotlb.c
pcspeaker.c
perf_regs.c - Remove all uses of TIF_IA32 and TIF_X32 and reclaim the two bits in the end 2020-12-14 13:45:26 -08:00
platform-quirks.c
pmem.c
probe_roms.c
process.c x86/process/64: Move cpu_current_top_of_stack out of TSS 2021-03-28 22:40:10 +02:00
process.h
process_32.c
process_64.c x86/irq: Sanitize irq stack tracking 2021-02-10 23:34:13 +01:00
ptrace.c x86/ptrace: Clean up PTRACE_GETREGS/PTRACE_PUTREGS regset selection 2021-02-04 12:33:15 +01:00
pvclock.c x86: Fix various typos in comments 2021-03-18 15:31:53 +01:00
quirks.c
reboot.c x86: 2021-02-21 13:31:43 -08:00
reboot_fixups_32.c
relocate_kernel_32.S x86: Fix various typos in comments, take #2 2021-03-21 23:50:28 +01:00
relocate_kernel_64.S x86: Fix various typos in comments, take #2 2021-03-21 23:50:28 +01:00
resource.c
rtc.c
setup.c - turn the stack canary into a normal __percpu variable on 32-bit which 2021-04-27 17:45:09 -07:00
setup_percpu.c x86/stackprotector/32: Make the canary into a regular percpu variable 2021-03-08 13:19:05 +01:00
sev-es-shared.c x86/sev-es: Replace open-coded hlt-loops with sev_es_terminate() 2021-03-18 23:04:12 +01:00
sev-es.c - turn the stack canary into a normal __percpu variable on 32-bit which 2021-04-27 17:45:09 -07:00
sev_verify_cbit.S
signal.c Merge branch 'linus' into x86/cleanups, to resolve conflict 2021-03-21 22:16:08 +01:00
signal_compat.c siginfo: Move si_trapno inside the union inside _si_fault 2021-05-18 16:17:03 -05:00
smp.c x86: Fix various typos in comments, take #2 2021-03-21 23:50:28 +01:00
smpboot.c - turn the stack canary into a normal __percpu variable on 32-bit which 2021-04-27 17:45:09 -07:00
stacktrace.c stacktrace: Move documentation for arch_stack_walk_reliable() to header 2021-03-10 15:52:31 +01:00
static_call.c x86: Remove dynamic NOP selection 2021-03-15 16:24:59 +01:00
step.c entry: Ensure trap after single-step on system call return 2021-02-06 00:21:42 +01:00
sys_ia32.c
sys_x86_64.c x86/mm: Refine mmap syscall implementation 2021-01-05 19:07:42 +01:00
sysfb.c
sysfb_efi.c x86: Fix various typos in comments 2021-03-18 15:31:53 +01:00
sysfb_simplefb.c
tboot.c x86/boot/tboot: Avoid Wstringop-overread-warning 2021-03-23 00:16:13 +01:00
time.c
tls.c x86/stackprotector/32: Make the canary into a regular percpu variable 2021-03-08 13:19:05 +01:00
tls.h
topology.c x86: Fix various typos in comments 2021-03-18 15:31:53 +01:00
trace_clock.c
tracepoint.c
traps.c - turn the stack canary into a normal __percpu variable on 32-bit which 2021-04-27 17:45:09 -07:00
tsc.c Trivial cleanups and fixes all over the place. 2021-04-26 09:25:47 -07:00
tsc_msr.c
tsc_sync.c x86: Fix various typos in comments, take #2 2021-03-21 23:50:28 +01:00
umip.c - turn the stack canary into a normal __percpu variable on 32-bit which 2021-04-27 17:45:09 -07:00
unwind_frame.c
unwind_guess.c
unwind_orc.c x86/unwind/orc: Silence warnings caused by missing ORC data 2021-03-06 13:09:45 +01:00
uprobes.c x86/uprobes: Convert to insn_decode() 2021-03-15 12:05:03 +01:00
verify_cpu.S
vm86_32.c x86/vm86/32: Remove VM86_SCREEN_BITMAP support 2021-01-21 20:08:53 +01:00
vmlinux.lds.S
vsmp_64.c
x86_init.c