freebsd-skq/sys/dev
glebius e35d543ec1 Listening sockets improvements.
o Separate fields of struct socket that belong to listening from
  fields that belong to normal dataflow, and unionize them.  This
  shrinks the structure a bit.
  - Take out selinfo's from the socket buffers into the socket. The
    first reason is to support braindamaged scenario when a socket is
    added to kevent(2) and then listen(2) is cast on it. The second
    reason is that there is future plan to make socket buffers pluggable,
    so that for a dataflow socket a socket buffer can be changed, and
    in this case we also want to keep same selinfos through the lifetime
    of a socket.
  - Remove struct struct so_accf. Since now listening stuff no longer
    affects struct socket size, just move its fields into listening part
    of the union.
  - Provide sol_upcall field and enforce that so_upcall_set() may be called
    only on a dataflow socket, which has buffers, and for listening sockets
    provide solisten_upcall_set().

o Remove ACCEPT_LOCK() global.
  - Add a mutex to socket, to be used instead of socket buffer lock to lock
    fields of struct socket that don't belong to a socket buffer.
  - Allow to acquire two socket locks, but the first one must belong to a
    listening socket.
  - Make soref()/sorele() to use atomic(9).  This allows in some situations
    to do soref() without owning socket lock.  There is place for improvement
    here, it is possible to make sorele() also to lock optionally.
  - Most protocols aren't touched by this change, except UNIX local sockets.
    See below for more information.

o Reduce copy-and-paste in kernel modules that accept connections from
  listening sockets: provide function solisten_dequeue(), and use it in
  the following modules: ctl(4), iscsi(4), ng_btsocket(4), ng_ksocket(4),
  infiniband, rpc.

o UNIX local sockets.
  - Removal of ACCEPT_LOCK() global uncovered several races in the UNIX
    local sockets.  Most races exist around spawning a new socket, when we
    are connecting to a local listening socket.  To cover them, we need to
    hold locks on both PCBs when spawning a third one.  This means holding
    them across sonewconn().  This creates a LOR between pcb locks and
    unp_list_lock.
  - To fix the new LOR, abandon the global unp_list_lock in favor of global
    unp_link_lock.  Indeed, separating these two locks didn't provide us any
    extra parralelism in the UNIX sockets.
  - Now call into uipc_attach() may happen with unp_link_lock hold if, we
    are accepting, or without unp_link_lock in case if we are just creating
    a socket.
  - Another problem in UNIX sockets is that uipc_close() basicly did nothing
    for a listening socket.  The vnode remained opened for connections.  This
    is fixed by removing vnode in uipc_close().  Maybe the right way would be
    to do it for all sockets (not only listening), simply move the vnode
    teardown from uipc_detach() to uipc_close()?

Sponsored by:		Netflix
Differential Revision:	https://reviews.freebsd.org/D9770
2017-06-08 21:30:34 +00:00
..
aac
aacraid aacraid: rework r315083 for a clean build with and without AACRAID_DEBUG 2017-03-23 11:59:17 +00:00
acpi_support Hide unneeded message under bootverbose. 2017-01-27 14:17:48 +00:00
acpica hyperv/vmbus: Reorganize vmbus device tree 2017-05-10 05:28:14 +00:00
adb Force the setting of bit 7 in the sysmouse packet byte 1 to be unsigned. 2017-01-30 02:32:33 +00:00
adlink
advansys Remove dead mentions of CAM target mode APIs from drivers. 2017-02-19 17:27:58 +00:00
ae Fix a potentially forever loop. 2017-04-14 02:24:02 +00:00
age Remove dead code. 2017-04-14 08:27:42 +00:00
agp sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
aha Remove dead mentions of CAM target mode APIs from drivers. 2017-02-19 17:27:58 +00:00
ahci Check if the device is marked as dma-coherent in the FDT, and if so, let 2017-04-26 16:13:22 +00:00
aic Remove pc98 support completely. 2017-01-28 02:22:15 +00:00
aic7xxx Fix LUN enabling on wildcard target, as done by CTL. 2017-02-26 19:25:33 +00:00
al_eth sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
alc
ale
alpm
altera Merge enhancements to the ALTERA Avalon bus generic device attachment 2017-01-28 13:25:06 +00:00
amd_ecc_inject add a module that provides support for DRAM ECC error injection on AMD CPUs 2017-03-03 22:51:04 +00:00
amdpm
amdsbwd
amdsmb
amdtemp
amr
an sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
arcmsr sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
asmc [asmc] Add support for MacBook Pro 11,2 2017-02-17 18:49:18 +00:00
ata Remove dead mentions of CAM target mode APIs from drivers. 2017-02-19 17:27:58 +00:00
ath Increase timeout in Atheros HAL 2017-05-29 09:21:38 +00:00
atkbdc psm: add support for evdev protocol 2017-05-29 20:43:00 +00:00
auxio
axgbe Port the Linux AMX 10G network driver to FreeBSD as axgbe. It is unlikely 2017-02-15 13:56:04 +00:00
bce sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
beri sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
bfe
bge
bhnd [mips] [bhnd] Support of old PMU for BMIPS and siba SoC 2017-05-28 12:05:16 +00:00
bktr bktr(4): double assignment. 2017-02-23 16:18:57 +00:00
bm
bnxt Add version tag to the driver. 2017-05-16 18:05:34 +00:00
buslogic sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
bvm
bwi net80211 drivers: fix rate setup for EAPOL frames, obtain Tx parameters 2017-02-26 20:49:35 +00:00
bwn bwn(4): Fix trivial null dereference 2017-04-06 17:08:59 +00:00
bxe 1. state checks in bxe_tx_mq_start_locked() and bxe_tx_mq_start() to sync threads during interface down or detach. 2017-02-27 23:38:51 +00:00
cadence
cardbus
cas
ce dev/ce: double assignment. 2017-02-23 15:30:21 +00:00
cesa Enable proper configuration of CESA MBUS windows 2017-05-19 08:19:39 +00:00
cfe
cfi [cfi] fix CFI flash reset command for MX29LV320T/B. 2017-05-06 05:52:01 +00:00
chromebook_platform chromebook_platform: catch up with ig4iic -> ig4iic_pci in r310621 2017-02-25 15:55:46 +00:00
ciss
cm sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
cmx
coretemp
cp sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
cpuctl Update the list of cpudev ioctls which require write access. 2017-03-19 21:25:27 +00:00
cpufreq
cs Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
ctau sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
cx sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
cxgb Add some ntohl() love to r315277 2017-03-14 20:57:54 +00:00
cxgbe Add explicit handling for requests with an empty payload. 2017-06-08 21:06:18 +00:00
cy Revert r317446 and bring back cy(4). 2017-04-27 16:14:32 +00:00
cyapa
dc
dcons
de sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
dme
dpaa Use UMA_ALIGN_PTR to specify pointer alignment 2017-05-12 04:10:02 +00:00
dpms
dpt Remove EISA support from dpt. Remove known EISA models from 2017-02-16 21:57:13 +00:00
drm All these files need sys/vmmeter.h, but now they got it implicitly 2017-04-17 17:07:00 +00:00
drm2 Don't bother enqueuing a page immediately before freeing it. 2017-05-18 18:37:19 +00:00
dwc
e1000 e1000api: misleading-indentation 2017-05-15 16:53:02 +00:00
ed sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
efidev
ena Introduce additional locks when releasing TX resources and buffers in ENA 2017-05-30 12:00:56 +00:00
ep Remove EISA support for ep driver. Left in place EISA strings that are 2017-02-16 21:56:51 +00:00
esp
et
etherswitch style(9) fixes, remove unnecessary headers, remove duplicate #defines and 2017-06-02 15:12:32 +00:00
evdev [evdev] Fix Right Alt and Keypad Enter event codes for atkbd(4) and kbdmux(4) drivers 2017-03-12 19:28:44 +00:00
ex remove archaic register keyword from ixgb and ex 2017-04-06 17:16:41 +00:00
exca Remove pc98 support completely. 2017-01-28 02:22:15 +00:00
extres Export a sysctl dev.<clkdom>.<unit>.clocks for each clock domain containing 2017-03-05 07:13:29 +00:00
fb Write-combine framebuffer writes through user-space mappings, if possible. 2017-04-20 15:18:15 +00:00
fdc Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
fdt Set the correct default for #address-cells variable when the property does 2017-04-30 07:31:48 +00:00
fe sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
ffec Add imx6ul SoC support, and get the PHY number from the FDT data. If there 2017-04-16 03:49:14 +00:00
filemon
firewire firewire/sbp: try to improve locking, plus a few style nits 2017-03-07 16:07:52 +00:00
flash [mx25l] add new device ids. 2017-05-06 06:08:44 +00:00
fxp Remove unnecessary comparison. 2017-04-14 02:33:26 +00:00
gem
glxiic
glxsb
gpio
gxemul gxemul: 2017-02-06 11:37:20 +00:00
hdmi
hifn
hme
hpt27xx Clean redundant MIN/MAX declarations in some HighPoint drivers. 2017-02-10 15:18:41 +00:00
hptiop sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
hptmv sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
hptnr Clean redundant MIN/MAX declarations in some HighPoint drivers. 2017-02-10 15:18:41 +00:00
hptrr Clean redundant MIN/MAX declarations in some HighPoint drivers. 2017-02-10 15:18:41 +00:00
hwpmc Fix arm stack frame walking support: 2017-03-14 16:06:57 +00:00
hyperv hyperv/pcib: use the device serial number as PCI domain 2017-06-08 12:11:30 +00:00
ic Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ichiic
ichsmb Add IDs for several missing Intel SMBus controllers. 2017-04-02 11:36:25 +00:00
ichwd Fixed TCO v3 tick convert 2017-03-01 05:18:43 +00:00
ida Remove support for EISA in the ida driver. Remove references to 2017-02-16 21:56:57 +00:00
if_ndis Fix regression in ndis(4) after r286410. This adds a bunch of checks for 2017-05-22 20:00:01 +00:00
iicbus sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
iir
intel
intpm
io
ioat ioat: don't specify inline for function with variable argument list 2017-03-04 12:51:57 +00:00
ipmi
ips
ipw
isci scif_sas_controller: Fix inverted logic range check 2017-03-13 17:58:08 +00:00
iscsi Listening sockets improvements. 2017-06-08 21:30:34 +00:00
iscsi_initiator
iser
isl
ismt
isp Correct loop mode CRN resets to adhere to FCP-4 section 4.10 2017-05-03 13:17:01 +00:00
ispfw
iwi iwi, ral, zyd: fix possible use-after-free. 2017-02-17 23:20:22 +00:00
iwm [iwm] Remove support for fw older than -17 and -22 2017-06-04 21:28:52 +00:00
iwn iwn: use correct mask for queue ids (0xf -> 0x1f). 2017-04-02 13:24:58 +00:00
ixgb Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
ixgbe Don't overrite vf->flags variable at the end of ixgbe(4) ixgbe_add_vf(). 2017-04-05 22:01:49 +00:00
ixl ixl(4): Update to 1.7.12-k 2017-02-10 01:04:11 +00:00
jedec_ts jedec_ts: fix slave address check 2017-02-21 12:24:31 +00:00
jme Don't overwrite mapped bits. 2017-04-14 08:11:50 +00:00
joy
kbd Remove pc98 support completely. 2017-01-28 02:22:15 +00:00
kbdmux
ksyms
le sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
led
lge Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
lmc
malo
mbox
mc146818
md Add MD_VERIFY option to enable O_VERIFY in open for vnode type. 2017-05-31 21:18:11 +00:00
mdio
mem
mfi
mge
mii Add support for the Micrel KSZ8081 ethernet PHY. 2017-04-16 01:40:17 +00:00
mk48txx
mlx Remove references to EISA support in mlx. The driver never supported 2017-02-16 21:56:32 +00:00
mlx4 Allow communication between functions on the same host when using the 2017-06-01 10:44:48 +00:00
mlx5 Improve sysadmin visibility of physical port error counters in the 2017-04-28 19:38:57 +00:00
mly
mmc o Add support for eMMC DDR bus speed mode at 52 MHz to sdhci(4) and 2017-03-19 23:27:17 +00:00
mn
mpr Fix several problems with mapping code. 2017-05-25 19:20:06 +00:00
mps Fix several problems with mapping code. 2017-05-25 19:14:44 +00:00
mpt Partially fix target task management requests handling. 2017-03-11 14:25:14 +00:00
mrsas
mse Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
msk Remove unnecessary assignment. 2017-04-14 07:27:23 +00:00
mvs Remove dead mentions of CAM target mode APIs from drivers. 2017-02-19 17:27:58 +00:00
mwl [net80211] RX parameter shuffle in net80211 in preparation for 4x4 NICs and 160MHz channels. 2017-02-20 02:08:08 +00:00
mxge
my Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
nand The nandsim(4) simulator driver doesn't have any protection against 2017-05-04 20:42:31 +00:00
ncr sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
nctgpio
ncv
netfpga10g/nf10bmac
netmap sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
nfe
nfsmb
nge
nmdm Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
nsp
ntb Report NTB link speed to console and interface. 2017-04-23 14:25:51 +00:00
null
nvd
nvme Avoid dereferencing unintialized elements in the error path. 2017-03-07 23:06:41 +00:00
nvram
nvram2env
nxge
oce
ofw Update comment ot reflect realilty, we know also take care of CPUs that 2017-04-20 15:06:16 +00:00
otus net80211 drivers: fix rate setup for EAPOL frames, obtain Tx parameters 2017-02-26 20:49:35 +00:00
ow
pbio
pccard sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
pccbb Remove pc98 support completely. 2017-01-28 02:22:15 +00:00
pcf
pci Various fixes for PCI _OSC handling so HotPlug works again. 2017-04-27 16:32:42 +00:00
pcn Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
pdq Remove EISA attachment (fea) from pdq driver. Remove vestiges of 2017-02-16 21:57:08 +00:00
pms sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
powermac_nvram
ppbus Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
ppc Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
proto
psci Call the PSCI reset from cpu_reset on arm64. When rebooting from DDB the 2017-04-24 11:06:10 +00:00
pst
pty
puc
qlnx/qlnxe Check for IPV6 TCP/UDP CSUM offload in pkt header during transmits. 2017-05-22 19:57:28 +00:00
qlxgb Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
qlxgbe Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
qlxge Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
quicc
ral net80211 drivers: fix rate setup for EAPOL frames, obtain Tx parameters 2017-02-26 20:49:35 +00:00
random Replace the RC4 algorithm for generating in-kernel secure random 2017-04-16 09:11:02 +00:00
rc
rccgpio
re
rl Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
rndtest
rp
rt [mips] [rt2880] Add oldest Ralink MIPS SOC RT2880 support code. 2017-05-06 06:20:34 +00:00
rtwn Change R88E_EFUSE_MAX_LEN to use the same value as the vendor's driver 2017-06-07 09:10:24 +00:00
safe
sbni sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
scc
sdhci Fix typo in Driver Type A/C/D capability checks in sdhci. 2017-05-31 19:20:27 +00:00
sec
sf
sfxge sfxge(4): compact the first hot part of RxQ control 2017-01-27 11:59:02 +00:00
sge
siba
siis Remove dead mentions of CAM target mode APIs from drivers. 2017-02-19 17:27:58 +00:00
sio Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sis
sk
smbus
smc
sn sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
snp Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
sound Declare the "snd_fxdiv_table" once. This shaves around 24Kbytes of 2017-05-25 05:23:47 +00:00
speaker Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
spibus [spigen] make spigen device ready to be compiled as a module 2017-03-09 01:00:27 +00:00
ste
stg
stge
sym sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
syscons Change the drawing method for the mouse cursor in planar mode to support 2017-04-23 08:59:35 +00:00
tdfx
terasic
ti
tl Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
tpm Remove dead code. 2017-04-06 22:21:49 +00:00
trm Remove dead mentions of CAM target mode APIs from drivers. 2017-02-19 17:27:58 +00:00
tsec Don't calltsec_receive_intr_locked() from the error interrupt handler. 2017-04-04 02:55:55 +00:00
twa Update tw_cl_share.h to allow 255 LUNs 2017-03-01 04:40:57 +00:00
twe
tws Increase the number of LUNs this hardware can support. 2017-05-17 13:22:13 +00:00
tx
txp Remove unnecessary check aginst NULL. txp_ext_command() with 2017-04-14 03:23:03 +00:00
uart Fix device lookup of for the stdout-path chosen property. 2017-06-02 14:01:17 +00:00
ubsec
usb Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
vge
viapm
viawd
videomode
virtio vtnet: don't update VLAN filter when parent is not running 2017-02-13 21:44:29 +00:00
vkbd
vmware/vmxnet3 fix vmxnet3 crash when LRO is enabled 2017-05-25 10:49:56 +00:00
vnic Rework BGX detection to support both new and old firmware 2017-03-31 18:04:34 +00:00
vr
vt With EARLY_AP_STARTUP enabled, we are seeing crashes in softclock_call_cc() 2017-06-08 20:47:18 +00:00
vte
vx sys/dev: Replace zero with NULL for pointers. 2017-02-20 03:43:12 +00:00
vxge vxge(4): Yet another (minor) mismatch. 2017-02-23 18:56:31 +00:00
watchdog Some cosmetic polishing for pre-timeouts. 2017-04-20 09:01:31 +00:00
wb Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
wbwd
wi Fix unreachable code in wi_pci_resume(). 2017-03-15 09:31:58 +00:00
wpi net80211 drivers: fix rate setup for EAPOL frames, obtain Tx parameters 2017-02-26 20:49:35 +00:00
wtap
xdma
xe
xen Skip setting the MTU in the netfront driver (xn# devices) if the new MTU 2017-06-02 07:03:31 +00:00
xilinx
xl Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00