freebsd-dev/sys/kern
John Baldwin 70f3778827 Replace the kld_mtx mutex with a kld_sx sx lock and expand it's scope to
protect all linker-related data structures including the contents of
linker file objects and the any linker class data as well. Considering how
rarely the linker is used I just went with the simple solution of
single-threading the whole thing rather than expending a lot of effor on
something more fine-grained and complex.  Giant is still explicitly
acquired while registering and deregistering sysctl's as well as in the
elf linker class while calling kmupetext().  The rest of the linker runs
without Giant unless it has to acquire Giant while loading files from a
non-MPSAFE filesystem.
2006-06-21 20:42:08 +00:00
..
bus_if.m
clock_if.m
cpufreq_if.m
device_if.m
genassym.sh
imgact_aout.c Correct two vm object reference leaks in error cases. 2006-03-16 08:51:59 +00:00
imgact_elf32.c
imgact_elf64.c
imgact_elf.c Avoid a vm object reference leak in a rarely used code path. 2006-01-21 20:11:49 +00:00
imgact_gzip.c Maintain the lock on the vnode for most of exec_elfN_imgact(). 2005-12-24 04:57:50 +00:00
imgact_shell.c Fix a panic which could occur parsing #!-lines in a shell-script. If the 2005-06-19 02:21:03 +00:00
inflate.c Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
init_main.c The VERBOSE_SYSINIT stuff sees the DDB define a lot better if we include 2006-05-14 07:11:28 +00:00
init_sysent.c Regenerate. 2006-03-23 08:48:37 +00:00
kern_acct.c Audit path passed to the acct() system call. 2006-06-05 13:02:34 +00:00
kern_acl.c Implement new world order in VFS locking for ACLs. This will remove the 2005-09-17 22:01:14 +00:00
kern_alq.c - Conditionalize Giant around VFS operations for ALQ, ktrace, and 2006-03-28 21:30:22 +00:00
kern_clock.c Unexpand an instance of TAILQ_EMPTY() 2006-06-14 03:14:26 +00:00
kern_condvar.c Fix a sleep queue race for KSE thread. 2006-02-23 00:13:58 +00:00
kern_conf.c Make the printfs relating to purging threads from a device less intrusive. 2006-05-17 06:37:14 +00:00
kern_context.c
kern_cpu.c - Print message about cpufreq and timecounter TSC 2006-03-03 02:06:04 +00:00
kern_descrip.c Mark fgetsock() and fputsock() as depcrecated: callers should rely on 2006-04-01 11:09:54 +00:00
kern_environment.c Fix memory leak introduced in previous revision. 2006-03-15 19:23:08 +00:00
kern_event.c Use fget() in kqueue_register() instead of doing all the work by hand. 2006-06-12 21:46:23 +00:00
kern_exec.c In execve(), audit the path name being executed. In the future, it 2006-05-28 08:28:47 +00:00
kern_exit.c Close race between vmspace_exitfree() and exit1() and races between 2006-05-29 21:28:56 +00:00
kern_fork.c Fix a race between file operations and rfork(RFCFDG) by parking 2006-03-15 23:24:14 +00:00
kern_idle.c Divorce critical sections from spinlocks. Critical sections as denoted by 2005-04-04 21:53:56 +00:00
kern_intr.c Change msleep() and tsleep() to not alter the calling thread's priority 2006-04-17 18:20:38 +00:00
kern_jail.c Push Giant down in jails. Pass the MPSAFE flag to NDINIT, and keep track 2005-09-28 00:30:56 +00:00
kern_kse.c Close some races between procfs/ptrace and exit(2): 2006-02-22 18:57:50 +00:00
kern_kthread.c Don't do a PHOLD() in kthread_create() w/o a matching PRELE() in 2006-02-22 17:21:45 +00:00
kern_ktr.c Whitespace. 2006-01-27 23:06:08 +00:00
kern_ktrace.c - Conditionalize Giant around VFS operations for ALQ, ktrace, and 2006-03-28 21:30:22 +00:00
kern_linker.c Replace the kld_mtx mutex with a kld_sx sx lock and expand it's scope to 2006-06-21 20:42:08 +00:00
kern_lock.c - Remove and unused include. 2005-12-23 21:32:40 +00:00
kern_lockf.c Print name of device instead of useless major/minor numbers. 2005-03-29 08:13:01 +00:00
kern_mac.c Don't call vn_finished_write() if vn_start_write() failed. 2006-03-19 20:43:07 +00:00
kern_malloc.c Fix bug in malloc_uninit(): 2006-03-03 22:36:52 +00:00
kern_mbuf.c Move some functions and definitions from uipc_socket2.c to uipc_socket.c: 2006-06-10 14:34:07 +00:00
kern_mib.c mp_ncpus is always (properly) initialized, even on UP kernels, so just use it. 2005-08-21 18:03:31 +00:00
kern_module.c o Expand an exclusive lock scope to prevent a race between two 2006-06-15 08:53:09 +00:00
kern_mtxpool.c
kern_mutex.c Bah, fix fat finger in last. Invert the ~ on MTX_FLAGMASK as it's 2006-06-03 21:11:33 +00:00
kern_ntptime.c Explicitly acquire Giant around the ntp_gettime() and assert it in the 2005-05-28 14:34:41 +00:00
kern_physio.c
kern_pmc.c Fix -Wundef. 2005-12-04 02:12:43 +00:00
kern_poll.c Change msleep() and tsleep() to not alter the calling thread's priority 2006-04-17 18:20:38 +00:00
kern_proc.c CPU time accounting speedup (step 2) 2006-02-11 09:33:07 +00:00
kern_prot.c Audit the arguments (user/group IDs) for the system calls that set these IDs. 2006-02-06 00:32:33 +00:00
kern_resource.c Go over calcru and friends once more. 2006-03-11 10:48:19 +00:00
kern_rwlock.c Implement rw_try_upgrade() and rw_downgrade(). rw_try_upgrade() makes a 2006-04-19 21:06:52 +00:00
kern_sema.c
kern_shutdown.c On shutdown try to turn off all swap devices. This way GEOM providers are 2006-04-10 10:03:41 +00:00
kern_sig.c Remove various bits of conditional Alpha code and fixup a few comments. 2006-05-12 05:04:46 +00:00
kern_subr.c
kern_switch.c Add scheduler CORE, the work I have done half a year ago, recent, 2006-06-13 13:12:56 +00:00
kern_sx.c Add a new file (kern/subr_lock.c) for holding code related to struct 2006-01-17 16:55:17 +00:00
kern_synch.c Use scheduler API sched_relinquish() to implement yield() syscall. 2006-06-15 06:41:57 +00:00
kern_syscalls.c
kern_sysctl.c Kill an XXX remark that has been untrue since rev. 1.150 of this file. 2006-06-16 07:36:18 +00:00
kern_tc.c Add a kern.timecounter.tc sysctl tree that contains the mask, 2006-06-16 20:29:05 +00:00
kern_thr.c Change msleep() and tsleep() to not alter the calling thread's priority 2006-04-17 18:20:38 +00:00
kern_thread.c Rethink it a bit, if there is a STOP flag, don't bother to resume other 2006-03-21 10:05:15 +00:00
kern_time.c Let kernel POSIX timer code and mqueue code to use integer as a resource 2006-03-01 06:29:34 +00:00
kern_timeout.c Use the recently added msleep_spin() function to simplify the 2006-02-23 19:13:12 +00:00
kern_umtx.c Move flag TDF_UMTXQ into structure umtxq, this eliminates the requirement 2006-05-18 08:43:46 +00:00
kern_uuid.c Add parse_uuid() that creates a binary representation of an UUID from 2005-10-07 13:37:10 +00:00
kern_xxx.c
ksched.c Add scheduler API sched_relinquish(), the API is used to implement 2006-06-15 06:37:39 +00:00
link_elf_obj.c Replace the kld_mtx mutex with a kld_sx sx lock and expand it's scope to 2006-06-21 20:42:08 +00:00
link_elf.c Replace the kld_mtx mutex with a kld_sx sx lock and expand it's scope to 2006-06-21 20:42:08 +00:00
linker_if.m
Make.tags.inc
Makefile Add a 'sysent' target that depends on the various files built from 2005-07-13 20:50:17 +00:00
makesyscalls.sh Introduce a new field in the syscalls.master file format to hold the 2005-05-30 15:09:18 +00:00
md4c.c
md5c.c Fix a panic on sparc64 related to inproper aligment - we cannot assume, 2006-03-30 18:45:50 +00:00
p1003_1b.c Don't allow non-root user to set a scheduler policy, otherwise this could 2006-05-21 00:40:38 +00:00
posix4_mib.c
sched_4bsd.c Add scheduler API sched_relinquish(), the API is used to implement 2006-06-15 06:37:39 +00:00
sched_core.c Add scheduler API sched_relinquish(), the API is used to implement 2006-06-15 06:37:39 +00:00
sched_ule.c Add scheduler API sched_relinquish(), the API is used to implement 2006-06-15 06:37:39 +00:00
serdev_if.m MFp4: Add the ipend() method to the serdev I/F to allow umbrella 2006-04-23 22:12:39 +00:00
subr_acl_posix1e.c Implement new world order in VFS locking for ACLs. This will remove the 2005-09-17 22:01:14 +00:00
subr_autoconf.c
subr_blist.c
subr_bus.c Whoops, revert accidental commit. 2006-06-21 17:48:59 +00:00
subr_clist.c
subr_clock.c Remove more straggling CPU_ macro references 2006-05-11 17:53:26 +00:00
subr_devstat.c - Remove two mtx_asserts that can incorrectly trigger if 2005-05-03 10:58:05 +00:00
subr_disk.c Unexpand TAILQ_FIRST(foo) == NULL to TAILQ_EMPTY(foo). 2006-05-29 05:43:26 +00:00
subr_eventhandler.c
subr_firmware.c - Push Giant down into linker_reference_module(). 2006-06-20 20:54:13 +00:00
subr_hints.c The resource_xxx routines in subr_hints.c are called before and after the 2005-07-31 10:46:55 +00:00
subr_kdb.c Add a funny sysctl: debug.kdb.trap_code . 2006-06-18 12:27:59 +00:00
subr_kobj.c Increment kobj_lookup_misses on a miss rather than decrementing it. 2005-12-29 18:00:42 +00:00
subr_lock.c Add a basic reader/writer lock implementation to the kernel. This 2006-01-27 23:13:26 +00:00
subr_log.c Use dynamic major number allocation. 2005-02-27 22:02:03 +00:00
subr_mbpool.c
subr_mchain.c Change API of mb_copy_t in libmchain so that netsmb can handle 2005-07-29 13:22:37 +00:00
subr_module.c
subr_msgbuf.c
subr_param.c Partially revert revision 1.66, which contained a change that did not 2005-10-14 19:15:10 +00:00
subr_pcpu.c Fix 'show allpcpu' ddb command on non-x86. CPU IDs are in the range 0 .. 2005-11-03 21:06:29 +00:00
subr_power.c General consensus is that it would be even better to run this in a 2005-11-09 16:22:56 +00:00
subr_prf.c Implement printf 'X' conversion for both libstand and kernel. 2006-03-09 22:37:34 +00:00
subr_prof.c Change the addupc_*() functions to use the uintfptr_t type for pc rather 2005-12-16 22:08:32 +00:00
subr_rman.c Add a convenience function rman_init_from_resource for initializing 2006-06-12 04:06:21 +00:00
subr_rtc.c Remove more straggling CPU_ macro references 2006-05-11 17:53:26 +00:00
subr_sbuf.c Make sbuf_copyin() return the number of bytes copied on success. 2005-12-23 11:49:53 +00:00
subr_scanf.c
subr_sleepqueue.c Print td_name instead of p_comm if td_name is non-empty for 2006-04-21 20:40:43 +00:00
subr_smp.c Rename the KDB_STOP_NMI kernel option to STOP_NMI and make it apply to all 2005-10-24 21:04:19 +00:00
subr_stack.c Correct typos 2006-05-28 22:15:28 +00:00
subr_taskqueue.c When starting up threads in taskqueue_start_threads create them 2006-05-24 22:11:07 +00:00
subr_trap.c Test before modifying p_sflag to avoid unconditionally cache line 2006-02-10 14:59:16 +00:00
subr_turnstile.c Add some new commands to hopefully make it easier to diagnose lock-related 2006-04-25 20:28:17 +00:00
subr_unit.c Remove debugging printfs. 2005-03-14 06:51:29 +00:00
subr_witness.c Use db_lookup_thread() to lookup the thread for the passed in address 2006-04-25 20:24:23 +00:00
sys_generic.c Return error from fget_write() rather than hardcoding EBADF now that 2006-01-06 16:34:22 +00:00
sys_pipe.c Move some functions and definitions from uipc_socket2.c to uipc_socket.c: 2006-06-10 14:34:07 +00:00
sys_process.c Close some races between procfs/ptrace and exit(2): 2006-02-22 18:57:50 +00:00
sys_socket.c Introduce three additional MAC Framework and MAC Policy entry points to 2005-04-16 18:46:29 +00:00
syscalls.c Regenerate. 2006-03-23 08:48:37 +00:00
syscalls.master Revert previous commit at davidxu's insistance. Instead, use __DECONST 2006-03-28 14:32:38 +00:00
sysv_ipc.c
sysv_msg.c Move some functions and definitions from uipc_socket2.c to uipc_socket.c: 2006-06-10 14:34:07 +00:00
sysv_sem.c Move some functions and definitions from uipc_socket2.c to uipc_socket.c: 2006-06-10 14:34:07 +00:00
sysv_shm.c Move some functions and definitions from uipc_socket2.c to uipc_socket.c: 2006-06-10 14:34:07 +00:00
tty_compat.c Move the old BSD4.3 tty compatibility from (!BURN_BRIDGES && COMPAT_43) 2006-01-10 09:19:10 +00:00
tty_conf.c
tty_cons.c If the console has no cncheckc method, use cngetc instead. 2006-05-26 11:00:20 +00:00
tty_pts.c Also check use_pty in the ptmx clone lookup; this means that when ptmx 2006-04-28 21:39:57 +00:00
tty_pty.c Don't destroy the slave /dev entry until someone figures out why devfs seems 2006-02-02 20:35:45 +00:00
tty_subr.c
tty_tty.c Merge the dev_clone and dev_clone_cred event handlers into a single 2005-08-08 19:55:32 +00:00
tty.c Move the old BSD4.3 tty compatibility from (!BURN_BRIDGES && COMPAT_43) 2006-01-10 09:19:10 +00:00
uipc_accf.c o setsockopt(2) cannot remove accept filter. [1] 2005-06-11 11:59:48 +00:00
uipc_cow.c Previously, nothing prevented the page that was returned by pmap_extract() 2005-10-23 07:41:56 +00:00
uipc_domain.c Allow for nmbclusters and maxsockets to be increased via sysctl. 2006-04-21 09:25:40 +00:00
uipc_mbuf2.c Define four constants, MBUF_{,MEM,CLUSTER,PACKET,TAG}_MEM_NAME, which 2005-07-17 14:04:03 +00:00
uipc_mbuf.c Move some functions and definitions from uipc_socket2.c to uipc_socket.c: 2006-06-10 14:34:07 +00:00
uipc_mqueue.c Change msleep() and tsleep() to not alter the calling thread's priority 2006-04-17 18:20:38 +00:00
uipc_proto.c Remove UNIX domain socket raw socket support. This feature is documented 2006-04-09 16:29:47 +00:00
uipc_sem.c Convert remaining functions to ANSI C function declarations. 2006-01-22 00:30:46 +00:00
uipc_sockbuf.c Remove sbinsertoob(), sbinsertoob_locked(). They violate (and have 2006-06-17 22:48:34 +00:00
uipc_socket2.c Remove sbinsertoob(), sbinsertoob_locked(). They violate (and have 2006-06-17 22:48:34 +00:00
uipc_socket.c When retrieving SO_ERROR via getsockopt(), hold the socket lock around 2006-06-18 19:02:49 +00:00
uipc_syscalls.c Properly cast the values of valsize (the size of the value passed in) 2006-06-20 12:36:40 +00:00
uipc_usrreq.c Remove unused (and ifdef'd) unp_abort() and unp_drain(). 2006-06-16 22:11:49 +00:00
vfs_acl.c Implement new world order in VFS locking for ACLs. This will remove the 2005-09-17 22:01:14 +00:00
vfs_aio.c Make lio ident more consistant with aio ident. 2006-06-02 17:45:48 +00:00
vfs_bio.c - Properly check against B_DELWRI and B_NEEDSGIANT. This check was 2006-04-04 06:44:21 +00:00
vfs_cache.c Axe Giant from vn_fullpath(9). The vnode -> pathname lookup should be 2006-06-16 05:09:28 +00:00
vfs_cluster.c Remove unused leaked debug function prototype. 2006-03-21 01:04:24 +00:00
vfs_default.c - GETWRITEMOUNT now returns a referenced mountpoint to prevent its 2006-03-31 03:52:24 +00:00
vfs_export.c Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
vfs_extattr.c Audit command, uid arguments for quotactl(). 2006-06-05 13:34:23 +00:00
vfs_hash.c In vfs_hash_get(): mount point should never be changed 2006-04-18 08:05:08 +00:00
vfs_init.c Use kern_kldload() and kern_kldunload() to load and unload modules when 2006-06-13 21:36:23 +00:00
vfs_lookup.c Lock giant when assigning ni_vp and keep vfslocked state valid. 2006-04-29 07:13:49 +00:00
vfs_mount.c Audit some arguments to nmount(), mount(), umount(). 2006-06-05 15:32:07 +00:00
vfs_subr.c Fix the LOR that occurs when the MAC compiled into the kernel 2006-06-08 07:55:10 +00:00
vfs_syscalls.c Audit command, uid arguments for quotactl(). 2006-06-05 13:34:23 +00:00
vfs_vnops.c Allow concurrent read(2)/readv(2) access to a file. 2006-05-16 07:50:54 +00:00
vnode_if.src Remove two locking assertion entries that: 2006-05-31 14:06:06 +00:00