1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-28 16:43:09 +00:00
freebsd/sys
Marcel Moolenaar ca83142fc3 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 Add a stub audit_kevents.h, which defines exactly one audit event: 2005-02-02 14:27:36 +00:00
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 gbde(8) is also rejndael user. 2005-03-11 22:07:04 +00:00
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 check return value of gdb_rx_varhex 2005-03-28 18:31:18 +00:00
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 Don't use 'i386/include' directly. 2005-04-08 03:37:20 +00:00
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 Replace the current strspn() and strcspn() with significantly faster 2005-04-02 18:52:44 +00:00
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 When generating a phase II ARP lookup from aarpwhohas(), use a 2005-02-22 14:37:22 +00:00
netatm In the current world order, solisten() implements the state transition of 2005-02-21 21:58:17 +00:00
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 correct space check 2005-03-09 15:28:48 +00:00
netipx Update copyright: parts of the netipx implementation are covered by a 2005-04-10 18:05:46 +00:00
netkey
netnatm Mark netatm and netnatm explicitly as requiring Giant, as they still do. 2005-02-17 14:21:22 +00:00
netncp avoid potential null ptr derefs 2005-02-23 22:44:38 +00:00
netsmb Explicitly hold a reference to the cdev we have just cloned. This 2005-03-31 12:19:44 +00:00
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 just use crypto/rijndael, and nuke opencrypto/rindael.[ch]. 2005-03-11 17:24:46 +00:00
pc98 Revert previous commit: The hwpmc(4) driver compiles on all platforms. 2005-04-20 22:19:51 +00:00
pccard Remove more deadwood that never got implemented in NEWCARD, since NEWCARD 2005-02-15 02:54:53 +00:00
pci Deal with failed malloc calls[1]. 2005-04-25 10:18:24 +00:00
posix4 Actually commit the code for kern_sched_get_rr_interval(). 2005-03-31 22:54:48 +00:00
powerpc Change cpu_set_kse_upcall to more generic style, so we can reuse it 2005-04-23 02:32:32 +00:00
rpc - Don't call rpcclnt_realign() if we don't have any mbufs to realign. 2005-03-19 01:16:25 +00:00
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 - Add the character "E" to the understood lock types. This means 2005-04-11 15:15:03 +00:00
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 When building cscopnamefile, default architecture to ${MACHINE}, not i386. 2005-03-08 00:09:41 +00:00