Module Name: src Committed By: martin Date: Thu Nov 26 13:15:35 UTC 2015
Modified Files: src/sys/arch/amd64/amd64: netbsd32_machdep.c src/sys/arch/arm/arm32: netbsd32_machdep.c src/sys/arch/mips/mips: netbsd32_machdep.c src/sys/arch/riscv/riscv: netbsd32_machdep.c src/sys/arch/sparc64/sparc64: netbsd32_machdep.c svr4_32_machdep.c src/sys/compat/netbsd32: netbsd32.h src/sys/compat/svr4_32: svr4_32_exec.h src/sys/external/bsd/drm2/dist/drm/i915: i915_gem.c src/sys/kern: exec_elf.c kern_exec.c kern_lwp.c sysv_shm.c src/sys/sys: proc.h src/sys/uvm: uvm_extern.h uvm_mmap.c uvm_mremap.c Log Message: We never exec(2) with a kernel vmspace, so do not test for that, but instead KASSERT() that we don't. When calculating the load address for the interpreter (e.g. ld.elf_so), we need to take into account wether the exec'd process will run with topdown memory or bottom up. We can not use the current vmspace's flags to test for that, as this happens too early. Luckily the execpack already knows what the new state will be later, so instead of testing the current vmspace, pass the info as additional argument to struct emul e_vm_default_addr. Fix all such functions and adopt all callers. To generate a diff of this commit: cvs rdiff -u -r1.94 -r1.95 src/sys/arch/amd64/amd64/netbsd32_machdep.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/arm32/netbsd32_machdep.c cvs rdiff -u -r1.12 -r1.13 src/sys/arch/mips/mips/netbsd32_machdep.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/riscv/riscv/netbsd32_machdep.c cvs rdiff -u -r1.108 -r1.109 src/sys/arch/sparc64/sparc64/netbsd32_machdep.c cvs rdiff -u -r1.38 -r1.39 src/sys/arch/sparc64/sparc64/svr4_32_machdep.c cvs rdiff -u -r1.108 -r1.109 src/sys/compat/netbsd32/netbsd32.h cvs rdiff -u -r1.14 -r1.15 src/sys/compat/svr4_32/svr4_32_exec.h cvs rdiff -u -r1.32 -r1.33 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c cvs rdiff -u -r1.80 -r1.81 src/sys/kern/exec_elf.c cvs rdiff -u -r1.421 -r1.422 src/sys/kern/kern_exec.c cvs rdiff -u -r1.181 -r1.182 src/sys/kern/kern_lwp.c cvs rdiff -u -r1.130 -r1.131 src/sys/kern/sysv_shm.c cvs rdiff -u -r1.323 -r1.324 src/sys/sys/proc.h cvs rdiff -u -r1.194 -r1.195 src/sys/uvm/uvm_extern.h cvs rdiff -u -r1.153 -r1.154 src/sys/uvm/uvm_mmap.c cvs rdiff -u -r1.17 -r1.18 src/sys/uvm/uvm_mremap.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.