Module Name: src Committed By: riastradh Date: Sat Feb 25 00:40:22 UTC 2023
Modified Files: src/sys/arch/aarch64/aarch64: aarch32_syscall.c cpu_machdep.c cpufunc.c fault.c pmap_machdep.c syscall.c trap.c src/sys/arch/aarch64/include: cpu.h Log Message: aarch64: curcpu() audit. Sprinkle KASSERT (or KDASSERT in hot paths) for kpreempt_disabled() when we use curcpu() and it's not immediately obvious that the caller has preemption disabled but closer scrutiny suggests the caller has. Note unsafe curcpu()s for syscall event counting. Not sure this is worth changing. Possible bugs fixed: - cpu_irq and cpu_fiq could be preempted while trying to run softints on this CPU. - data_abort_handler might incorrectly think it was invoked in interrupt context when it was only preempted and migrated to another CPU. - pmap_fault_fixup might report the wrong CPU logs. (However, we don't currently run with kpreemption on aarch64, so these are not yet real bugs fixed except if you patch it to build with __HAVE_PREEMPTION.) To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/sys/arch/aarch64/aarch64/aarch32_syscall.c cvs rdiff -u -r1.13 -r1.14 src/sys/arch/aarch64/aarch64/cpu_machdep.c cvs rdiff -u -r1.33 -r1.34 src/sys/arch/aarch64/aarch64/cpufunc.c cvs rdiff -u -r1.24 -r1.25 src/sys/arch/aarch64/aarch64/fault.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/aarch64/aarch64/pmap_machdep.c cvs rdiff -u -r1.11 -r1.12 src/sys/arch/aarch64/aarch64/syscall.c cvs rdiff -u -r1.47 -r1.48 src/sys/arch/aarch64/aarch64/trap.c cvs rdiff -u -r1.48 -r1.49 src/sys/arch/aarch64/include/cpu.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.