On Mon, 9 Mar 2020, Paul Goyette wrote:
Module Name: src Committed By: pgoyette Date: Mon Mar 9 01:06:34 UTC 2020Modified Files: src/sys/compat/netbsd32: netbsd32_mod.c Log Message: If a syscall requires a module to be autoloaded, the initial invocation of that syscall will return ERESTART. For amd64's netbsd32_syscall() that means we need to back up the PC saved in the trap frame so we can re-issue the syscall instruction. For "normal" syscall traps, we saved the instruction length in the trap frame, but this was missing for the oosyscall/lcall path. Since the PC was not backed up, the kernel-only value ERESTART was returned to userland, causing all sort of grief for old compat_netbsd32 executables!
While here, I also added some comments on some recent #endif to better identify their associated #if - no functional change intended for this.
XXX Pullup-9 To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/compat/netbsd32/netbsd32_mod.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. !DSPAM:5e6596db22973983836595!
+--------------------+--------------------------+-----------------------+ | Paul Goyette | PGP Key fingerprint: | E-mail addresses: | | (Retired) | FA29 0E3B 35AF E8AE 6651 | [email protected] | | Software Developer | 0786 F758 55DE 53BA 7731 | [email protected] | +--------------------+--------------------------+-----------------------+
