freebsd-dev/sys
Andriy Gapon 111b043cdf change interrupt event's list of handlers from TAILQ to CK_SLIST
The primary reason for this commit is to separate mechanical and nearly
mechanical code changes from an upcoming fix for unsafe teardown of
shared interrupt handlers that have only filters (see D15905).

The technical rationale is that SLIST is sufficient.  The only operation
that gets worse performance -- O(n) instead of O(1) is a removal of a
handler,  but it is not a critical operation and the list is expected to
be rather short.

Additionally, it is easier to reason about SLIST when considering the
concurrent lock-free access to the list from the interrupt context and
the interrupt thread.

CK_SLIST is used because the upcoming change depends on the memory order
provided by CK_SLIST insert and the fact that CL_SLIST remove does not
trash the linkage in a removed element.

While here, I also fixed a couple of whitespace issues, made code under
ifdef notyet compilable, added a lock assertion to ithread_update() and
made intr_event_execute_handlers() static as it had no external callers.

Reviewed by:	cem (earlier version)
MFC after:	4 weeks
Differential Revision: https://reviews.freebsd.org/D16016
2018-07-23 12:51:23 +00:00
..
amd64 Have preload_delete_name() free pages backing preloaded data. 2018-07-19 20:00:28 +00:00
arm Add option MAC to armv6 and armv7 kernels by default, it needs to be 2018-07-21 18:54:24 +00:00
arm64 Eliminate a comment that doesn't apply to this pmap implementation. 2018-07-21 21:26:38 +00:00
bsm
cam Stop further SCSI recovery attempts after one has failed. 2018-07-21 21:34:10 +00:00
cddl Fix a couple of typos in r334844 noticed by Richard Kojedzinszky. 2018-07-18 16:03:40 +00:00
compat Regen after r336171. 2018-07-10 14:04:52 +00:00
conf Make it possible to run ntpd as a non-root user, add ntpd uid and gid. 2018-07-19 23:55:29 +00:00
contrib MFV CK@r336629: Import CK as of commit 1c1f9901c2dea7a883342cd03d3906a1bc482583 2018-07-23 11:21:43 +00:00
crypto libmd: Always erase context in _Final method, and when doing 2018-07-20 07:01:28 +00:00
ddb Extend show proc with reaper, sigparent, and vmspace information 2018-05-25 13:59:48 +00:00
dev Update modify counter when setting a mixer control. 2018-07-23 09:16:23 +00:00
dts Add spi-max-frequency properties to all spigen nodes. This is a required 2018-06-23 22:55:22 +00:00
fs Set CLSET_TIMEOUT on TCP connections to pNFS DSs. 2018-07-21 01:33:07 +00:00
gdb amd64: Protect the kernel text, data, and BSS by setting the RW/NX bits 2018-03-06 14:28:37 +00:00
geom OpenCrypto: Convert sessions to opaque handles instead of integers 2018-07-18 00:56:25 +00:00
gnu dts: Update our copy to Linux 4.17 2018-06-14 07:12:10 +00:00
i386 Annotate a parameter as unused. 2018-07-20 16:31:25 +00:00
isa Revert r330780, it was improperly tested and results in taking a spin 2018-03-11 20:13:15 +00:00
kern change interrupt event's list of handlers from TAILQ to CK_SLIST 2018-07-23 12:51:23 +00:00
kgssapi OpenCrypto: Convert sessions to opaque handles instead of integers 2018-07-18 00:56:25 +00:00
libkern Sync strlcpy with userland version, again 2018-06-21 17:35:13 +00:00
mips OpenCrypto: Convert sessions to opaque handles instead of integers 2018-07-18 00:56:25 +00:00
modules dtb/allwinner: Build sun8i-h2-plus-orangepi-r1.dts 2018-07-22 14:01:49 +00:00
net epair(4): make sure we do not duplicate MAC addresses 2018-07-23 07:11:58 +00:00
net80211 net80211: Fix ifdetach w/o ifattach, small whitespace cleanup 2018-07-10 23:30:19 +00:00
netgraph Catch up two more places to the V_ifnet change to a CK_STAILQ. 2018-05-24 00:06:55 +00:00
netinet Fix a potential use after free in getsockopt() access to inp_options 2018-07-22 20:02:14 +00:00
netinet6 Add missing dtrace probes for received UDP packets. 2018-07-20 15:32:20 +00:00
netipsec OpenCrypto: Convert sessions to opaque handles instead of integers 2018-07-18 00:56:25 +00:00
netpfil pf: Fix synproxy 2018-07-14 10:14:59 +00:00
netsmb Eliminate the overhead of gratuitous repeated reinitialization of cap_rights 2018-05-09 18:47:24 +00:00
nfs Switch RIB and RADIX_NODE_HEAD lock from rwlock(9) to rmlock(9). 2018-06-16 08:26:23 +00:00
nfsclient
nfsserver
nlm
ofed Use __FBSDID() for RCS tags in ibcore. 2018-07-17 09:47:14 +00:00
opencrypto OpenCrypto: Convert sessions to opaque handles instead of integers 2018-07-18 00:56:25 +00:00
powerpc Revert r336509. Fails buildworld. 2018-07-19 21:06:58 +00:00
riscv Fix setjmp for RISC-V: 2018-07-23 09:54:28 +00:00
rpc Set SO_SNDTIMEO in the client side krpc when CLSET_TIMEOUT is done. 2018-07-20 12:03:16 +00:00
security Fix audit of chflagsat, lgetfh, and setfib 2018-07-22 14:11:52 +00:00
sparc64 Fix a typo: change lists to list to match rest of sentence. 2018-07-17 21:18:49 +00:00
sys change interrupt event's list of handlers from TAILQ to CK_SLIST 2018-07-23 12:51:23 +00:00
teken teken: Fix sequences header which was crossing the 80-col boundary 2018-05-29 08:41:44 +00:00
tests epoch_test: fix compile 2018-07-15 00:31:17 +00:00
tools Add dtb overlays support 2018-03-24 21:30:24 +00:00
ufs Add needed locking for um_flags added in -r335808. 2018-07-17 04:43:58 +00:00
vm Add support for pmap_enter(psind = 1) to the arm64 pmap. 2018-07-20 16:37:04 +00:00
x86 xen: implement early init helper for PVHv2 2018-07-19 08:44:52 +00:00
xdr
xen xen: add missing file from r336474 2018-07-19 10:14:52 +00:00
Makefile