freebsd-dev/sys/dev
Bruce Evans d350ce61cf Less-quick fix for locking fixes in r172250. r172250 added a second
syscons spinlock for the output routine alone.  It is better to extend
the coverage of the first syscons spinlock added in r162285.  2 locks
might work with complicated juggling, but no juggling was done.  What
the 2 locks actually did was to cover some of the missing locking in
each other and deadlock less often against each other than a single
lock with larger coverage would against itself.  Races are preferable
to deadlocks here, but 2 locks are still worse since they are harder
to understand and fix.

Prefer deadlocks to races and merge the second lock into the first one.

Extend the scope of the spinlocking to all of sc_cnputc() instead of
just the sc_puts() part.  This further prefers deadlocks to races.

Extend the kdb_active hack from sc_puts() internals for the second lock
to all spinlocking.  This reduces deadlocks much more than the other
changes increases them.  The s/p,10* test in ddb gets much further now.
Hide this detail in the SC_VIDEO_LOCK() macro.  Add namespace pollution
in 1 nested #include and reduce namespace pollution in other nested
#includes to pay for this.

Move the first lock higher in the witness order.  The second lock was
unnaturally low and the first lock was unnaturally high.  The second
lock had to be above "sleepq chain" and/or "callout" to avoid spurious
LORs for visual bells in sc_puts().  Other console driver locks are
already even higher (but not adjacent like they should be) except when
they are missing from the table.  Audio bells also benefit from the
syscons lock being high so that audio mutexes have chance of being
lower.  Otherwise, console drviver locks should be as low as possible.
Non-spurious LORs now occur if the bell code calls printf() or is
interrupted (perhaps by an NMI) and the interrupt handler calls
printf().  Previous commits turned off many bells in console i/o but
missed ones done by the teken layer.
2016-08-25 13:46:52 +00:00
..
aac sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
aacraid sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
acpi_support Fix the deciKelvin to Celsius conversion in kernel. 2016-05-22 13:58:32 +00:00
acpica Implement userspace gettimeofday(2) with HPET timecounter. 2016-08-17 09:52:09 +00:00
adb sys: use our roundup2/rounddown2() macros when param.h is available. 2016-04-21 19:57:40 +00:00
adlink
advansys sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
ae Yet more redundant parenthesis from r298431. 2016-04-21 20:30:38 +00:00
age sys/dev: extend use of the howmany() macro when available. 2016-04-26 15:03:15 +00:00
agp sys: use our roundup2/rounddown2() macros when param.h is available. 2016-04-21 19:57:40 +00:00
aha sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
ahb sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
ahci JMicron JMB361 has only a single SATA port 2016-08-20 09:13:14 +00:00
aic Redundant parenthesis from r298431. 2016-04-21 19:48:28 +00:00
aic7xxx sys/dev: replace comma with semicolon when pertinent. 2016-08-09 19:41:46 +00:00
alc Add a missing change in r304575. 2016-08-22 03:28:06 +00:00
ale sys/dev: use our nitems() macro when it is avaliable through param.h. 2016-04-19 23:37:24 +00:00
alpm sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
altera Use OF_prop_free instead of direct call to free(9) 2016-05-14 18:44:30 +00:00
amdpm
amdsbwd
amdsmb
amdtemp Fix the deciKelvin to Celsius conversion in kernel. 2016-05-22 13:58:32 +00:00
amr sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
an Reject ioctl commands for FLSHGCHR and FLSHPCHR if the size is greater 2016-05-24 13:57:23 +00:00
arcmsr
asmc [asmc] Add support for MacBookPro5,1 2016-05-03 17:11:33 +00:00
ata sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
ath sys/dev: replace comma with semicolon when pertinent. 2016-08-09 19:41:46 +00:00
atkbdc Use OF_prop_free instead of direct call to free(9) 2016-05-18 23:39:31 +00:00
auxio Consistently use device_t 2016-08-09 19:32:06 +00:00
bce sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
beri
bfe
bge bge: Force chipid to 5720 A0 for 5717 C0 in an early place 2016-06-01 05:15:11 +00:00
bhnd bhndb(4): Fix unsigned integer underflow in dynamic register window 2016-08-23 19:03:11 +00:00
bktr Consistently use device_t 2016-08-09 19:32:06 +00:00
bm
buslogic s/struct device */device_t/g 2016-05-04 06:24:10 +00:00
bvm
bwi bwi: switch to ieee80211_add_channel_list_2ghz(). 2016-05-26 16:48:20 +00:00
bwn bhnd(4): Implement NVRAM support required for PMU bring-up. 2016-08-16 21:32:05 +00:00
bxe sys/dev: replace comma with semicolon when pertinent. 2016-08-09 19:41:46 +00:00
cadence Refactor DTS files for Zynq-based SoCs 2016-04-26 23:09:47 +00:00
cardbus sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
cas
ce sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
cesa Use proper interface for FDT parsing and memory mapping in CESA 2016-06-03 18:54:16 +00:00
cfe Sync CFE interface with upstream cfe-1.4.2 release. 2016-08-01 16:26:08 +00:00
cfi
ciss Update some of the TBD entries in ciss(4) to match what's in the pci 2016-05-24 01:42:21 +00:00
cm
cmx sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
coretemp Fix the deciKelvin to Celsius conversion in kernel. 2016-05-22 13:58:32 +00:00
cp sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
cpuctl Replace a number of conflations of mp_ncpus and mp_maxid with either 2016-07-06 14:09:49 +00:00
cpufreq
cs sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
ct
ctau
cx sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
cxgb (Re-do r302574 with corrected commit message..) 2016-07-11 16:56:51 +00:00
cxgbe Make the iSCSI parameter negotiation more flexible. 2016-08-25 05:22:53 +00:00
cy sys/dev: extend use of the howmany() macro when available. 2016-04-26 15:03:15 +00:00
cyapa
dc
dcons
de sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
digi Yet more redundant parenthesis from r298431. 2016-04-21 20:30:38 +00:00
dpaa Set the TLB caching properties for portals at attach time. 2016-05-25 01:23:19 +00:00
dpms
dpt sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
drm sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
drm2 Always panic if an invalid capability is passed to capable(..) instead of 2016-07-14 13:55:38 +00:00
dwc EXTRES: Add OF node as argument to all <foo>_get_by_ofw_<bar>() functions. 2016-07-10 18:28:15 +00:00
e1000 e1000: Add support for Kaby Lake IDs 2016-08-15 11:24:30 +00:00
ed sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
eisa
en sys: use our roundup2/rounddown2() macros when param.h is available. 2016-04-21 19:57:40 +00:00
ep
esp s/struct device */device_t/g 2016-05-04 06:24:51 +00:00
et sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
etherswitch sys/dev: replace comma with semicolon when pertinent. 2016-08-09 19:41:46 +00:00
ex
exca sys: use our roundup2/rounddown2() macros when param.h is available. 2016-04-21 19:57:40 +00:00
extres EXTRES: Add OF node as argument to all <foo>_get_by_ofw_<bar>() functions. 2016-07-10 18:28:15 +00:00
fatm sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
fb Use MTX_SYSINIT for the VESA lock. 2016-07-23 14:38:09 +00:00
fdc Fix the acpi attachment to always start the worker thread. 2016-05-04 23:00:57 +00:00
fdt INTRNG: Rework handling with resources. Partially revert r301453. 2016-08-19 10:52:39 +00:00
fe sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
ffec Fix erronious mixed use of tx/rx variables/constants in the same expression. 2016-05-27 22:14:39 +00:00
filemon Avoid taking PROC_LOCK in syscalls if not being traced. 2016-08-12 16:05:53 +00:00
firewire Remove NULL checks after M_WAITOK allocations from firewire. 2016-05-10 10:21:03 +00:00
flash [mx25l] add new device id. 2016-07-21 15:48:41 +00:00
fxp sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
gem
glxiic
glxsb
gpio INTRNG: Rework handling with resources. Partially revert r301453. 2016-08-19 10:52:39 +00:00
gxemul
hatm sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
hifn sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
hme
hpt27xx
hptiop Use imin() macro from sys/libkern.h. 2016-05-04 01:43:07 +00:00
hptmv sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
hptnr sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
hptrr sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
hwpmc Apply the fix from r232612 to fixed function counters. 2016-08-03 16:52:00 +00:00
hyperv hyperv/storvsc: Increase queue depth and rework channel selection. 2016-08-25 05:50:19 +00:00
ic sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
ichiic Fix ig4 operation for certain machines 2016-05-30 09:05:24 +00:00
ichsmb
ichwd
ida Resolve LINT linking issue by renaming ida_init() to ida_setup(). The 2016-05-11 17:38:09 +00:00
if_ndis sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
iicbus INTRNG: Rework handling with resources. Partially revert r301453. 2016-08-19 10:52:39 +00:00
iir sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
intpm intpm: add support for SB800 2016-08-23 10:40:53 +00:00
io
ioat ioat(4): Allow callouts to be scheduled after hw reset 2016-08-22 14:51:09 +00:00
ipmi
ips sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
ipw ipw: switch to ieee80211_add_channel() 2016-05-19 22:19:35 +00:00
isci isci: fix ATA PASSTHROUGH fixed sense data format 2016-07-06 20:48:42 +00:00
iscsi Make the iSCSI parameter negotiation more flexible. 2016-08-25 05:22:53 +00:00
iscsi_initiator sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
iser Make the iSCSI parameter negotiation more flexible. 2016-08-25 05:22:53 +00:00
isl
ismt
isp Pass proper for 23xx arguments to isp_endcmd(). 2016-05-20 11:56:16 +00:00
ispfw Update 25xx chips firmware from 7.03.00 to 8.03.00. 2016-04-11 10:53:25 +00:00
iwi sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
iwm [iwm] Fix iwm_poll_bit() usage in iwm_stop_device(), fixup r303418. 2016-07-30 19:03:32 +00:00
iwn iwn: add watchdog for scanning. 2016-05-26 11:12:36 +00:00
ixgb Consistently use device_t 2016-08-09 19:32:06 +00:00
ixgbe Consistently use device_t 2016-08-09 19:32:06 +00:00
ixl ixlv(4): Fix ixlv(4) not loading when loaded as a kernel module and netmap is enabled. 2016-08-20 00:08:10 +00:00
jme sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
joy
kbd apply some style(9) to kbd: make function name start in column 1 2016-07-26 13:36:28 +00:00
kbdmux
ksyms
le Use OF_prop_free instead of direct call to free(9) 2016-05-18 23:39:31 +00:00
led
lge sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
lmc s/struct device */device_t/g 2016-05-04 06:23:49 +00:00
malo net80211 + drivers: hide size of 'bands' array behind a macro. 2016-04-29 22:14:11 +00:00
mbox
mc146818
mca
md
mdio
mem
mfi Remove NULL check after M_WAITOK allocations from mfi(4). 2016-05-10 10:24:35 +00:00
mge sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
mii Add support for the Microchip/Micrel KSZ9031 Gigabit Ethernet PHY. 2016-07-23 18:16:40 +00:00
mk48txx
mlx sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
mlx5 Increase the maximum RX/TX queue size. This allows for a RX/TX queue 2016-08-22 13:43:25 +00:00
mly sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
mmc Add DMA sync operations around accessing the dwmmc descriptor ring. Even 2016-05-13 15:15:54 +00:00
mn sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
mpr Use real values to calculate Max I/O size instead of guessing. 2016-07-12 19:34:10 +00:00
mps Use real values to calculate Max I/O size instead of guessing. 2016-07-12 19:34:10 +00:00
mpt Remove NULL check after M_WAITOK allocation from mpt(4). 2016-08-09 15:52:17 +00:00
mrsas Added support for Avago/Broadcom Cutlass(12 Gbps- 16 port count) controllers. 2016-06-02 12:26:55 +00:00
mse
msk Remove NULL checks after M_WAITOK allocations from msk(4). 2016-08-09 15:51:11 +00:00
mvs sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
mwl mwl: switch to ieee80211_add_channel*(). 2016-05-19 22:28:46 +00:00
mxge mxge: Setup mbuf flowid before calling tcp_lro_rx(). 2016-05-12 03:36:49 +00:00
my
nand Remove NULL checks after M_WAITOK allocations from nand(4). 2016-08-09 15:56:33 +00:00
ncr sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
nctgpio nctgpio(4): Don't index past the end of sc->pins array 2016-04-20 01:17:18 +00:00
ncv
netfpga10g/nf10bmac sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
netmap Consistently use device_t 2016-08-09 19:32:06 +00:00
nfe sys/dev: use our nitems() macro when it is avaliable through param.h. 2016-04-19 23:37:24 +00:00
nfsmb
nge sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
nmdm
nsp sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
ntb Wrap previous MSIX workaround into #ifndef EARLY_AP_STARTUP. 2016-07-30 21:06:59 +00:00
null
nvd Remove unused variable from last commit. 2016-07-19 19:19:03 +00:00
nvme Kill a few stray debug printfs. 2016-07-28 22:40:31 +00:00
nvram
nvram2env [nvram2env] split implementation into generic & MIPS-based code 2016-07-24 08:35:45 +00:00
nxge nxge(4): Remove useless self-assignment. 2016-06-03 15:33:21 +00:00
oce Cleanup unnecessary semicolons from the kernel. 2016-04-10 23:07:00 +00:00
ofw INTRNG: Rework handling with resources. Partially revert r301453. 2016-08-19 10:52:39 +00:00
otus otus: minor catchup with OpenBSD. 2016-05-09 19:28:22 +00:00
ow Don't repeat the the word 'the' 2016-05-17 12:52:31 +00:00
patm sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
pbio
pccard Remove slightly used const values that can be replaced with nitems(). 2016-04-21 15:38:28 +00:00
pccbb Implement a proper detach method for the PCI-PCI bridge driver. 2016-05-20 00:03:22 +00:00
pcf sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
pci Add Killer E2400 Gigabit Ethernet support. 2016-08-22 01:19:05 +00:00
pcn
pdq sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
pms Don't repeat the the word 'the' 2016-05-17 12:52:31 +00:00
powermac_nvram
ppbus sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
ppc
proto
psci
pst
pty Provide counter_warning(9) KPI which allows to issue limited number of 2016-07-21 16:34:56 +00:00
puc
qlxgb sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
qlxgbe Add support for set/get cam search mode 2016-08-17 02:40:17 +00:00
qlxge net: Use M_HASHTYPE_OPAQUE_HASH if the mbuf flowid has hash properties 2016-06-07 04:51:50 +00:00
quicc
ral - Replace the magic numbers with something more readable. 2016-06-08 02:37:23 +00:00
random Revert previous commit, until issue with sparc64 resolved. 2016-06-09 14:44:05 +00:00
rc sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
rccgpio
re sys/dev: use our nitems() macro when it is avaliable through param.h. 2016-04-19 23:37:24 +00:00
rl sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
rndtest sys: use our nitems() macro when param.h is available. 2016-04-21 19:40:10 +00:00
rp
rt Add compat strings used by OpenWRT to some Mediatek/Ralink drivers 2016-04-20 14:47:16 +00:00
rtwn rtwn: fix Tx processing, add some busdma synchronization. 2016-06-20 22:45:19 +00:00
safe
sbni sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
scc
sdhci Add a convenience macro that masks all the bits related to clock divisors 2016-05-26 02:55:41 +00:00
sec
sf sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
sfxge sfxge(4): bump version to the closest out-of-tree driver version 2016-06-09 12:33:53 +00:00
sge Remove slightly used const values that can be replaced with nitems(). 2016-04-21 15:38:28 +00:00
siba Switch mips/sentry5 to bhnd(4), and unify with mips/broadcom 2016-06-04 19:53:47 +00:00
siis sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
sio sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
sis
sk sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
smbus
smc
sn sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
snc sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
snp
sound Consistently use device_t 2016-08-09 19:32:06 +00:00
speaker sys/dev: use our nitems() macro when it is avaliable through param.h. 2016-04-19 23:37:24 +00:00
spibus [spigen] add initial spigen driver from green@ 2016-05-26 07:02:20 +00:00
ste
stg
stge sys/dev: use our nitems() macro when it is avaliable through param.h. 2016-04-19 23:37:24 +00:00
streams Fix streams and svr4 module dependency. Both modules are complaining about 2016-04-23 20:29:55 +00:00
sym Add a riscv define. 2016-06-01 14:03:13 +00:00
syscons Less-quick fix for locking fixes in r172250. r172250 added a second 2016-08-25 13:46:52 +00:00
tdfx Cleanup unnecessary semicolons from the kernel. 2016-04-10 23:07:00 +00:00
terasic
ti sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
tl sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
tpm Consistently use device_t 2016-08-09 19:32:06 +00:00
trm sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
tsec Add an alternate compatible string for eTSEC devices. 2016-05-19 00:04:58 +00:00
twa
twe sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
tws Remove NULL checks after M_WAITOK allocations from tws(4). 2016-08-09 15:50:03 +00:00
tx sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
txp
uart Remove now unused functions from the FDT uart cpu driver. 2016-07-24 08:52:49 +00:00
ubsec
urtwn urtwn: fix A-MSDU tx aggregation when encryption is used. 2016-07-20 22:05:44 +00:00
usb Fix key delay and repeat, part 2. 2016-08-24 05:54:11 +00:00
utopia
vge
viapm
viawd
videomode
virtio Fix vtnet hang with max_virtqueue_pairs > VTNET_MAX_QUEUE_PAIRS 2016-08-11 21:13:58 +00:00
vkbd sys/dev: use our nitems() macro when it is avaliable through param.h. 2016-04-19 23:37:24 +00:00
vmware/vmxnet3 Update if_hwassist when interface options are changed. 2016-07-18 14:40:13 +00:00
vnic INTRNG: Rework handling with resources. Partially revert r301453. 2016-08-19 10:52:39 +00:00
vr
vt vt: fix old keyboard release in CONS_SETKBD 2016-08-18 16:22:40 +00:00
vte
vx sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
vxge sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
watchdog
wb
wbwd etc: minor spelling fixes. 2016-05-02 16:47:28 +00:00
wi wi: fix a typo. 2016-05-20 08:58:06 +00:00
wpi sys: Make use of our rounddown() macro when sys/param.h is available. 2016-04-30 14:41:18 +00:00
wtap etc: minor spelling fixes. 2016-05-02 16:47:28 +00:00
xe sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00
xen xen-netfront: improve the logic when handling nic features from ioctl 2016-08-05 15:48:56 +00:00
xilinx Assert CS for single transfers. 2016-04-19 15:36:18 +00:00
xl sys/dev: minor spelling fixes. 2016-05-03 03:41:25 +00:00