freebsd-dev/sys/i386/ibcs2
Konstantin Belousov 89b57fcf01 Fix for the panic("vm_thread_new: kstack allocation failed") and
silent NULL pointer dereference in the i386 and sparc64 pmap_pinit()
when the kmem_alloc_nofault() failed to allocate address space. Both
functions now return error instead of panicing or dereferencing NULL.

As consequence, vmspace_exec() and vmspace_unshare() returns the errno
int. struct vmspace arg was added to vm_forkproc() to avoid dealing
with failed allocation when most of the fork1() job is already done.

The kernel stack for the thread is now set up in the thread_alloc(),
that itself may return NULL. Also, allocation of the first process
thread is performed in the fork1() to properly deal with stack
allocation failure. proc_linkup() is separated into proc_linkup()
called from fork1(), and proc_linkup0(), that is used to set up the
kernel process (was known as swapper).

In collaboration with:	Peter Holm
Reviewed by:	jhb
2007-11-05 11:36:16 +00:00
..
coff.h
ibcs2_dirent.h /* -> /*- for license, add FreeBSD tag 2005-01-06 23:22:04 +00:00
ibcs2_errno.c /* -> /*- for license, add FreeBSD tag 2005-01-06 23:22:04 +00:00
ibcs2_errno.h /* -> /*- for license, add FreeBSD tag 2005-01-06 23:22:04 +00:00
ibcs2_fcntl.c - Implement ibcs2_emul_find() using kern_alternate_path(). This changes 2005-02-07 22:02:18 +00:00
ibcs2_fcntl.h /* -> /*- for license, add FreeBSD tag 2005-01-06 23:22:04 +00:00
ibcs2_ioctl.c /* -> /*- for license, add FreeBSD tag 2005-01-06 23:22:04 +00:00
ibcs2_ioctl.h
ibcs2_ipc.c - Split the IBCS2 ipc foosys() system calls up into subfunctions matching 2006-07-08 19:54:12 +00:00
ibcs2_ipc.h Use ibsc2_key_t rather than key_t. 2006-07-08 19:52:49 +00:00
ibcs2_isc_syscall.h Regen for MPSAFE flag removal. 2006-07-28 19:08:37 +00:00
ibcs2_isc_sysent.c Regen to propogate <prefix>_AUE_<mumble> changes as well as the earlier 2006-08-15 17:37:01 +00:00
ibcs2_isc.c Now that all system calls are MPSAFE, retire the SYF_MPSAFE flag used to 2006-07-28 19:05:28 +00:00
ibcs2_misc.c Merge first in a series of TrustedBSD MAC Framework KPI changes 2007-10-24 19:04:04 +00:00
ibcs2_mount.h /* -> /*- for license, add FreeBSD tag 2005-01-06 23:22:04 +00:00
ibcs2_msg.c Use the regular poll(2) function to implement poll(2) for the IBCS2 compat 2006-07-06 21:29:05 +00:00
ibcs2_other.c Use kern_connect() in spx_open() to avoid the need for the stackgap. I 2006-07-08 20:05:04 +00:00
ibcs2_proto.h Merge posix4/* into normal kernel hierarchy. 2006-11-11 16:26:58 +00:00
ibcs2_signal.c Backout previous change (disabling of security checks for signals delivered 2005-02-13 17:37:20 +00:00
ibcs2_signal.h /* -> /*- for license, add FreeBSD tag 2005-01-06 23:22:04 +00:00
ibcs2_socksys.c Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
ibcs2_socksys.h /* -> /*- for license, add FreeBSD tag 2005-01-06 23:22:04 +00:00
ibcs2_stat.c - Implement ibcs2_emul_find() using kern_alternate_path(). This changes 2005-02-07 22:02:18 +00:00
ibcs2_stat.h /* -> /*- for license, add FreeBSD tag 2005-01-06 23:22:04 +00:00
ibcs2_statfs.h /* -> /*- for license, add FreeBSD tag 2005-01-06 23:22:04 +00:00
ibcs2_stropts.h /* -> /*- for license, add FreeBSD tag 2005-01-06 23:22:04 +00:00
ibcs2_syscall.h Regen for MPSAFE flag removal. 2006-07-28 19:08:37 +00:00
ibcs2_sysent.c Regen to propogate <prefix>_AUE_<mumble> changes as well as the earlier 2006-08-15 17:37:01 +00:00
ibcs2_sysi86.c Sweep kernel replacing suser(9) calls with priv(9) calls, assigning 2006-11-06 13:42:10 +00:00
ibcs2_sysvec.c Use FOREACH_PROC_IN_SYSTEM instead of using its unrolled form. 2007-01-17 15:05:52 +00:00
ibcs2_termios.h /* -> /*- for license, add FreeBSD tag 2005-01-06 23:22:04 +00:00
ibcs2_time.h /* -> /*- for license, add FreeBSD tag 2005-01-06 23:22:04 +00:00
ibcs2_types.h /* -> /*- for license, add FreeBSD tag 2005-01-06 23:22:04 +00:00
ibcs2_unistd.h /* -> /*- for license, add FreeBSD tag 2005-01-06 23:22:04 +00:00
ibcs2_ustat.h /* -> /*- for license, add FreeBSD tag 2005-01-06 23:22:04 +00:00
ibcs2_util.c - Implement ibcs2_emul_find() using kern_alternate_path(). This changes 2005-02-07 22:02:18 +00:00
ibcs2_util.h Retire the stackgap macros from ibcs2 as they are no longer used. Push 2006-07-10 17:59:26 +00:00
ibcs2_utime.h /* -> /*- for license, add FreeBSD tag 2005-01-06 23:22:04 +00:00
ibcs2_utsname.h /* -> /*- for license, add FreeBSD tag 2005-01-06 23:22:04 +00:00
ibcs2_xenix_syscall.h Regen for MPSAFE flag removal. 2006-07-28 19:08:37 +00:00
ibcs2_xenix_sysent.c Regen to propogate <prefix>_AUE_<mumble> changes as well as the earlier 2006-08-15 17:37:01 +00:00
ibcs2_xenix.c Remove pad argument from ftruncate wrapper. Oops. 2007-07-05 05:32:44 +00:00
ibcs2_xenix.h Merge posix4/* into normal kernel hierarchy. 2006-11-11 16:26:58 +00:00
imgact_coff.c Fix for the panic("vm_thread_new: kstack allocation failed") and 2007-11-05 11:36:16 +00:00
Makefile Correct help line: list targets, not names of files generated by targets 2006-02-05 23:25:19 +00:00
syscalls.conf - Remove unused sysvec variables from various syscalls.conf. 2006-08-15 17:25:55 +00:00
syscalls.isc Now that all system calls are MPSAFE, retire the SYF_MPSAFE flag used to 2006-07-28 19:05:28 +00:00
syscalls.isc.conf - Remove unused sysvec variables from various syscalls.conf. 2006-08-15 17:25:55 +00:00
syscalls.master Now that all system calls are MPSAFE, retire the SYF_MPSAFE flag used to 2006-07-28 19:05:28 +00:00
syscalls.xenix Now that all system calls are MPSAFE, retire the SYF_MPSAFE flag used to 2006-07-28 19:05:28 +00:00
syscalls.xenix.conf - Remove unused sysvec variables from various syscalls.conf. 2006-08-15 17:25:55 +00:00