freebsd-nq/sys/kern
Peter Wemm 461b36ab54 Update userref handling after discussion with submitter of previous
patch.  lf can't be dereferenced after the unload attempt, in case it
was freed.  Instead, decrement first and back it out if the unload failed.
This should be relatively immune to races caused by the user since the
userref count will be zero for the duration of the actual unloading and
will stop further kldunload attempts.

Submitted by:   Ustimenko Semen <semen@iclub.nsu.ru>
1999-01-23 03:45:22 +00:00
..
bus_if.m My changes to the new device interface: 1998-11-14 21:58:51 +00:00
device_if.m My changes to the new device interface: 1998-11-14 21:58:51 +00:00
imgact_aout.c Fixed bitrot in a comment. Fixed some style bugs. 1999-01-01 14:41:51 +00:00
imgact_elf.c Reviewed by: Luoqi Chen, Jordan Hubbard 1998-12-19 02:55:34 +00:00
imgact_gzip.c *gulp*. Jordan specifically OK'ed this.. 1998-10-16 03:55:01 +00:00
imgact_shell.c *gulp*. Jordan specifically OK'ed this.. 1998-10-16 03:55:01 +00:00
inflate.c kzipboot uses kern/inflate.c outside the kernel by providing its own 1998-11-10 09:08:49 +00:00
init_main.c Changes to the LINUX_THREADS support to only allocate extra memory for 1999-01-07 21:23:50 +00:00
init_sysent.c regenerate (+kldsym) 1998-11-11 12:57:05 +00:00
kern_acct.c Moved limit frobbing (and the resulting limcopy()) that occurs for 1998-06-05 21:44:20 +00:00
kern_clock.c Make the previous behaviour the default, add a sysctl which you 1998-11-29 20:31:02 +00:00
kern_conf.c My changes to the new device interface: 1998-11-14 21:58:51 +00:00
kern_descrip.c Split DIAGNOSTIC -> DIAGNOSTIC, INVARIANTS, and INVARIANT_SUPPORT as 1999-01-08 17:31:30 +00:00
kern_environment.c Add getenv_int(), specifically for retrieving integer values from kernel 1999-01-15 17:25:02 +00:00
kern_exec.c Add (but don't activate) code for a special VM option to make 1999-01-06 23:05:42 +00:00
kern_exit.c Changes to the LINUX_THREADS support to only allocate extra memory for 1999-01-07 21:23:50 +00:00
kern_fork.c Changes to the LINUX_THREADS support to only allocate extra memory for 1999-01-07 21:23:50 +00:00
kern_intr.c add #include <sys/kernel.h> where it's needed by MALLOC_DEFINE() 1998-11-10 09:16:29 +00:00
kern_ktrace.c In ktrwrite, use uio_procp = curproc vs 0 1998-12-10 01:47:41 +00:00
kern_linker.c Update userref handling after discussion with submitter of previous 1999-01-23 03:45:22 +00:00
kern_lkm.c - Move lkmnosys() to kern_syscall.c 1999-01-17 19:00:58 +00:00
kern_lock.c Add 'options DEBUG_LOCKS', which stores extra information in struct 1999-01-20 14:49:12 +00:00
kern_lockf.c add #include <sys/kernel.h> where it's needed by MALLOC_DEFINE() 1998-11-10 09:16:29 +00:00
kern_malloc.c Allow VM_KMEM_SIZE to be tuned from the kernel environment. This tuning 1999-01-21 21:54:32 +00:00
kern_mib.c - hw.machine_arch returns cpu architecture type. 1998-08-31 08:41:58 +00:00
kern_module.c Remove a diagnostic message left in by mistake. 1999-01-09 16:50:04 +00:00
kern_ntptime.c Introduce std_pps_ioctl() to automagically DTRT. 1998-06-13 09:30:26 +00:00
kern_physio.c This is a rather large commit that encompasses the new swapper, 1999-01-21 08:29:12 +00:00
kern_proc.c Re-enable the options in ps(1) that were disabled with the Linux 1999-01-13 03:11:43 +00:00
kern_prot.c getpgid() and getsid() were doing a comparision rather than an assignment, 1998-12-13 07:07:51 +00:00
kern_random.c Converted add_interrupt_randomness() to take a `void *' arg. Rewrote 1998-06-21 11:33:32 +00:00
kern_resource.c Fixed double counting of runtime after a process exits. The last 1998-07-27 19:16:21 +00:00
kern_shutdown.c Improved DDB_UNATTENDED behaviour. From the submitter: 1998-12-28 23:03:00 +00:00
kern_sig.c KNFize, by bde. 1999-01-10 01:58:29 +00:00
kern_subr.c KNFize, by bde. 1999-01-10 01:58:29 +00:00
kern_synch.c KNFize, by bde. 1999-01-10 01:58:29 +00:00
kern_syscalls.c Move lkmnosys() from kern_lkm.c to here. 1999-01-17 18:58:04 +00:00
kern_sysctl.c Back out last change to sysctl. 1999-01-10 07:45:33 +00:00
kern_tc.c Make the previous behaviour the default, add a sysctl which you 1998-11-29 20:31:02 +00:00
kern_threads.c Wrap two macros into do { ... } while (0), and fix the way they're used 1998-12-15 17:38:33 +00:00
kern_time.c Nitpicking and dusting performed on a train. Removes trivial warnings 1998-10-25 17:44:59 +00:00
kern_timeout.c Fixed stale references to hzto() in comments. 1998-05-17 20:08:05 +00:00
kern_xxx.c Change various syscalls to use size_t arguments instead of u_int. 1998-08-24 08:39:39 +00:00
ksched.c 1. Add new defs for mins and maxs for the POSIX flavor priorities. They 1998-05-19 21:11:53 +00:00
link_aout.c The handle for the kernel is common. With this fix, ELF kernels can load 1998-11-04 15:20:58 +00:00
link_elf_obj.c When loading something that has undefined symbols, it would be helpful to 1998-12-31 09:17:20 +00:00
link_elf.c When loading something that has undefined symbols, it would be helpful to 1998-12-31 09:17:20 +00:00
Make.tags.inc Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
makedevops.pl "Here is the most recent version of makedevops.pl. I've made the parsing 1998-11-08 18:33:11 +00:00
makedevops.sh Use the interface name as well as the method name when creating the method 1998-10-15 09:50:45 +00:00
Makefile Remove bogus architectures to allow make tags to work. 1996-03-31 18:53:43 +00:00
makesyscalls.sh Add trailing newline to sys/syscall.mk so that diff doesn't choke on it. 1998-06-28 10:01:52 +00:00
md5c.c This commit fixes various 64bit portability problems required for 1998-06-07 17:13:14 +00:00
p1003_1b.c Set PAGE_SIZE for _SC_PAGESIZE sysconf(). 1998-06-01 21:54:43 +00:00
posix4_mib.c Finish _POSIX_PRIORITY_SCHEDULING. Needs P1003_1B and 1998-03-28 11:51:01 +00:00
subr_autoconf.c Split DIAGNOSTIC -> DIAGNOSTIC, INVARIANTS, and INVARIANT_SUPPORT as 1999-01-08 17:31:30 +00:00
subr_blist.c Add new blist module - radix tree based bitmap allocator with 1999-01-21 08:11:06 +00:00
subr_bus.c A few small improvements to the bus code: 1999-01-16 17:44:09 +00:00
subr_clist.c Cast pointers to uintptr_t/intptr_t instead of to u_long/long, 1998-07-15 02:32:35 +00:00
subr_devstat.c Fix some 64bit truncation problems which crept into SYSCTL_LONG() with the 1998-12-27 18:03:29 +00:00
subr_disklabel.c Fix -Wuninitialized warning regarding zero-length var-args ctl element. 1998-12-14 05:37:37 +00:00
subr_diskmbr.c Examine all occurrences of sprintf(), strcat(), and str[n]cpy() 1998-12-04 22:54:57 +00:00
subr_diskslice.c Rename one of the two devfs_link's to devfs_makelink. 1998-12-10 19:57:01 +00:00
subr_dkbad.c In all such uses of struct buf: 's/b_un.b_addr/b_data/g' 1997-12-02 21:07:20 +00:00
subr_log.c The "easy" fixes for compiling the kernel -Wunused: remove unreferenced static 1998-12-07 21:58:50 +00:00
subr_module.c Align to sizeof(long) rather than sizeof(int32_t). It needs to be 1998-10-14 05:07:23 +00:00
subr_param.c Fixed problems with kernel config file overrides of sysv semaphore 1998-12-14 08:34:55 +00:00
subr_prf.c Add snprintf(3) and vsnprintf(3) capability to the kernel. 1998-12-03 04:45:57 +00:00
subr_prof.c Fixed bogotification of pseudocode for syscall args by rev.1.53 of 1998-09-05 14:30:11 +00:00
subr_rlist.c This module was used only by the old swapper and has been #if'd out, 1999-01-21 08:58:41 +00:00
subr_rman.c Ifdefed conditionally used simplock variables. 1999-01-02 11:34:57 +00:00
subr_scanf.c Add sscanf/vsscanf/strtoq/strtouq to the kernel. Initially these will be used 1999-01-15 00:03:39 +00:00
subr_smp.c Make more messages conditional on bootverbose 1999-01-20 04:24:22 +00:00
subr_trap.c Add (but don't activate) code for a special VM option to make 1999-01-06 23:05:42 +00:00
subr_xxx.c * Fix a couple of places in the device pager where an address was 1998-11-08 12:39:07 +00:00
sys_generic.c poll(2) sets POLLNVAL for descriptors passed in that are less than 1998-12-10 01:53:26 +00:00
sys_pipe.c The "easy" fixes for compiling the kernel -Wunused: remove unreferenced static 1998-12-07 21:58:50 +00:00
sys_process.c Tweak ptrace(PT_READ_U) so that the last alpha register can be read. 1998-12-26 17:14:37 +00:00
sys_socket.c Installed the second patch attached to kern/7899 with some changes suggested 1998-11-11 10:04:13 +00:00
syscalls.c regenerate (+kldsym) 1998-11-11 12:57:05 +00:00
syscalls.master A kldsym(2) syscall prototype for extracting information from the in-kernel 1998-11-11 12:45:14 +00:00
sysv_ipc.c Removed an unused #include. Added an unsed #include of <sys/ucred.h> 1997-11-18 12:52:10 +00:00
sysv_msg.c Eradicate the variable "time" from the kernel, using various measures. 1998-03-30 09:56:58 +00:00
sysv_sem.c Fixed problems with kernel config file overrides of sysv semaphore 1998-12-14 08:34:55 +00:00
sysv_shm.c This is a rather large commit that encompasses the new swapper, 1999-01-21 08:29:12 +00:00
tty_compat.c This commit fixes various 64bit portability problems required for 1998-06-07 17:13:14 +00:00
tty_conf.c This commit fixes various 64bit portability problems required for 1998-06-07 17:13:14 +00:00
tty_cons.c Remove a hard-coded table of kernel console I/O functions exported 1999-01-07 14:14:24 +00:00
tty_pty.c Added D_TTY to the cdevswitch flags for all tty drivers. This is required 1998-08-23 08:26:42 +00:00
tty_snoop.c KNFize, by bde. 1999-01-10 01:58:29 +00:00
tty_subr.c Cast pointers to uintptr_t/intptr_t instead of to u_long/long, 1998-07-15 02:32:35 +00:00
tty_tb.c Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
tty_tty.c Added D_TTY to the cdevswitch flags for all tty drivers. This is required 1998-08-23 08:26:42 +00:00
tty.c Split DIAGNOSTIC -> DIAGNOSTIC, INVARIANTS, and INVARIANT_SUPPORT as 1999-01-08 17:31:30 +00:00
uipc_domain.c Minor rearranging of code to allow simple protocol domains to be 1999-01-21 00:26:41 +00:00
uipc_mbuf.c Only call m_reclaim() if M_WAIT since calling it from an interrupt can 1998-07-27 03:59:48 +00:00
uipc_proto.c Yow! Completely change the way socket options are handled, eliminating 1998-08-23 03:07:17 +00:00
uipc_sockbuf.c The "easy" fixes for compiling the kernel -Wunused: remove unreferenced static 1998-12-07 21:58:50 +00:00
uipc_socket2.c The "easy" fixes for compiling the kernel -Wunused: remove unreferenced static 1998-12-07 21:58:50 +00:00
uipc_socket.c Also consider the space left in the socket buffer when deciding whether 1999-01-20 17:45:22 +00:00
uipc_syscalls.c Fixed a potential bug ( but maybe not ), where sendfile() clears PG_BUSY 1999-01-21 09:00:26 +00:00
uipc_usrreq.c The code that reclaims descriptors from in-transit unix domain 1999-01-21 09:02:18 +00:00
vfs_aio.c This is a rather large commit that encompasses the new swapper, 1999-01-21 08:29:12 +00:00
vfs_bio.c Don't throw away the buffer contents on a fatal write error; just mark 1999-01-22 08:59:05 +00:00
vfs_cache.c Don't use CTL_VFS at the wrong level. This caused loops in the sysctl 1998-09-09 07:41:41 +00:00
vfs_cluster.c This is a rather large commit that encompasses the new swapper, 1999-01-21 08:29:12 +00:00
vfs_conf.c Remove the SLICE code. 1998-09-14 19:56:42 +00:00
vfs_default.c Add 'options DEBUG_LOCKS', which stores extra information in struct 1999-01-20 14:49:12 +00:00
vfs_export.c This is a rather large commit that encompasses the new swapper, 1999-01-21 08:29:12 +00:00
vfs_extattr.c Remove the 'waslocked' parameter to vfs_object_create(). 1999-01-05 18:50:03 +00:00
vfs_init.c The "easy" fixes for compiling the kernel -Wunused: remove unreferenced static 1998-12-07 21:58:50 +00:00
vfs_lookup.c KNFize, by bde. 1999-01-10 01:58:29 +00:00
vfs_mount.c Remove the SLICE code. 1998-09-14 19:56:42 +00:00
vfs_subr.c This is a rather large commit that encompasses the new swapper, 1999-01-21 08:29:12 +00:00
vfs_syscalls.c Remove the 'waslocked' parameter to vfs_object_create(). 1999-01-05 18:50:03 +00:00
vfs_vnops.c Add 'options DEBUG_LOCKS', which stores extra information in struct 1999-01-20 14:49:12 +00:00
vnode_if.pl Make the vnode opv vector construction fully dynamic. Previously we 1998-11-10 09:04:09 +00:00
vnode_if.sh Make the vnode opv vector construction fully dynamic. Previously we 1998-11-10 09:04:09 +00:00
vnode_if.src Add a new vnode op, VOP_FREEBLKS(), which filesystems can use to inform 1998-09-05 14:13:12 +00:00