opnsense-src/sys
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
..
amd64 Clear m->object for the page taken from the delayed free list for 2013-07-10 09:24:03 +00:00
arm Remove trailing whitespaces. 2013-07-10 10:15:38 +00:00
boot default loader.conf: there is no need to load zpool.cache now 2013-07-09 08:40:05 +00:00
bsm Implement chflagsat(2) system call, similar to fchmodat(2), but operates on 2013-03-21 22:59:01 +00:00
cam Added 4K QUIRK for OCZ Vertex 4 SSDs 2013-07-09 10:41:17 +00:00
cddl dtrace/fasttrap: install hook functions only after all data is 2013-07-09 09:05:00 +00:00
compat - Move videodev headers from compat/linux to contrib/v4l (cp from vendor and 2013-07-06 19:59:06 +00:00
conf Adding urtwn(4) firmware and related changes. 2013-07-10 08:21:09 +00:00
contrib Fix build for gcc users by declaring variables for unions in structs which 2013-07-10 10:40:52 +00:00
crypto Sync with KAME. 2013-07-09 22:04:35 +00:00
ddb
dev Protect against broken hardware. In this particular case, protect against 2013-07-10 17:42:20 +00:00
fs Reinstate the assertion from r253045. 2013-07-09 14:23:00 +00:00
gdb
geom When panicing due to the gjournal overflow, print the geom metadata 2013-07-10 10:11:43 +00:00
gnu/fs/reiserfs Garbage collect XFS bits which are now already completely disconnected 2013-03-02 15:33:54 +00:00
i386 Import HighPoint DC Series Data Center HBA (DC7280 and R750) driver. 2013-07-06 07:49:41 +00:00
ia64 Fix issues with zeroing and fetching the counters, on x86 and ppc64. 2013-07-01 02:48:27 +00:00
isa
kern Add vfs_mounted and vfs_unmounted events so that components can be informed 2013-07-10 15:35:25 +00:00
kgssapi Add support for host-based (Kerberos 5 service principal) initiator 2013-07-09 01:05:28 +00:00
libkern Attempt to mitigate poor initialization of arc4 by one-shot 2013-04-19 00:30:52 +00:00
mips Nearly a complete rewrite of elf.h. 2013-07-09 19:01:38 +00:00
modules Adding urtwn(4) firmware and related changes. 2013-07-10 08:21:09 +00:00
net Correct CTASSERT condition. 2013-07-09 15:10:27 +00:00
net80211 Make kassert_printf use __printflike. 2013-07-07 21:39:37 +00:00
netatalk Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
netgraph Fix several typos 2013-05-12 16:43:26 +00:00
netinet Extend debug logging of TCP timestamp related specification 2013-07-10 12:06:01 +00:00
netinet6 Correct the size of allocated memory to store array of counters. 2013-07-09 15:20:46 +00:00
netipsec Migrate structs ahstat, espstat, ipcompstat, ipipstat, pfkeystat, 2013-07-09 10:08:13 +00:00
netipx Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
netnatm Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
netpfil Improve locking strategy between keys hash and ID hash. 2013-06-13 06:07:19 +00:00
netsmb Remove a reference to LK_DRAIN now that lockmgr(9) is gone from this 2013-06-28 20:21:13 +00:00
nfs Move the NFS FHA (File Handle Affinity) code from sys/nfsserver to 2013-04-17 22:42:43 +00:00
nfsclient A problem with the old NFS client where large writes to large files 2013-07-04 00:54:23 +00:00
nfsserver - Convert the bufobj lock to rwlock. 2013-05-31 00:43:41 +00:00
nlm
ofed Allow mlx4 devices to switch from Ethernet to Infiniband (and vice versa): 2013-07-08 21:25:12 +00:00
opencrypto When porting XTS-related code from OpenBSD I forgot to update copyright (only 2013-02-20 22:59:53 +00:00
pc98 MFi386: revision 251039 2013-06-01 12:21:59 +00:00
pci - Corrrect mispellings of word useful 2013-04-17 11:45:15 +00:00
powerpc Fix indentation. 2013-07-02 07:17:56 +00:00
rpc Add support for host-based (Kerberos 5 service principal) initiator 2013-07-09 01:05:28 +00:00
security audit_proc_coredump: check return value of audit_new 2013-07-09 09:03:01 +00:00
sparc64 Fix issues with zeroing and fetching the counters, on x86 and ppc64. 2013-07-01 02:48:27 +00:00
sys Add vfs_mounted and vfs_unmounted events so that components can be informed 2013-07-10 15:35:25 +00:00
teken
tools Further refine the handling of stop signals in the NFS client. The 2013-02-21 19:02:50 +00:00
ufs There are several code sequences like 2013-07-09 20:49:32 +00:00
vm Fix typo in comment. 2013-07-09 13:22:30 +00:00
x86 Fix a KTR_BUSDMA format string. 2013-06-18 06:55:58 +00:00
xdr Use m_get() and m_getcl() instead of compat macros. 2013-03-15 10:21:18 +00:00
xen Adjust i386 Xen PV support for updated Xen interface files. 2013-06-17 01:43:07 +00:00
Makefile Remove netncp cscope entry missed in r248097 2013-03-12 14:21:52 +00:00