1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-20 11:11:24 +00:00
freebsd/sys/dev
Marcel Moolenaar eead2d551c Protect against broken hardware. In this particular case, protect against
H/W not de-asserting the interrupt at all. On x86, and because of the
following conditions, this results in a hard hang with interrupts disabled:
1.  The uart(4) driver uses a spin lock to protect against concurrent
    access to the H/W. Spin locks disable and restore interrupts.
2.  Restoring the interrupt on x86 always writes the flags register. Even
    if we're restoring the interrupt from disabled to disabled.
3.  The x86 CPU has a short window in which interrupts are enabled when the
    flags register is written.
4.  The uart(4) driver registers a fast interrupt by default.

To catch this case, we first try to clear any pending H/W interrupts and in
particular, before setting up the interrupt. This makes sure the interrupt
is masked on the PIC. The interrupt handler now has a limit set on the
number of iterations it'll go through to clear interrupt conditions. If the
limit is hit, the handler will return FILTER_SCHEDULE_THREAD. The attach
function will check for this return code and avoid setting up the interrupt
and foce polling in that case.

Obtained from:	Juniper Networks, Inc.
2013-07-10 17:42:20 +00:00
..
aac Allow unmapped I/O via aacd(4). It shouldn't be too hard to add the 2013-05-30 00:22:07 +00:00
aacraid Unbreak ia64 tinderbox: 64-bit support was made conditional upon 2013-05-26 22:11:13 +00:00
acpi_support Consistently cast ACPICA 64-bit integer types when we print them. 2013-06-26 23:52:10 +00:00
acpica Don't perform the acpi_DeviceIsPresent() check for PCI-PCI bridges. If 2013-07-03 17:26:05 +00:00
adb Use uiomove return value instead of returning 0. 2012-11-13 06:03:43 +00:00
adlink Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
advansys Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
ae
age Be sure to actually decrement the "count" parameter for each processed 2013-06-17 22:59:47 +00:00
agp Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
aha Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
ahb Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
ahci Add ID for Marvell 88SE9215 AHCI SATA controller. 2013-07-09 08:49:17 +00:00
aic Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
aic7xxx Fxi a bunch of typos. 2013-05-10 16:41:26 +00:00
alc Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
ale Make sure to stop both TX and RX MACs in ale_stop_mac(). Previously 2012-12-17 06:01:57 +00:00
altera Partial MFC of change 228122: 2013-04-30 18:29:05 +00:00
amdsbwd Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
amdtemp Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
amr Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
an Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
arcmsr Refresh vendor driver version which fixes command queue 2013-07-06 01:46:58 +00:00
asmc Give device_printf format string to pacify clang warning. 2012-11-09 14:58:26 +00:00
asr
ata Add test for SATA registers writability and skip using them if it failed. 2013-06-25 09:15:49 +00:00
ath Don't log anything if npkts == 0. 2013-06-29 19:57:57 +00:00
atkbdc Remove a bogus re-assignment. 2013-05-13 20:03:59 +00:00
auxio Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
bce Fix triggering false watchdog timeout when controller is in PAUSE 2013-06-30 05:12:18 +00:00
bfe Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
bge Fix triggering false watchdog timeout as done in bce(4) when 2013-06-30 05:56:13 +00:00
bktr Pass a format string to kproc_create() [1] and thus fix the build with 2013-04-30 05:08:17 +00:00
bm Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
buslogic Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
bvm Probe for existence of the bvm debug port instead of just assuming that it is 2012-10-27 22:54:23 +00:00
bwi Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
bwn Fixing a clang warning about using uninitialized variable. 2013-05-06 21:57:44 +00:00
bxe This fixes a out-of-order problem with several 2013-02-07 15:20:54 +00:00
cadence Bring copyright changes with the agreement of Thomas Skibo. 2013-04-28 07:00:36 +00:00
cardbus
cas - Correct mispellings of the word necessary 2013-04-17 11:42:40 +00:00
ce Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
cesa Move initialization of CESA decoding windows from common section 2013-05-06 13:34:36 +00:00
cfe
cfi Use direct custom implementations instead of g_handleattr() for CFI and NAND 2013-06-12 12:51:43 +00:00
ciss The controller does not zero this data structure, ever. 2013-04-28 20:46:32 +00:00
cm Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
cmx
coretemp Mark the coretemp(4) sysctls as MPSAFE, ensuring that Giant won't be held 2013-02-18 22:47:16 +00:00
cp Fxi a bunch of typos. 2013-05-10 16:41:26 +00:00
cpuctl Increase the microcode max size to 16K to accomodate more recent Intel 2013-07-03 20:29:15 +00:00
cpufreq Add a quirk to disable this driver for certain older laptops with an ICH2 2013-02-26 18:30:47 +00:00
cs Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
ct Use ANSI prototype to fix build with clang. 2012-11-10 14:58:06 +00:00
ctau Fxi a bunch of typos. 2013-05-10 16:41:26 +00:00
cx Fxi a bunch of typos. 2013-05-10 16:41:26 +00:00
cxgb Remove unnecessary #include's. 2013-06-02 18:10:16 +00:00
cxgbe - Show the reason why link is down if this information is available. 2013-07-05 01:53:51 +00:00
cy
dc Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
dcons MFcalloutng: 2013-02-19 18:22:25 +00:00
de Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
digi Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
dpms
dpt options DPT_HANDLE_TIMEOUTS hasn't worked since dpt(4) was converted to CAM 2013-04-10 23:20:09 +00:00
drm Fix white spaces. 2013-04-23 18:30:33 +00:00
drm2 Remove unneeded page lock around vm_page_insert(). 2013-07-06 04:46:42 +00:00
e1000 if_lem.c: make sure that lem_rxeof() can drain the entire rx queue 2013-05-09 17:07:30 +00:00
ed Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
eisa
en Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
ep Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
esp
et Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
etherswitch Bring in a basic ethernet switch driver for the IP17x series of 2013-05-08 20:58:41 +00:00
ex Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
exca
fatm Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
fb Limit the amount of video memory we map for the driver to the maximum value. 2013-03-27 18:06:28 +00:00
fdc Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
fdt Add basic support for FDT to i386 & amd64. This change includes: 2013-05-21 03:05:49 +00:00
fe Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
filemon Build fix: Only <sys/cdefs.h> should be included before __FBSDID(). 2013-06-04 15:35:37 +00:00
firewire MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
flash Add support for two new winbond SPI flash parts. 2013-06-08 20:12:14 +00:00
fxp Avoid unnecessary controller reinitialization by checking driver 2013-06-10 07:31:49 +00:00
gem Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
glxiic This isn't functionally identical. In some cases a hint to disable 2012-10-22 13:06:09 +00:00
glxsb
gpio Style fixes 2012-11-23 19:20:38 +00:00
gxemul Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
hatm Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
hifn Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
hme Avoid controller reinitialization which could be triggered by 2013-07-10 06:46:46 +00:00
hpt27xx Import HighPoint DC Series Data Center HBA (DC7280 and R750) driver. 2013-07-06 07:49:41 +00:00
hptiop Add PCI IDs for HighPoint RocketRAID 4521, 3620, 3622 and 3640 2013-07-05 23:10:02 +00:00
hptmv Fxi a bunch of typos. 2013-05-10 16:41:26 +00:00
hptnr Import HighPoint DC Series Data Center HBA (DC7280 and R750) driver. 2013-07-06 07:49:41 +00:00
hptrr Silence warning from clang: 2013-04-28 20:55:45 +00:00
hwpmc Relax the vm object locking. Use a read lock. 2013-06-05 17:00:10 +00:00
ic Add support for A10 uart. 2013-03-01 01:42:31 +00:00
ichsmb Add Intel Lynx Point PCH SMBus Device IDs 2013-01-02 22:01:26 +00:00
ichwd Don't log a message when the watchdog is reloaded. It's not useful to do so 2013-03-09 15:04:44 +00:00
ida
ie Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
ieee488
if_ndis Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
iicbus Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
iir Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
io
ipmi Unlock IPMI sc while performing requests via KCS and SMIC interfaces. 2013-03-25 14:30:34 +00:00
ips Improving r249461 by providing a better way to handle the clang warning. 2013-04-17 21:21:27 +00:00
ipw Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
isci For ATA_PASSTHROUGH commands, pretend isci(4) supports multiword DMA 2013-06-26 22:08:45 +00:00
iscsi/initiator MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
isf Merge Perforce changeset 219952 to head: 2013-01-13 16:57:11 +00:00
isp Flag isp(4) as supporting unmapped I/O; all necessary conversion actually 2013-06-04 11:05:57 +00:00
ispfw
iwi Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
iwn Implement basic 802.11n awareness in the PHY and AMRR rate control code. 2013-07-04 21:16:49 +00:00
ixgb Remove redundant definitions to appease tinderbox. 2013-07-09 18:15:59 +00:00
ixgbe Add quad port probe support, this gives the admin proper information about the slot 2013-06-18 21:28:19 +00:00
jme Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
joy
kbd
kbdmux This isn't functionally identical. In some cases a hint to disable 2012-10-22 13:06:09 +00:00
ksyms
le Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
led MFcalloutng: 2013-02-19 19:25:50 +00:00
lge Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
lindev
lmc Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
malo Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
mbox Add a mailbox interface. 2013-07-07 19:47:22 +00:00
mc146818
mca
mcd The other giant locked storage drivers have removed splbio(), for the 2013-02-21 02:34:04 +00:00
md Fix the data corruption on the swap-backed md. 2013-05-24 09:48:42 +00:00
mem Add new privileges, PRIV_KMEM_READ and PRIV_KMEM_WRITE, used in opening 2013-07-05 21:31:16 +00:00
mfi Remove forced timeout of in-flight commands from mfi_timeout. 2013-07-01 17:57:22 +00:00
mge Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
mii For RTL8211B or later PHYs, enable crossover detection and 2013-03-20 05:31:34 +00:00
mk48txx
mlx Remove FreeBSD 4.x compat shims. Verified by md5. 2012-09-26 14:17:14 +00:00
mly MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
mmc Use meaningful names when creating mmc/sd threads. 2013-07-09 03:00:06 +00:00
mn Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
mps sys/dev/mps/mps.c 2013-06-04 22:32:33 +00:00
mpt Flag mpt(4) as supporting unmapped I/O; all necessary conversion actually 2013-06-24 21:27:15 +00:00
mse
msk - Merge from r249476: Ensure that PCI bus BUS_GET_DMA_TAG() method sees 2013-05-30 12:16:55 +00:00
mvs Replicate r242422 from ata(4) to mvs(4): 2013-06-12 18:08:11 +00:00
mwl Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
mxge - Correct mispellings of word resource 2013-04-17 11:47:32 +00:00
my Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
nand Use direct custom implementations instead of g_handleattr() for CFI and NAND 2013-06-12 12:51:43 +00:00
ncv
netmap - fix a bug in the previous commit that was dropping the last packet 2013-06-05 17:27:59 +00:00
nfe Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
nge Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
nmdm
nsp Fxi a bunch of typos. 2013-05-10 16:41:26 +00:00
ntb Add a new driver to support the Intel Non-Transparent Bridge(NTB). 2013-04-29 22:48:53 +00:00
null Provide a device name in the sysctl tree for programs to query the 2012-11-01 17:01:05 +00:00
nvd Update copyright dates. 2013-07-09 21:22:17 +00:00
nve Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
nvme Add comment explaining why CACHE_LINE_SIZE is defined in nvme_private.h 2013-07-09 21:24:19 +00:00
nvram
nvram2env Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
nxge Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
oce Update driver with recent vendor improvements, most notably support 2013-07-06 08:30:45 +00:00
ofw
patm Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
pbio
pccard
pccbb
pcf
pci - As it turns out, not only MSI-X is broken for devices passed through by 2013-07-09 23:12:26 +00:00
pcn Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
pdq Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
powermac_nvram
ppbus Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
ppc Fix build. 2013-02-21 12:40:52 +00:00
pst
pty
puc Clean up -Wheader-guard warnings. 2013-06-17 20:11:04 +00:00
qlxgb No need to set if_mtu since it automatically updated by ether_ifattach(). 2013-05-08 18:25:46 +00:00
qlxgbe Port 0 needs to wait for ACK only if it issued the RESET. 2013-07-03 17:57:35 +00:00
qlxge Add Qlogic 10Gb Ethernet Driver for Qlogic 8100 Series CNA Adapter 2013-06-25 17:50:22 +00:00
quicc
ral Implement basic 802.11n awareness in the PHY and AMRR rate control code. 2013-07-04 21:16:49 +00:00
random Refactor random_systat to be a *random_systat. This avoids unnecessary 2013-07-09 23:47:28 +00:00
rc
re Correct comment typos. 2013-06-28 14:41:06 +00:00
rndtest - Correct mispellings of the word occurrence 2013-04-17 11:40:10 +00:00
rp
rt - Use the consistenly PHY-specific reset routine PHY_RESET() rather than 2013-06-14 05:36:47 +00:00
safe Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
sbni Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
scc
scd
sdhci Add Xilinx Zynq ARM/FPGA SoC support to FreeBSD/arm port. 2013-04-27 22:38:29 +00:00
sec
sf Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
sfxge Fxi a bunch of typos. 2013-05-10 16:41:26 +00:00
sge Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
si Remove incorrect comment about splsoftclock. 2013-02-21 07:19:50 +00:00
siba
siis Make siis(4) and mvs(4) send bus_get_dma_tag() requests to parent buses 2013-04-18 12:43:06 +00:00
sio Add support for CIR1000 - Cirrus Logic V34 to the sio driver 2012-11-13 20:38:55 +00:00
sis r119712 introduced SIS_TYPE_83816 but it was not actually set in 2013-03-18 04:46:17 +00:00
sk - Merge from r249476: Ensure that PCI bus BUS_GET_DMA_TAG() method sees 2013-05-30 12:16:55 +00:00
smbus
smc Disable interrupts in filter in order to avoid interrupt storm and 2012-12-13 03:33:01 +00:00
sn Fxi a bunch of typos. 2013-05-10 16:41:26 +00:00
snc Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
snp
sound Add quirk to configure headphones redirection on ASUS UX31A laptop. 2013-07-08 15:28:09 +00:00
speaker
spibus
ste Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
stg Fxi a bunch of typos. 2013-05-10 16:41:26 +00:00
stge Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
streams Revert previous commit... 2012-10-10 08:36:38 +00:00
sym - Flag sym(4) as supporting unmapped I/O; all necessary conversion actually 2013-06-05 01:22:59 +00:00
syscons On some generations of the Intel GPU, disabling of the VGA Display 2013-06-18 20:19:09 +00:00
tdfx Revert previous commit... 2012-10-10 08:36:38 +00:00
terasic Merge Perforce changeset 219952 to head: 2013-01-13 16:57:11 +00:00
ti Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
tl Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
tpm
trm Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
tsec Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
twa MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
twe
tws Fix typo in the definition of the TWS_DATA_CCB. 2013-05-23 16:37:43 +00:00
tx Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
txp Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
uart Protect against broken hardware. In this particular case, protect against 2013-07-10 17:42:20 +00:00
ubsec Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
usb Adding urtwn(4) firmware and related changes. 2013-07-10 08:21:09 +00:00
utopia Revert previous commit... 2012-10-10 08:36:38 +00:00
vge Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
viawd
virtio Merge virtio_scsi change from projects/virtio 2013-07-04 18:00:27 +00:00
vkbd
vr Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
vte Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
vx Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays 2013-01-30 18:01:20 +00:00
vxge Clean up -Wheader-guard warnings. 2013-06-17 20:11:04 +00:00
watchdog watchdogd(8) and watchdog(4) enhancements. 2013-02-27 19:03:31 +00:00
wb Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
wbwd Add ID for Nuvoton WPCM450RA0BX found on Supermicro X9SCA-F motherboards. 2013-01-11 10:22:09 +00:00
wds Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
wi Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
wl Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
wpi Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
wtap wtap should not set the IEEE80211_F_DATAPAD flag; 2012-12-18 16:15:20 +00:00
xe Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00
xen In the Xen block front driver, take advantage of backends that 2013-06-26 20:39:07 +00:00
xl Mechanically substitute flags from historic mbuf allocator with 2012-12-04 09:32:43 +00:00