freebsd-nq/sys/dev
Justin T. Gibbs 70351c9a14 Store a pointer to our softc in the kernel's SCB structure. In the
past we stored this data in the CCB and attained the CCB via a pointer
in the SCB.  In ahc_timeout(), however, the timedout SCB may have already
been completed (inherent race), meaning that the CCB could have been recycled,
and the ahc pointer reset.

Clean up the logic in ahc_search_qinfifo that deals with the busy device
table.  For some reason it assumed that the only valid time to search
to see if additional lun entries should be checked was if lun 0 matched.
Now we properly itterate through the necessary luns.  The busy device
table is used to detect invalid reselections, so a device would have had
to perform an unexpected reselection for this to cause problems.  Further,
all luns are collapsed to a single entry unless we have external ram
with large SCBs (3940AU models) so the chance of this happening was
rather remote.

Clean up the logic for dealing with the untagged queues.  We now set a
flag in the SCB that indicates that it is on the untagged queue instead
of inferring this from the type and setup of the CCB pased into us by
CAM.

In ahc_timeout(), don't print the path of the SCB until the controller
is paused and we are sure that it has not completed yet.  This, in
conjunction with referencing the ahc pointer in the SCB rather than
the CCB in the SCB avoids panics in the case of a timedout scb completing
just before the timeout handler runs.  This turns out to be guaranteed
if interrupt delivery is failing, as we run our interrupt handler to
flush any "just missed events" when a timeout occurs.  Mention the
likelyhood of broken interrupts if a timedout SCB is completed by
our call to ahc_intr().
2000-10-11 23:46:34 +00:00
..
aac Fix up some more comments that were reversed. 2000-10-03 10:26:29 +00:00
acpi Fix StallOp implementaion. I've noticed that StallOp corresponds to 2000-10-02 08:58:50 +00:00
advansys Fix typo (accessable --> accessible). 2000-06-14 17:53:40 +00:00
agp Convert lockmgr locks from using simple locks to using mutexes. 2000-10-04 01:29:17 +00:00
aha Fix typo (accessable --> accessible). 2000-06-14 17:53:40 +00:00
ahb Fix typo (accessable --> accessible). 2000-06-14 17:53:40 +00:00
aic remove 5 unnecessary includes, per phk's script 2000-09-20 19:34:17 +00:00
aic7xxx Store a pointer to our softc in the kernel's SCB structure. In the 2000-10-11 23:46:34 +00:00
amd Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
amr Whoops. The AMR_QUARTZ_GOFASTER option is meant to disable, not enable 2000-09-11 23:19:13 +00:00
an MF4: fix style(9) whitespace breakage. 2000-08-08 23:53:11 +00:00
ar Mass update of isa drivers using compatability shims to use 2000-05-28 13:40:48 +00:00
asr Fix a race in ASR_ccbAdd and ASR_ccbRemove, which were both manipulating 2000-09-21 20:21:30 +00:00
ata - Heavyweight interrupt threads on the alpha for device I/O interrupts. 2000-10-05 23:09:57 +00:00
atkbdc Initiate deorbit burn sequence for <machine/mouse.h>. 2000-10-09 08:08:36 +00:00
awi awi needs to access memory with 8bit, 2000-10-10 09:50:25 +00:00
bktr Make MOD_UNLOAD return EBUSY to prevent it being unloaded automatically when we 2000-09-11 12:23:50 +00:00
buslogic Fix typo (accessable --> accessible). 2000-06-14 17:53:40 +00:00
cardbus Sync to latest cardbusdevs file 1999-11-18 07:22:59 +00:00
ccd Avoid the modules madness I inadvertently introduced by making the 2000-09-02 19:17:34 +00:00
cs Make all Ethernet drivers attach using ether_ifattach() and detach using 2000-07-13 22:54:34 +00:00
cy Use schedsofttty() again (SMPng casualty with intentionally wrong fix 2000-10-08 14:37:39 +00:00
dc Add support for parsing the media blocks from the SROM on 21143 2000-10-05 17:36:14 +00:00
de Make all Ethernet drivers attach using ether_ifattach() and detach using 2000-07-13 22:54:34 +00:00
dec Add missing $FreeBSD$ 2000-05-01 19:54:26 +00:00
dgb Mass update of isa drivers using compatability shims to use 2000-05-28 13:40:48 +00:00
dpt Allow the DPT pci attachment to share IRQ's 2000-08-26 22:19:53 +00:00
ed Allocate memory resource to access the attribute memory of a card. 2000-09-25 06:01:42 +00:00
eisa Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
en Replace the mbuf external reference counting code with something 2000-08-19 08:32:59 +00:00
ep Remove 7 unnecessary includes frmo phk's script 2000-09-20 19:31:37 +00:00
ex Add support for pccard attachments of the ex driver. It supports the 2000-09-29 03:58:06 +00:00
fb * Completely rewrite the alpha busspace to hide the implementation from 2000-08-28 21:48:13 +00:00
fdc Avoid the modules madness I inadvertently introduced by making the 2000-09-02 19:17:34 +00:00
fe Removed unneeded include files. 2000-09-22 09:59:23 +00:00
fxp Don't #include <sys/proc.h>, since machine/mutex.h does it now. 2000-09-23 00:01:37 +00:00
hea Remove un-needed #include's. 2000-01-17 20:49:59 +00:00
hfa Ensure that DMA mappings are freed in error situations. 2000-01-15 21:01:04 +00:00
ic Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
ichsmb Driver for the Intel 82801AA (ICH) SMBus controller and compatibles. 2000-10-06 00:09:46 +00:00
ida The DEC version of the Smart controller has its configuration information 2000-07-27 22:24:44 +00:00
ie Make all Ethernet drivers attach using ether_ifattach() and detach using 2000-07-13 22:54:34 +00:00
iicbus Allow these drivers to be detached. 2000-06-16 07:20:29 +00:00
isp some copyright cleanups 2000-09-21 20:16:04 +00:00
ispfw some copyright cleanups 2000-09-21 20:16:04 +00:00
joy Add ADS7182 as a known Joystick. 2000-01-18 08:38:35 +00:00
kbd Initiate deorbit burn sequence for <machine/console.h>. 2000-10-08 21:34:00 +00:00
lmc Adjust to accomodate recent changes to the rcvdata and rcvmsg 2000-05-01 03:31:58 +00:00
lnc Make all Ethernet drivers attach using ether_ifattach() and detach using 2000-07-13 22:54:34 +00:00
mc146818 Add missing $FreeBSD$ 2000-05-01 19:54:26 +00:00
mca Set the RF_SHAREABLE flage when we allocate an IRQ. 2000-03-13 11:43:53 +00:00
mcd Mass update of isa drivers using compatability shims to use 2000-05-28 13:40:48 +00:00
md Avoid the modules madness I inadvertently introduced by making the 2000-09-02 19:17:34 +00:00
mii Add support for parsing the media blocks from the SROM on 21143 2000-10-05 17:36:14 +00:00
mlx Add support for 2.x/3.x firmware adapters which are too old to have a 2000-08-04 06:52:00 +00:00
mly This is the initial import of a new driver for the current family of 2000-08-23 03:22:41 +00:00
mse Initiate deorbit burn sequence for <machine/mouse.h>. 2000-10-09 08:08:36 +00:00
musycc Many and sundry changes. Still alpha quality. 2000-08-29 12:32:01 +00:00
null During a verbose boot, call the null device 'null' rather than 'null0' to 2000-10-06 00:46:29 +00:00
pccard o Record the pccard_function in the ivar. 2000-10-09 03:40:15 +00:00
pcf Remove ~25 unneeded #include <sys/conf.h> 2000-04-19 14:58:28 +00:00
pci Validate the PCI bus number that we fetch from our parent, since there's no 2000-10-09 00:43:45 +00:00
pcic Fix arguments to kthread_create (submitted by takawata@freebsd.org). 2000-10-07 05:42:43 +00:00
pdq Uh, ya, sure this almost compiled for __bsdi__. NOT! 2000-05-21 05:33:40 +00:00
ppbus A quote from the ia64 compiler: 2000-10-10 14:18:50 +00:00
ppc Add support for the PC87303 chipset (found on Miata alphas) and add 2000-07-20 09:28:07 +00:00
random Remove unneeded includes. 2000-09-21 06:23:16 +00:00
randomdev Remove unneeded includes. 2000-09-21 06:23:16 +00:00
ray Add attribute memory setup warnings 2000-07-11 21:31:59 +00:00
rc Made this file compile again after move of stuff from <machine.ipl.h> 2000-10-08 14:41:13 +00:00
rp Fix a bug upon initialization. (_INDX_ADDR -> _INDX_DATA) 2000-08-21 13:18:56 +00:00
scd Mass update of isa drivers using compatability shims to use 2000-05-28 13:40:48 +00:00
sf Close PR# 19904: remember to call sf_setmulti() when initializing the 2000-07-14 19:11:02 +00:00
si Always leave SP_DCEN on (monitor DCD). Otherwise the firmware *really* 2000-01-25 16:45:54 +00:00
sio Add MAE0021 - Jetstream Int V.90 56k Voice Series 2. 2000-10-10 10:06:26 +00:00
sk Replace the mbuf external reference counting code with something 2000-08-19 08:32:59 +00:00
smbus Driver for the Intel 82801AA (ICH) SMBus controller and compatibles. 2000-10-06 00:09:46 +00:00
sn Implement sn_pccard_match. The match routines are the compromise 2000-09-28 07:35:06 +00:00
snc Don't use bus_get_resource() and bus_get_resource_start() functions if 2000-10-03 11:47:34 +00:00
snp Unstaticize this driver. You can have as many snoop devices as you can 2000-04-02 00:35:37 +00:00
sound Reduce buffer size from 64K to 4K. 2000-10-09 14:54:32 +00:00
speaker Add PnP probe methods to some common AT hardware drivers. In each case, 2000-06-23 07:44:33 +00:00
sr Mass update of isa drivers using compatability shims to use 2000-05-28 13:40:48 +00:00
streams Cleanup after repo copy of sys/svr4 to sys/compat/svr4. 2000-09-01 08:47:14 +00:00
sym PR: kern/20895 2000-09-03 12:36:21 +00:00
syscons Initiate deorbit burn sequence for <machine/mouse.h>. 2000-10-09 08:08:36 +00:00
tdfx Added some handling code to work with SLI configs, and removed some unused 2000-10-10 03:51:54 +00:00
ti * Completely rewrite the alpha busspace to hide the implementation from 2000-08-28 21:48:13 +00:00
twe Remove some confusing verbosity - we have no idea what RAID level the 2000-07-20 02:31:56 +00:00
tx Make all Ethernet drivers attach using ether_ifattach() and detach using 2000-07-13 22:54:34 +00:00
usb Add missing comma at the end of line. 2000-10-11 01:12:55 +00:00
vinum open_drive: 2000-08-16 04:31:37 +00:00
vn Call make_dev() with the correct minor number. 2000-09-26 19:09:44 +00:00
vr Make all Ethernet drivers attach using ether_ifattach() and detach using 2000-07-13 22:54:34 +00:00
vx Make all Ethernet drivers attach using ether_ifattach() and detach using 2000-07-13 22:54:34 +00:00
wi Close PR #20963. Do not pass encryption keys back to the caller via 2000-09-07 17:05:12 +00:00
wl Make all Ethernet drivers attach using ether_ifattach() and detach using 2000-07-13 22:54:34 +00:00
xe Make all Ethernet drivers attach using ether_ifattach() and detach using 2000-07-13 22:54:34 +00:00