NetBSD/sys
thorpej a228727423 Apply the following change from 06/28/2003 04:46:54 by gibbs to the
FreeBSD ahd driver:

Fix a race condition in the flushing of commands that
have completed across the bus but not to the host before
processing of an exception condition (busfree, bus reset,
etc.).  When flushing the controller of completed commands,
we also look for packetized commands that have completed
with good status and are stored in the "good status fifo".
The hardware will post to the good status fifo even if
data for that command is still active in a FIFO.  In
one particular failure case, a command outstanding on the
bus reconnected, transferred data into a FIFO, and provided
good status while the host driver was processing an expected
busfree event (PPR message negotiation).  This resulted in
an entry in the good status fifo that we completed, but
since the sequencer was paused, the data in the data FIFO
for this command had never been transferred to the host.
Once the busfree processing was complete, the sequencer
was unpaused, and the data completed its transfer to the
host.  In some instances, the client for the data was notified
of the completion and attempted to view the data before
it arrived.  This case only occurred during FreeBSD's
multi-target probe of the SCSI bus while some devices are
negotiating to go packetized and some devices are already
running in packetized.

The fix is to run and FIFOs active with a context in the
good status fifo to completion before completing the command
to the SCSI layer.  This requies duplicating the FIFO rundown
operations in the host driver that would usually be handled
by the firmware, but there is no other alternative.

Don't blindly shutdown the SCB dma engine when restarting
the sequencer.  We may be killing an operation that is
not supposed to be cancelled.  The cases where we need to
shutdown these dma engines are already handled elsewhere in
the driver.

Fix a few more ahd_in?() -> ahd_in?_scbram() instances.
2003-08-29 05:50:42 +00:00
..
altq expose CBQ_MAXPRI to userland 2003-08-20 23:32:25 +00:00
arch Add missing blank line. 2003-08-28 10:58:37 +00:00
coda don't include opt_coda_compat.h unless _KERNEL_OPT. also, only include it 2003-08-28 05:55:19 +00:00
compat Correctly get framebuffer dimensions 2003-08-28 21:47:02 +00:00
conf Duh, remove clock_subr attribute; I am blind today. 2003-08-26 19:23:49 +00:00
crypto rijndael-api-fst.h is not needed 2003-08-28 08:38:19 +00:00
ddb Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
dev Apply the following change from 06/28/2003 04:46:54 by gibbs to the 2003-08-29 05:50:42 +00:00
fs Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
gdbscripts
ipkdb
kern Expand NEW_VMCMD() macro to a real function new_vmcmd() for the 2003-08-29 01:44:02 +00:00
lib An ever sneakier way of making memcmp and bcmp use the same code: 2003-08-27 22:53:18 +00:00
lkm Add exec_setup_stack in execsw for lkm. Hi christos! 2003-08-18 09:04:45 +00:00
miscfs Add casts of LINUX_USRSTACK and USRSTACK to handle the cases 2003-08-21 23:00:07 +00:00
net When trying to (re-)establish a session cope with intermediate output 2003-08-23 16:42:41 +00:00
netatalk Back out the lwp/ktrace changes. They contained a lot of colateral damage, 2003-06-29 22:28:00 +00:00
netccitt Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
netinet don't intiialize m by m0, m0 is not initialized (by introduction of ip_fragment) 2003-08-27 02:09:59 +00:00
netinet6 simplify rijndael.c API - always schedule encrypt/decrypt key. 2003-08-27 14:23:25 +00:00
netipsec change the additional arg to be passed to ip{,6}_output to struct socket *. 2003-08-22 21:53:01 +00:00
netisdn Make it compile on alpha. 2003-08-12 19:49:27 +00:00
netiso change the additional arg to be passed to ip{,6}_output to struct socket *. 2003-08-22 21:53:01 +00:00
netkey allow userland to specify SPD ID. more readable debugging messages. 2003-08-22 06:22:21 +00:00
netnatm Back out the lwp/ktrace changes. They contained a lot of colateral damage, 2003-06-29 22:28:00 +00:00
netns change the additional arg to be passed to ip{,6}_output to struct socket *. 2003-08-22 21:53:01 +00:00
netsmb "(u_short > 0xffff)" is never true, as gcc3 found out 2003-07-03 10:59:12 +00:00
nfs VOP_PUTPAGES() must be called with the vnode's interlock held. 2003-08-26 16:40:10 +00:00
opencrypto Fix-up a few things missed in the rijndael_set_key() change. 2003-08-27 14:55:36 +00:00
stand Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
sys Expand NEW_VMCMD() macro to a real function new_vmcmd() for the 2003-08-29 01:44:02 +00:00
ufs Split CGSIZE definition so it can be used with 64bit fpg values. 2003-08-21 14:41:00 +00:00
uvm When retiring a swap device with marked bad blocks on it we should update 2003-08-28 13:12:17 +00:00
Makefile Descend into opencrypto (in alphabetical order) to install userland OCF header.. 2003-07-25 23:09:26 +00:00