| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
ok kn@
|
|
|
|
| |
ok kn@
|
|
|
|
| |
ok deraadt@ krw@
|
|
|
|
|
|
|
|
|
| |
Account for the case when wdc is attached to the ISA bus and performs
channel probing using a dummy structure that lacks the back pointer to
the controller's softc.
Bug reported and fix tested by Andrew Daugherity, thanks!
OK phessler, jsg, krw, deraadt
|
|
|
|
|
|
|
|
|
| |
Hyper-V and Xen have varying support for detaching emulated IDE
devices ranging from none on Hyper-V to only IDE disks but not
CDROM (Xen). The quirk mechanism provides a way of enforcing the
desired behavior.
With suggestions and OK kettenis, tedu, mlarkin
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the ioff argument to pool_init() is unused and has been for many
years, so this replaces it with an ipl argument. because the ipl
will be set on init we no longer need pool_setipl.
most of these changes have been done with coccinelle using the spatch
below. cocci sucks at formatting code though, so i fixed that by hand.
the manpage and subr_pool.c bits i did myself.
ok tedu@ jmatthew@
@ipl@
expression pp;
expression ipl;
expression s, a, o, f, m, p;
@@
-pool_init(pp, s, a, o, f, m, p);
-pool_setipl(pp, ipl);
+pool_init(pp, s, a, ipl, f, m, p);
|
| |
|
|
|
|
|
|
|
|
|
| |
ST-506 support. Remove redundant 'precomp' variables/fields and rename
remaining few to 'features' to be consistant with the rest of the code.
Consensus that no ST-506 disks (requiring ISA cards, <120MB, usually
rife with bad sectors that can't be worked around) are still running
OpenBSD.
|
|
|
|
|
|
|
| |
is not set; this used to be the case but got broken in 1.113.
Fixes
pciide0 at pci0 dev 2 function 0 "Acard ATP865-R" rev 0x07: DMA
on armish (I/O Data).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
if the ata stack xfer free path is called before teh scsi xfer free
path. this fixes a leak.
in the vast majority of uses (eg, filesystems mounted on cd(4) via
atapiscsi(4)) the scsi xfer free is always done first. however, if
you're doing ioctls (eg, cdio(1)), the scsi ref is held over to the
ioctl completion path, so the ata xfer free happens first.
problem found by patrick keshishian who did some excellent work
debugging this and providing the right fix for it.
ok jmatthew@
|
|
|
|
| |
ok mpi@ kspillner@
|
|
|
|
| |
after discussions with beck deraadt kettenis.
|
|
|
|
|
| |
don't need to be married.
ok guenther miod beck jsing kettenis
|
|
|
|
|
| |
fixes cd panics where the free_xfer path is called after scsi_done calls
xfer_put.
|
|
|
|
|
|
|
|
|
|
|
|
| |
because im using it while the system is up and running i need the
xfer free path to take the right locks, which PRIVATEXFER doesnt.
invent a new C_SCSIXFER flag that provides the safety needed.
this fixes issues people have had installing from atapiscsi(4) cdrom
devices.
bug spelunking and tailq corruption identified by jsing@
ok jsing@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
this would have been difficult before because the ata completion
paths try to be helfpul by freeing xfers on the adapters behalf,
whch doesn't work in the new world scsi model where the layer that
allocated the thing is responsible for freeing it, and expects to
get it back and maybe use it again. however, deraadt@ added magic
flags for hibernate that im now using to keep ata xfers for the
scsi layers.
committing this now so itll be tested. i cant think of a better time
to handle fallout from diffs like this than hackathons.
discussed with deraadt@
|
|
|
|
|
|
| |
subsystem provides for us now when dealing with the xfer pool.
ok krw@
|
|
|
|
|
|
|
|
|
|
|
| |
least one chip sii3112 or sii314, owned by henning) that spuriously
returns failure. This is only backing out one of the dying cases.
As well, I have found one other case where attempts are made to advance
IO even after obvious failure. I suspect that I should find that issue
next.
discussed with henning, kettenis, and matthew
|
|
|
|
|
| |
It's the last file referencing atapiscsi.h too, so might as well get
rid of the need-flags in files.atapiscsi.
|
|
|
|
|
|
|
| |
kernel without the former. Also, eliminate two dead stores in
wdcattach().
ok dlg@
|
|
|
|
|
|
|
|
|
|
|
| |
function, and let attachment code calls this rather than malloc(9).
This prevents re-initialization of the queue in shared queue chipsets.
Also, add wdc_free_queue() as a complementary function.
Earlier version (without wdc_free_queue()) tested by sthen@ and Amit
Kulkarni on various pciide(4) chips.
ok dlg@
|
|
|
|
|
|
|
|
|
| |
that chip-specific drv_probe routines can assume they've already been
initialized.
Tested by sthen@ on i386, armish, and amd64, with both affected and
non-affected pciide(4) chips.
ok dlg@
|
|
|
|
|
|
| |
WDC_CAPABILITY_ATA_NOSTREAM, and WDC_CAPABILITY_ATAPI_NOSTREAM).
ok dlg@, jsg@, krw@
|
|
|
|
|
|
|
|
| |
this probably means the controller is dead -- as in, a hot plug eject
event. in that case, mark the driver dead and try harder to return -1
in the interrupt handler.
tested by many
ok dlg, miod did not object
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
argument to wdcreset(), to have it skip waiting until active channels see
their BUSY bit clear in the status register.
Use this feature in the resume path, during the first reset operation. The
first reset is supposed to only wake up the controller, and the disks don't
come back until the second reset is issued, therefore waiting for them to
report themselves as ready after the first reset, but before the second, is
moot - and as a matter of fact some controllers, such as the AMD 754 and
clones/offspring (e.g. Geode) keep the BUSY bit asserted after the first
reset.
Last, but not least, make sure wd@ata invokes wd_get_params() again before
returning from the resume code, as we will still be using polled transfers
for a short while.
This causes the Lemote Yeelong to resume within less than one second, instead
of the lousy 30 seconds wait between the two resets; and the wd_get_params()
voodoo prevents it from getting spurious ide interrupts afterwards.
wd_get_params() magic from dlg; rest of the work by yours truly after enough
prodding by dlg@ and pirofti@, among others. ok deraadt@ dlg@
|
|
|
|
|
|
| |
damage kernel memory very much while doing the job. It is not very
pretty yet, but improving it will need some MI work.
ok mlarkin jsg dlg
|
|
|
|
|
|
| |
future) will try to dma the command buffer to the disk in some way. Use
dma_alloc() to get ahead of this potential failure path.
ok dlg krw
|
|
|
|
|
|
| |
changes to the SCSI subsystem ioctl(2) handlers.
ok dlg@; ok and tweaks krw@; no objections jsg@
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
more speed to things like SSDs that do UDMA 6.
Tested by many.
|
|
|
|
|
|
| |
This is needed for the addition of further suspend/resume actions.
Okay deraadt@, marco@.
|
|
|
|
|
|
| |
anymore but make reading the code harder.
ok sthen@ miod@ krw@
|
|
|
|
|
|
| |
No functional changes.
ok krw@ miod@
|
| |
|
|
|
|
| |
jsg@ krw@ miod@ ok.
|
|
|
|
| |
OK deraadt@ and millert@
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
0xff, this will allow to detect some certain microdrives plugged
into soekris.
Patch from Jochen <jochen@penguin-breeder.org> via PR 5340.
|
|
|
|
|
| |
reset function pointer, as this can cause a NULL pointer dereference on
some systems.
|
|
|
|
| |
At least one system (Ben Lovett's) had issues with the change.
|
|
|
|
|
|
| |
SATA drive.
ok grange@
|
|
|
|
|
| |
method to be changed as required.
This will be required for dealing with several chips in pciide.
|
|
|
|
| |
ok grange@
|
|
|
|
| |
"looks sane" grange@; tested by niall@ krw@ jmc@ jolan@
|
| |
|