freebsd-dev/sys
marcel 5bd9e578d8 Make the Z8530 more reliable as low-level console by making use of the
fact that access to RR0 does not need a prior write to the register
index because the index always reverts to 0 after the indexed register
has been accessed.

Typically when a RR or WR is to accessed, one programs the index (which
is a write to the control register), followed by a read or write to the
actual indexed register (a read pr write to the same control register).
When this non-atomic sequence is interrupted after having written the
index and low-level console I/O is done in that situation, the write to
program the index will actually write to the indexed register and nuke
state. This almost always yields a wedge.

By not programming the index register and instead just reading from RR0,
the worst case scenario is non-fatal. For if we don't actually read from
RR0 but some other register we get an invalid status, which may lead us
to conclude that the transit data register is empty when it's not or that
the receive data register contains data when it doesn't. Hence, we may
lose an output character or get a sporadic input character, but given
the situation this is a non-issue.

Full serialization is not possible due to the fact that this code needs
to work from DDB and before mutex initialization has happened.

In collaboration with: kris@, marius@
Tested by: kris@
MFC after: 1 day
X-MFC: 5.4-RELEASE candidate
2005-04-27 21:57:51 +00:00
..
alpha Change cpu_set_kse_upcall to more generic style, so we can reuse it 2005-04-23 02:32:32 +00:00
amd64 Remove the ACPI_MAX_THREADS option. 2005-04-25 19:59:09 +00:00
arm Allocating the memory for the kernel stack one time is enough. 2005-04-27 13:29:54 +00:00
boot Allow BOOT_BOOT0_COMCONSOLE_SPEED to be derived from BOOT_COMCONSOLE_SPEED 2005-04-25 17:41:35 +00:00
bsm
cam Make sure we look at the correct sub op codes when 2005-04-14 04:51:18 +00:00
coda - Change all filesystems and vfs_cache to relock the dvp once the child is 2005-04-13 10:59:09 +00:00
compat - Pass the ISOPEN flag to namei so filesystems will know we're about to 2005-04-27 09:05:19 +00:00
conf retire the musycc E1/T1 driver. 2005-04-25 07:07:50 +00:00
contrib The current H.323 proxy source has a license that isn't suitable for inclusion 2005-04-27 05:53:12 +00:00
crypto
ddb Don't enter the debugger if KDB_UNATTENDED is set or if 2005-04-20 20:52:46 +00:00
dev Make the Z8530 more reliable as low-level console by making use of the 2005-04-27 21:57:51 +00:00
doc
fs - Fix several locking problems in unionfs_mount so that it will come 2005-04-27 09:07:13 +00:00
gdb
geom Fix provider's size check for 'insert' command. 2005-04-25 10:41:26 +00:00
gnu - Change all filesystems and vfs_cache to relock the dvp once the child is 2005-04-13 10:59:09 +00:00
hwpmc Include <sys/pmc.h> instead of <machine/pmc_mdep.h>. The MI header 2005-04-20 20:26:39 +00:00
i4b
i386 - Pass the ISOPEN flag to namei so filesystems will know we're about to 2005-04-27 09:05:19 +00:00
ia64 Change cpu_set_kse_upcall to more generic style, so we can reuse it 2005-04-23 02:32:32 +00:00
isa Add ISACFGATTR_HINTS flag to allow detection of a device that was created 2005-04-13 03:26:24 +00:00
isofs/cd9660 - Change all filesystems and vfs_cache to relock the dvp once the child is 2005-04-13 10:59:09 +00:00
kern - Don't vgonel() via vgone() or vrecycle() if the vnode is already doomed. 2005-04-27 10:03:21 +00:00
libkern
modules new files and compile defines to build new ipfilter 2005-04-25 18:46:00 +00:00
net - Call if_link_state_change() for each vlan, when link changes 2005-04-20 12:16:41 +00:00
net80211 Revise crypto api lightly to improve group key handling: 2005-04-12 17:55:13 +00:00
netatalk
netatm
netgraph - Initialize interface as UP when hook is connected. 2005-04-20 14:22:13 +00:00
netinet Introduce a struct icmphdr which contains the type, code, and cksum 2005-04-26 18:10:21 +00:00
netinet6 Add IPv6 support to IPFW and Dummynet. 2005-04-18 18:35:05 +00:00
netipsec
netipx
netkey
netnatm
netncp
netsmb
nfs
nfs4client - We want if (mrep != NULL) not if (m_freem != NULL). m_freem will never 2005-04-25 05:11:19 +00:00
nfsclient When NFS was converted to the new mount syscall, code was written that sets 2005-04-27 14:46:02 +00:00
nfsserver NFS write gathering defers execution of NFS server write requests to wait 2005-04-17 16:25:36 +00:00
opencrypto
pc98 Revert previous commit: The hwpmc(4) driver compiles on all platforms. 2005-04-20 22:19:51 +00:00
pccard
pci Deal with failed malloc calls[1]. 2005-04-25 10:18:24 +00:00
posix4
powerpc Change cpu_set_kse_upcall to more generic style, so we can reuse it 2005-04-23 02:32:32 +00:00
rpc
security Get the directory structure correct in a comment. 2005-04-22 19:09:12 +00:00
sparc64 Change cpu_set_kse_upcall to more generic style, so we can reuse it 2005-04-23 02:32:32 +00:00
sys - Changes to vgone() and related teardown code have meant that the vxthread 2005-04-27 09:18:10 +00:00
tools
ufs - Plug memory leak. 2005-04-16 10:57:49 +00:00
vm - Pass the ISOPEN flag to namei so filesystems will know we're about to 2005-04-27 09:05:19 +00:00
Makefile