freebsd-nq/sys/kern
Alfred Perlstein 582ec34cd8 Fix a race with free'ing vmspaces at process exit when vmspaces are
shared.

Also introduce vm_endcopy instead of using pointer tricks when
initializing new vmspaces.

The race occured because of how the reference was utilized:
  test vmspace reference,
  possibly block,
  decrement reference

When sharing a vmspace between multiple processes it was possible
for two processes exiting at the same time to test the reference
count, possibly block and neither one free because they wouldn't
see the other's update.

Submitted by: green
2002-02-05 21:23:05 +00:00
..
bus_if.m
device_if.m
genassym.sh brace by itself after function declaration. 2001-12-27 20:16:21 +00:00
imgact_aout.c Make MAXTSIZ, DFLDSIZ, MAXDSIZ, DFLSSIZ, MAXSSIZ, SGROWSIZ loader 2001-10-10 23:06:54 +00:00
imgact_elf.c Remove whitespace at end of line. 2001-12-16 17:21:16 +00:00
imgact_gzip.c Make MAXTSIZ, DFLDSIZ, MAXDSIZ, DFLSSIZ, MAXSSIZ, SGROWSIZ loader 2001-10-10 23:06:54 +00:00
imgact_shell.c Return a more meaningful errno when the length of the interpreter 2001-11-28 03:26:58 +00:00
inflate.c
init_main.c Include sys/_lock.h and sys/_mutex.h to reduce namespace pollution. 2002-01-13 21:37:49 +00:00
init_sysent.c Regenerate to make osigreturn standard. 2002-02-01 17:41:45 +00:00
kern_acct.c o Move suser() calls in kern/ to using suser_xxx() with an explicit 2001-11-01 20:56:57 +00:00
kern_acl.c o Scatter vn_start_write() and vn_finished_write() through ACL code so 2002-02-04 17:58:15 +00:00
kern_cap.c - Attempt to help declutter kern. sysctl by moving security out from 2002-01-16 06:55:30 +00:00
kern_clock.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
kern_condvar.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
kern_conf.c Add a new sysinit SI_SUB_DEVFS. Devfs hooks into the kernel at SI_ORDER_FIRST, 2002-01-09 04:58:49 +00:00
kern_descrip.c Remove bogus assertion in dup2 that can lead to panics when kernel 2002-02-01 19:25:36 +00:00
kern_environment.c Fix an inverted test csae. Success of getenv() is determined by a return 2001-10-25 17:22:31 +00:00
kern_event.c Add entry for EVFILT_NETDEV, which was inadverdently omitted back in Sept. 2002-01-24 17:20:55 +00:00
kern_exec.c o Call the functions registered with at_exec() from exec_new_vmspace() 2002-01-13 19:36:35 +00:00
kern_exit.c Fix a race with free'ing vmspaces at process exit when vmspaces are 2002-02-05 21:23:05 +00:00
kern_fork.c SMP Lock struct file, filedesc and the global file list. 2002-01-13 11:58:06 +00:00
kern_idle.c Modify the critical section API as follows: 2001-12-18 00:27:18 +00:00
kern_intr.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
kern_jail.c - Attempt to help declutter kern. sysctl by moving security out from 2002-01-16 06:55:30 +00:00
kern_kthread.c Use a different mechanism to get the vnlru process to wake up and notice 2001-12-19 01:31:12 +00:00
kern_ktr.c Print parm6 too in the !KTR_EXTEND case. 2002-01-01 21:47:38 +00:00
kern_ktrace.c Fix ktrace enablement/disablement races that can result in a vnode 2001-10-24 01:05:39 +00:00
kern_linker.c - Ensure that linker file id's are unique, rather than blindly 2001-11-18 18:19:35 +00:00
kern_lock.c Fix a BUF_TIMELOCK race against BUF_LOCK and fix a deadlock in vget() 2001-12-20 22:42:27 +00:00
kern_lockf.c make LOCKF_DEBUG kernel option work (sorta) 2001-12-02 12:47:25 +00:00
kern_malloc.c
kern_mib.c - Attempt to help declutter kern. sysctl by moving security out from 2002-01-16 06:55:30 +00:00
kern_module.c
kern_mtxpool.c cast hashing index to (int)(intptr_t) for calculation. 2001-11-19 00:20:36 +00:00
kern_mutex.c Bump the limits for determining if we've held a spinlock too long as they 2002-01-15 14:20:33 +00:00
kern_ntptime.c
kern_physio.c
kern_poll.c Complete the device polling support by adding a thread in charge 2001-12-19 00:53:24 +00:00
kern_proc.c Fix a bug where the mutex name wasn't always displayed for processes in 2002-01-05 17:18:59 +00:00
kern_prot.c - Attempt to help declutter kern. sysctl by moving security out from 2002-01-16 06:55:30 +00:00
kern_random.c
kern_resource.c use mutex pool mutexes for uidinfo locking. 2002-01-20 22:48:49 +00:00
kern_sema.c Repeat after me -- "Use of ANSI string concatenation can be bad." 2001-12-10 05:40:12 +00:00
kern_shutdown.c Allow dump device be configured as early as possible using loader(8) tunable. 2002-01-21 01:16:11 +00:00
kern_sig.c o Revert kern_sig.c#1.143, as cr_cansignal() doesn't currently permit 2002-01-10 01:25:35 +00:00
kern_subr.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
kern_switch.c Modify the critical section API as follows: 2001-12-18 00:27:18 +00:00
kern_sx.c Invert the test of sx_xholder for SX_LOCKED. We need to warn if a 2002-01-18 09:21:15 +00:00
kern_synch.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
kern_syscalls.c
kern_sysctl.c Add code to export and print the description associated to sysctl 2001-12-16 02:55:41 +00:00
kern_tc.c Let the number of timecounters follow hz, otherwise people with 2002-02-05 20:44:56 +00:00
kern_time.c o Modify static settime() to accept the proc * for the process requesting 2001-09-26 19:53:57 +00:00
kern_timeout.c
kern_xxx.c
ksched.c
link_aout.c Since we used '#ifdef __i386__', don't close with '#endif /* !__alpha__ */' 2001-11-24 10:11:14 +00:00
link_elf_obj.c Fix a number of misspellings of "dependency" and "dependencies" in 2001-11-16 21:08:40 +00:00
link_elf.c Fix a number of misspellings of "dependency" and "dependencies" in 2001-11-16 21:08:40 +00:00
linker_if.m Add the sysctl "kern.function_list", which currently exports all 2001-10-30 15:21:45 +00:00
Make.tags.inc Update pathnames for creation of tags file. 2001-12-05 01:23:21 +00:00
Makefile Don't generate <sys/syscalls-hide.h> it has never had any users anywhere in 2001-10-13 09:17:49 +00:00
makeobjops.pl Switch warnings and strict back on again in a way that's compatible 2001-11-16 02:02:42 +00:00
makesyscalls.sh Oops, fix previous commit to not generate a C comment in syscall.mk. 2002-01-30 15:12:12 +00:00
md4c.c
md5c.c
p1003_1b.c
posix4_mib.c
subr_acl_posix1e.c o Scatter vn_start_write() and vn_finished_write() through ACL code so 2002-02-04 17:58:15 +00:00
subr_autoconf.c
subr_blist.c
subr_bus.c Fixed an apparent typo ("-" before ":") and an English error (comma 2001-12-28 18:32:13 +00:00
subr_clist.c
subr_devstat.c
subr_disk.c Don't call cdevsw_add(). 2001-11-04 11:56:22 +00:00
subr_disklabel.c Fix typo so that the delay code introduced in revision 1.60 actually 2002-01-12 02:04:15 +00:00
subr_diskmbr.c Wrap Dangerously Dedicated printf under if (bootverbose) 2001-12-11 05:35:43 +00:00
subr_diskslice.c Uninlined most of the bloated inline functions in <sys/disklabel.h>. Some 2002-01-17 18:33:18 +00:00
subr_eventhandler.c
subr_hints.c
subr_kobj.c
subr_log.c Use the passed in thread to selrecord() instead of curthread. 2001-09-21 22:46:54 +00:00
subr_mbuf.c On the first day of Christmas bde gave to me: 2001-12-23 22:04:08 +00:00
subr_mchain.c Update to C99, s/__FUNCTION__/__func__/. 2001-12-10 05:51:45 +00:00
subr_module.c
subr_param.c Make the 'maxusers 0' auto-sizing code slightly more conservative. Change 2002-01-25 01:54:16 +00:00
subr_pcpu.c Add a per-cpu variable, cpumask, the preshifted equivalent of 1 << cpuid. 2002-01-05 09:35:50 +00:00
subr_power.c Some fix for the recent apm module changes. 2001-11-01 16:34:07 +00:00
subr_prf.c - Attempt to help declutter kern. sysctl by moving security out from 2002-01-16 06:55:30 +00:00
subr_prof.c - Change all callers of addupc_task() to check PS_PROFIL explicitly and 2001-12-18 09:06:10 +00:00
subr_rman.c Add a rman_reserve_resource_bound() function that takes an additional 2001-12-21 21:40:55 +00:00
subr_sbuf.c Yet a bug with extensible sbufs being marked as OVERFLOWED. This time 2002-01-24 20:57:56 +00:00
subr_scanf.c
subr_smp.c Fix forward_roundrobin(). It was mistakenly using the cpu number as 2002-01-05 09:38:47 +00:00
subr_taskqueue.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
subr_trap.c Changed the type of pcb_flags from u_char to u_int and adjusted things. 2002-01-17 17:49:23 +00:00
subr_turnstile.c Bump the limits for determining if we've held a spinlock too long as they 2002-01-15 14:20:33 +00:00
subr_witness.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
subr_xxx.c
sys_generic.c Remove unused variables in select(2) from previous delta. 2002-01-30 19:48:25 +00:00
sys_pipe.c SMP Lock struct file, filedesc and the global file list. 2002-01-13 11:58:06 +00:00
sys_process.c Move procfs_* from procfs_machdep.c into sys_process.c, and rename them to 2001-10-21 23:57:24 +00:00
sys_socket.c SMP Lock struct file, filedesc and the global file list. 2002-01-13 11:58:06 +00:00
syscalls.c Regenerate to make osigreturn standard. 2002-02-01 17:41:45 +00:00
syscalls.master Made osigreturn(2) standard so that SYS_osigreturn can be used in the 2002-02-01 17:27:14 +00:00
sysv_ipc.c Eliminate semexit_hook using at_exit(9) and rm_at_exit(9). 2001-12-30 18:55:09 +00:00
sysv_msg.c Make AIO a loadable module. 2001-12-29 07:13:47 +00:00
sysv_sem.c Eliminate semexit_hook using at_exit(9) and rm_at_exit(9). 2001-12-30 18:55:09 +00:00
sysv_shm.c Make AIO a loadable module. 2001-12-29 07:13:47 +00:00
tty_compat.c
tty_conf.c
tty_cons.c Fix boot -p for DDBless kernels 2001-12-11 10:21:26 +00:00
tty_pty.c o Move suser() calls in kern/ to using suser_xxx() with an explicit 2001-11-01 20:56:57 +00:00
tty_subr.c
tty_tty.c
tty.c utime/stime.tv_sec are elapsed times, not relative to 1970. We can 2001-11-17 00:26:57 +00:00
uipc_accf.c
uipc_domain.c Update the comment about System initialization to reflect the use of 2001-12-08 04:20:54 +00:00
uipc_mbuf2.c
uipc_mbuf.c Get rid of the twisted MFREE() macro entirely. 2002-02-05 02:00:56 +00:00
uipc_proto.c
uipc_sockbuf.c Get rid of the twisted MFREE() macro entirely. 2002-02-05 02:00:56 +00:00
uipc_socket2.c Get rid of the twisted MFREE() macro entirely. 2002-02-05 02:00:56 +00:00
uipc_socket.c Get rid of the twisted MFREE() macro entirely. 2002-02-05 02:00:56 +00:00
uipc_syscalls.c Fixed bug in calculation of amount of file to send when nbytes !=0 and 2002-01-22 17:32:10 +00:00
uipc_usrreq.c Remove a bogus FILEDESC_UNLOCK. 2002-01-14 19:45:03 +00:00
vfs_acl.c o Scatter vn_start_write() and vn_finished_write() through ACL code so 2002-02-04 17:58:15 +00:00
vfs_aio.c o Remove the unused vestiges of JOBST_JOBQPROC and 2002-01-20 18:59:58 +00:00
vfs_bio.c GC P_BUFEXHAUST leftovers, we've had a new mechanism to avoid buffer 2002-01-31 18:39:44 +00:00
vfs_cache.c Include sys/_lock.h and sys/_mutex.h to reduce namespace pollution. 2002-01-13 21:37:49 +00:00
vfs_cluster.c Implement IO_NOWDRAIN and B_NOWDRAIN - prevents the buffer cache from blocking 2001-11-05 18:48:54 +00:00
vfs_conf.c Remove the use of _PATH_DEV in the example. 2001-11-24 01:34:12 +00:00
vfs_default.c Fix incorrect double-termination of vm_object. When a vm_object is 2001-10-23 01:23:41 +00:00
vfs_export.c
vfs_extattr.c Don't recurse on filedesc lock in chroot_refuse_vdir_fds(). 2002-02-01 18:27:16 +00:00
vfs_init.c
vfs_lookup.c Include sys/_lock.h and sys/_mutex.h to reduce namespace pollution. 2002-01-13 21:37:49 +00:00
vfs_mount.c Remove the use of _PATH_DEV in the example. 2001-11-24 01:34:12 +00:00
vfs_subr.c In the routines vrele() and vput(), we must lock the vnode and 2002-02-02 01:49:18 +00:00
vfs_syscalls.c Don't recurse on filedesc lock in chroot_refuse_vdir_fds(). 2002-02-01 18:27:16 +00:00
vfs_vnops.c Make st_blksize default to PAGE_SIZE instead of zero. 2002-01-25 16:39:57 +00:00
vnode_if.pl Throw the $FreeBSD$s back in, properly escaping them. 2002-01-04 05:27:47 +00:00
vnode_if.src