freebsd-dev/sys/arm64/include
Zachary Leaf f4036a9234 arm64: add fault address to trapframe
It was previously possible for the fault address register to get
clobbered before it was saved. This small window occurred when an
additional exception was encountered inside the exception handler,
overwriting the previous value.

Commit f29942229d ("Read the arm64 far early in el0 exceptions")
patched this issue, but avoided changing the trapframe since this could
be considered a KBI change in FreeBSD 13.

Revert the above fix and save the fault address in the trapframe
instead. This saves the fault address even earlier in the exception
handling process, and is a more robust and simple fix.

Reviewed by:	andrew, jhb, jrtc27
Sponsored by: Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D38984
2023-03-23 18:56:26 +00:00
..
_align.h
_bus.h
_inttypes.h
_limits.h
_stdint.h arm64: Fix sig_atomic_t limit definitions 2023-03-22 16:22:21 +00:00
_types.h
acpica_machdep.h
armreg.h Mark arm64 mair_el1 fields as unsigned long 2023-03-16 16:45:42 +00:00
asm.h
atomic.h
bus_dma_impl.h
bus_dma.h
bus.h arm64: bus: provide bus_space_set_{multi,region}_stream definitions 2022-09-26 14:24:37 -05:00
clock.h
cmn600_reg.h Fix the SPDX-License-Identifier in CMN-600 files 2022-12-22 10:36:18 +00:00
counter.h
cpu.h Add CPU Ident for Qualcomm Kryo 400 (used in MS Dev Kit) 2023-01-18 21:04:49 +00:00
cpufunc.h
csan.h
db_machdep.h
debug_monitor.h
disassem.h
dump.h
efi.h
elf.h arm, arm64: tweak hard-coded load addresses for PIE binaries 2022-10-25 19:00:44 +03:00
endian.h
exec.h
float.h
floatingpoint.h
fpu.h
frame.h arm64: add fault address to trapframe 2023-03-23 18:56:26 +00:00
gdb_machdep.h
hypervisor.h arm64: set FPEN if we're stuck with HCR_EL2.E2H 2023-02-28 16:16:14 -06:00
ieeefp.h
ifunc.h
in_cksum.h
intr.h
iodev.h
iommu.h
kdb.h
machdep.h arm64: disable the physical timer for now if HCR_EL2.E2H is set 2023-03-03 11:02:34 -06:00
md_var.h
memdev.h
metadata.h
minidump.h
ofw_machdep.h
param.h arm64: Disable per-thread stack-smashing protection in data_abort() 2022-11-07 16:05:58 -05:00
pcb.h Add macros for arm64 pcb register offsets 2023-03-22 15:08:03 +00:00
pci_cfgreg.h
pcpu_aux.h
pcpu.h Store mpidr as a 64-bit value on arm64 2022-08-31 11:48:31 +01:00
pmap.h Support arm64 stage2 TLB invalidation 2023-03-15 11:34:32 +00:00
pmc_mdep.h
proc.h Move kstack_contains() and GET_STACK_USAGE() to MD machine/stack.h 2023-02-02 00:59:26 +02:00
procctl.h
profile.h
psl.h
pte.h
ptrace.h arm64: Implement cpu_ptrace(). 2022-10-27 23:25:56 +02:00
reg.h arm64: extend ESR/SPSR registers to 64b 2023-03-23 18:56:26 +00:00
reloc.h
resource.h
runq.h
setjmp.h
sf_buf.h
sigframe.h
signal.h
smp.h
stack.h kstack_contains(): account for struct pcb on stack 2023-02-02 00:59:27 +02:00
stdarg.h
sysarch.h
tls.h
trap.h
ucontext.h arm64: extend ESR/SPSR registers to 64b 2023-03-23 18:56:26 +00:00
undefined.h
vdso.h
vfp.h
vm.h Switch the arm64 VM_MEMATTR_DEVICE to nGnRE 2023-03-16 16:45:42 +00:00
vmparam.h