freebsd-skq/sys/kern
mjg 26410c3616 rw: fix runlock_hard when new readers show up
When waiters/writer spinner flags are set no new readers can show up unless
they already have a different rw rock read locked. The change in r326195 failed
to take that into account - in presence of new readers it would spin until
they all drain, which would be lead to trouble if e.g. they go off cpu and
can get scheduled because of this thread.

Reported by:	pho
2017-11-26 21:10:47 +00:00
..
bus_if.m "Buses" is the preferred plural of "bus" 2017-01-15 17:54:01 +00:00
capabilities.conf allow posix_fallocate in capability mode 2017-10-12 15:45:53 +00:00
clock_if.m
cpufreq_if.m
device_if.m Import the 'iflib' API library for network drivers. From the author: 2016-05-18 04:35:58 +00:00
genassym.sh Don't prefix zero with 0x in assym.s. 2017-04-13 15:43:44 +00:00
imgact_aout.c Revert r323722. A better fix will be committed shortly, as well as 2017-09-28 08:38:24 +00:00
imgact_binmisc.c tighten buffer bounds in imgact_binmisc_populate_interp 2017-03-21 18:02:14 +00:00
imgact_elf32.c
imgact_elf64.c
imgact_elf.c Add AT_HWCAP2 ELF auxiliary vector. 2017-10-21 12:05:01 +00:00
imgact_gzip.c
imgact_shell.c ANSI-fy exec_shell_imgact(). 2017-11-04 15:41:08 +00:00
inflate.c Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
init_main.c Don't let cpu_set_syscall_retval() clobber exec_setregs(). 2017-11-24 07:35:08 +00:00
init_sysent.c regen init_sysent.c r324560 2017-10-12 15:48:37 +00:00
kern_acct.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
kern_alq.c Use SI_SUB_LAST instead of SI_SUB_SMP as the "catch-all" subsystem. 2016-03-11 23:18:06 +00:00
kern_clock.c Remove some, but not all, assumptions that the BSP is CPU 0 and that CPUs 2017-11-25 23:41:05 +00:00
kern_clocksource.c Remove some, but not all, assumptions that the BSP is CPU 0 and that CPUs 2017-11-25 23:41:05 +00:00
kern_condvar.c Introduce SCHEDULER_STOPPED_TD for use when the thread pointer was already read 2017-02-17 06:45:04 +00:00
kern_conf.c Undo r309891. Konstantin is right in that this condition normally 2016-12-12 19:11:04 +00:00
kern_cons.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_context.c
kern_cpu.c Add an EARLY_AP_STARTUP option to start APs earlier during boot. 2016-05-14 18:22:52 +00:00
kern_cpuset.c Fix size to copyout(9) for cpuset_getid(2). 2017-08-22 20:46:29 +00:00
kern_ctf.c Fix improper use of "its". 2016-11-08 23:59:41 +00:00
kern_descrip.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_dtrace.c Sprinkle __read_frequently on few obvious places. 2017-09-06 20:33:33 +00:00
kern_dump.c Move kernel dump offset tracking into MI code. 2017-10-18 15:38:05 +00:00
kern_environment.c Create wrappers for uint64_t and int64_t for the tunables. While not 2016-04-15 03:09:55 +00:00
kern_et.c Add labels to sysctls related to clocks. 2016-12-14 12:56:58 +00:00
kern_event.c Decode kevent structures logged via ktrace(2) in kdump. 2017-11-25 04:49:12 +00:00
kern_exec.c Don't let cpu_set_syscall_retval() clobber exec_setregs(). 2017-11-24 07:35:08 +00:00
kern_exit.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_fail.c Avoid open-coding PRI_UNCHANGED. 2017-05-18 18:24:11 +00:00
kern_ffclock.c kernel: use our nitems() macro when it is available through param.h. 2016-04-19 23:48:27 +00:00
kern_fork.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_gzio.c Add support for compressed kernel dumps. 2017-10-25 00:51:00 +00:00
kern_hhook.c Get closer to a VIMAGE network stack teardown from top to bottom rather 2016-06-21 13:48:49 +00:00
kern_idle.c
kern_intr.c Extend cpuset_get/setaffinity() APIs 2017-05-03 18:41:08 +00:00
kern_jail.c Jails: Optionally prevent jailed root from binding to privileged ports 2017-06-06 02:15:00 +00:00
kern_khelp.c
kern_kthread.c Re-schedule signals after kthread exits, since apparently there are 2016-08-10 13:47:12 +00:00
kern_ktr.c Fix a couple of comment typos 2017-08-15 02:21:02 +00:00
kern_ktrace.c Decode kevent structures logged via ktrace(2) in kdump. 2017-11-25 04:49:12 +00:00
kern_linker.c Properly bzero kldstat structure to prevent kernel information leak. 2017-11-15 22:30:21 +00:00
kern_lock.c lockmgr: remove the ADAPTIVE_LOCKMGRS option 2017-11-17 20:41:17 +00:00
kern_lockf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_lockstat.c Sprinkle __read_frequently on few obvious places. 2017-09-06 20:33:33 +00:00
kern_loginclass.c Fixup r325264, take #2 2017-11-01 06:46:58 +00:00
kern_malloc.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_mbuf.c Improvements to sendfile(2) mbuf free routine. 2017-10-09 21:06:16 +00:00
kern_mib.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_module.c
kern_mtxpool.c sys/kern: spelling fixes in comments. 2016-04-29 22:15:33 +00:00
kern_mutex.c Add the missing lockstat check for thread lock. 2017-11-25 20:49:27 +00:00
kern_ntptime.c ANSIfy kern_ntptime.c 2017-01-25 20:22:32 +00:00
kern_numa.c Remove unneeded include of vm_phys.h. 2017-04-17 16:51:04 +00:00
kern_osd.c osd(9): Change array pointer to array pointer type from void* 2016-04-26 19:57:35 +00:00
kern_physio.c Add four new RCTL resources - readbps, readiops, writebps and writeiops, 2016-04-07 04:23:25 +00:00
kern_pmc.c Cast values to (int) before comparing them to the range of the 2017-02-24 01:39:12 +00:00
kern_poll.c
kern_priv.c
kern_proc.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_procctl.c Kill all descendants of the reaper, even if they are descendants of a 2017-11-23 11:25:11 +00:00
kern_prot.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_racct.c try to fix RACCT_RSS accounting 2017-02-14 13:54:05 +00:00
kern_rangelock.c
kern_rctl.c sys/kern: spelling fixes in comments. 2016-04-29 22:15:33 +00:00
kern_resource.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_rmlock.c Clean up the SYSINIT_FLAGS definitions for rwlock(9) and rmlock(9). 2017-11-21 14:59:23 +00:00
kern_rwlock.c rw: fix runlock_hard when new readers show up 2017-11-26 21:10:47 +00:00
kern_sdt.c sdt: make all sdt probe sites test one variable 2017-10-22 20:22:23 +00:00
kern_sema.c
kern_sendfile.c Address two problems with sendfile(..., SF_NOCACHE) and apply one 2017-10-13 16:31:50 +00:00
kern_sharedpage.c Split kerne timekeep ABI structure vdso_sv_tk out of the struct 2015-11-23 07:09:35 +00:00
kern_shutdown.c Remove some, but not all, assumptions that the BSP is CPU 0 and that CPUs 2017-11-25 23:41:05 +00:00
kern_sig.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_switch.c sched: move panic handling code out of choosethread 2017-11-17 02:45:38 +00:00
kern_sx.c sx: change sunlock to wake waiters up if it locked sleepq 2017-11-25 20:13:50 +00:00
kern_synch.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_syscalls.c
kern_sysctl.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_tc.c The th_bintime, th_microtime and th_nanotime members of the timehand 2017-10-11 11:03:11 +00:00
kern_thr.c Defer ptracestop() signals that cannot be delivered immediately 2017-02-20 15:53:16 +00:00
kern_thread.c Introduce EVENTHANDLER_LIST and some users. 2017-11-09 22:51:48 +00:00
kern_time.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
kern_timeout.c Remove some, but not all, assumptions that the BSP is CPU 0 and that CPUs 2017-11-25 23:41:05 +00:00
kern_umtx.c Convert explicit panic() call to assert. 2017-11-04 10:49:34 +00:00
kern_uuid.c Hint at the intended usage for the "ll" field of struct uuid_private. 2017-06-13 15:37:04 +00:00
kern_xxx.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ksched.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
link_elf_obj.c Reduce stack usage in link_elf_load_file(), allocating struct nameidata. 2017-03-09 00:45:15 +00:00
link_elf.c kern: for pointers replace 0 with NULL. 2016-04-15 16:10:11 +00:00
linker_if.m sys/kern: spelling fixes in comments. 2016-04-29 22:15:33 +00:00
Make.tags.inc
Makefile Don't create pointless backups of generated files in "make sysent". 2016-07-28 21:29:04 +00:00
makesyscalls.sh Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
md4c.c ANSIfy sys/kern/md4c.c 2017-11-05 19:49:44 +00:00
md5c.c crypto routines: Hint minimum buffer sizes to the compiler 2016-05-26 19:29:29 +00:00
msi_if.m Introduce MSI and MSI-X support to intrng. This adds a new msi device 2016-05-16 09:11:40 +00:00
p1003_1b.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
pic_if.m INTRNG: Rework handling with resources. Partially revert r301453. 2016-08-19 10:52:39 +00:00
posix4_mib.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
sched_4bsd.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sched_ule.c Remove some, but not all, assumptions that the BSP is CPU 0 and that CPUs 2017-11-25 23:41:05 +00:00
serdev_if.m
stack_protector.c
subr_acl_nfs4.c
subr_acl_posix1e.c
subr_autoconf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_blist.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_bufring.c
subr_bus_dma.c Add CAM/NVMe support for CAM_DATA_SG 2017-08-29 15:29:57 +00:00
subr_bus.c Add eventhandler notifications for newbus device attach/detach. 2017-10-08 17:33:49 +00:00
subr_busdma_bufalloc.c
subr_capability.c capsicum: plug spurious memset in __cap_rights_init 2015-12-01 02:48:42 +00:00
subr_clock.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_counter.c Zero return value when counter_rate() switches over to next second and 2016-12-13 20:11:45 +00:00
subr_devmap.c o Replace __riscv__ with __riscv 2017-08-07 14:09:57 +00:00
subr_devstat.c Add support for managing Shingled Magnetic Recording (SMR) drives. 2016-05-19 14:08:36 +00:00
subr_disk.c
subr_dummy_vdso_tc.c
subr_eventhandler.c Introduce EVENTHANDLER_LIST and some users. 2017-11-09 22:51:48 +00:00
subr_fattime.c
subr_firmware.c Fix improper use of "its". 2016-11-08 23:59:41 +00:00
subr_gtaskqueue.c Fix "taskqgroup_attach: setaffinity failed: 3" with iflib drivers 2017-10-05 14:43:30 +00:00
subr_hash.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_hints.c
subr_intr.c Fix compile error with option DEBUG. This is fallout from some long-ago 2017-08-16 16:51:55 +00:00
subr_kdb.c Change kdb_active type to u_char. 2017-10-22 13:42:56 +00:00
subr_kobj.c - Also outside of the KOBJOPLOOKUP macro - which in turn is used by 2017-05-08 21:08:39 +00:00
subr_lock.c locks: follow up r313386 2017-02-07 16:01:07 +00:00
subr_log.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_mchain.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_module.c
subr_msgbuf.c sys/kern: spelling fixes in comments. 2016-04-29 22:15:33 +00:00
subr_param.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_pcpu.c Remove some, but not all, assumptions that the BSP is CPU 0 and that CPUs 2017-11-25 23:41:05 +00:00
subr_pctrie.c Make the number of children for pctrie node available outside subr_pctrie.c. 2017-07-27 16:40:14 +00:00
subr_power.c
subr_prf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_prof.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_rman.c Add new bus methods for mapping resources. 2016-05-20 17:57:47 +00:00
subr_rtc.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_sbuf.c An off-by-one error exists in sbuf_vprintf()'s use of SBUF_HASROOM() when an 2017-08-18 02:06:28 +00:00
subr_scanf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_sfbuf.c subr_sfbus.c need sys/proc.h for struct thread definition. 2017-02-07 17:31:24 +00:00
subr_sglist.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_sleepqueue.c Make the sleepq chain hash size configurable per-arch and bump on amd64. 2017-10-22 20:43:50 +00:00
subr_smp.c Don't take Giant for SMP status and cpu topology sysctls. 2017-10-18 22:00:44 +00:00
subr_stack.c Let stack_create(9) take a malloc flags argument. 2017-10-06 21:52:28 +00:00
subr_syscall.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
subr_taskqueue.c Add taskqueue_enqueue_timeout_sbt(), because sometimes you want more control 2017-07-31 00:54:50 +00:00
subr_terminal.c Oops, my fix for bright colors broke bright black some more (in cases 2017-03-27 10:48:28 +00:00
subr_trap.c spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
subr_turnstile.c Remove unused declaration and update ddb.4 2017-08-24 19:16:25 +00:00
subr_uio.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
subr_unit.c Properly reset the fields in clean_unrhdr. 2017-10-16 16:14:50 +00:00
subr_vmem.c Start annotating global _padalign locks with __exclusive_cache_line 2017-09-06 20:28:18 +00:00
subr_witness.c Bump WITNESS_PENDLIST to accomodate sleepq chain bump. 2017-10-23 01:00:35 +00:00
sys_capability.c capsicum: perform copyout without the fildesc lock held in sys_cap_ioctls_get 2016-10-21 16:12:23 +00:00
sys_generic.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sys_pipe.c Generate syscall tables and update pipe() implementation after r302094. 2016-06-22 21:18:19 +00:00
sys_procdesc.c Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
sys_process.c Move loop to clear TDB_SUSPEND into PT_DETACH case. 2017-11-13 21:22:33 +00:00
sys_socket.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
syscalls.c Regen. 2017-06-17 00:58:19 +00:00
syscalls.master Add abstime kqueue(2) timers and expand struct kevent members. 2017-06-17 00:57:26 +00:00
systrace_args.c Regen. 2017-06-17 00:58:19 +00:00
sysv_ipc.c
sysv_msg.c Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
sysv_sem.c sysvsem: check if semu_list has anything on it before grabbing the lock 2017-10-19 00:31:00 +00:00
sysv_shm.c Audit arguments to System V IPC system calls implementing sempahores, 2017-03-30 22:26:15 +00:00
tty_compat.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
tty_info.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
tty_inq.c Check tty_gone() after allocating IO buffers. The tty lock has to be 2017-01-13 16:37:38 +00:00
tty_outq.c Check tty_gone() after allocating IO buffers. The tty lock has to be 2017-01-13 16:37:38 +00:00
tty_pts.c Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
tty_tty.c
tty_ttydisc.c Don't clear the software flow control flag before draining for last 2016-01-26 14:46:39 +00:00
tty.c Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
uipc_accf.c Listening sockets improvements. 2017-06-08 21:30:34 +00:00
uipc_debug.c ddb show socket debugging 2017-06-15 04:49:12 +00:00
uipc_domain.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_mbuf2.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_mbuf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_mbufhash.c
uipc_mqueue.c Correct sysent flags for dynamically loaded syscalls. 2017-07-14 09:34:44 +00:00
uipc_sem.c Audit arguments to POSIX message queues, semaphores, and shared memory. 2017-03-31 13:43:00 +00:00
uipc_shm.c Replace manyinstances of VM_WAIT with blocking page allocation flags 2017-11-08 02:39:37 +00:00
uipc_sockbuf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_socket.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_syscalls.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uipc_usrreq.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_acl.c Add system-call argument auditing for ACL-related system calls. 2017-03-30 22:00:58 +00:00
vfs_aio.c Fix aio_suspend in 32-bit emulation 2017-10-26 19:45:15 +00:00
vfs_bio.c Update a comment in brelse() to match reality. 2017-11-20 20:53:03 +00:00
vfs_cache.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_cluster.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_default.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_export.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_extattr.c
vfs_hash.c Add vfs_hash_ref(9) function, which finds a vnode by the hash value 2016-05-11 06:32:22 +00:00
vfs_init.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_lookup.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_mount.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_mountroot.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_subr.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_syscalls.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vfs_vnops.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vnode_if.src For UNIX sockets make vnode point not to the socket, but to the UNIX PCB, 2017-06-02 17:31:25 +00:00