--- - branch: netbsd-10 date: Thu Apr 18 18:17:06 UTC 2024 files: - new: 1.13.4.1 old: '1.13' path: src/sys/arch/aarch64/aarch64/cpu_machdep.c pathrev: src/sys/arch/aarch64/aarch64/cpu_machdep.c@1.13.4.1 type: modified - new: 1.8.4.1 old: '1.8' path: src/sys/arch/aarch64/aarch64/sig_machdep.c pathrev: src/sys/arch/aarch64/aarch64/sig_machdep.c@1.8.4.1 type: modified id: 20240418T181706Z.67c0d22b82bb4f5ec323d415972e5751e5ed9ed6 log: "Pull up following revision(s) (requested by skrll in ticket #667):\n\n\tsys/arch/aarch64/aarch64/sig_machdep.c: revision 1.9\n\tsys/arch/aarch64/aarch64/cpu_machdep.c: revision 1.15\n\nkern/58149: aarch64: Cannot return from a signal handler if SP was\nmisaligned when the signal arrived\n\nApply the kernel diff from the PR\n1. sendsig_siginfo() previously assumed that user SP was always aligned to\n 16 bytes and could call signal handlers with SP misaligned. This is a\n wrong assumption because aarch64 demands that SP is aligned *only while*\n it's being used to access memory. Now it properly aligns it before\n pusing anything on the stack.\n2. cpu_mcontext_validate() used to check if _REG_SP was aligned and\n considered the ucontext invalid otherwise. This meant if a signal was\n sent to a process whose SP was misaligned, the signal handler would fail\n to return because the ucontext passed from the kernel was an invalid\n one. Now setcontext(2) doesn't complain about misaligned SP.\n" module: src subject: 'CVS commit: [netbsd-10] src/sys/arch/aarch64/aarch64' unixtime: '1713464226' user: martin