Age | Commit message (Collapse) | Author |
|
when using removable media devices, along with changes to scsi_base to
detect such cases in tapes other devices. This makes tar, dd, and friends
report a semi useful error message instead of nonsense when there is nothing
in the device.
Includes libc minor bump, and will require the corresponding sets change.
ok krw@ deraadt@
|
|
that specifies the version of SCSI being supported. Even the ANSI part
that we use is complex. 4 means 2, 5 means 3 and 6 means 4. Translate
and use the value correctly. Fixes SCSI5 and SCSI6 in dmesg. And
properly protects SCSI2 devices from getting SCSI3 commands.
"seems like an elegant solution to me" millert@ ok dlg@ marco@
|
|
obtained probe the LUNs given without checking for duplicate INQUIRY
data.
For non-USB, non-ATAPI, devices claiming to be SCSI-3 compliant. And
the target must have something attached at LUN 0.
If REPORT LUNS can't be used or isn't supported, the old scan process
is used.
Fixes Fibre Channel and SCSI enclosure devices that provide identical
INQUIRY data for all LUNs and were thus being misprobed as having
only LUN 0.
Tested by Bob Kitella, dlg@, beck@. Suggestions from deraadt@.
ok dlg@ beck@
|
|
in the CDB for pre-IDENTIFY device LUNs.
|
|
when we're not allowed to yank things out of them. Instead of returning a
generic EIO and having the kernel printf a scsi sense to the console,
we now return EBUSY to userland and avoid the dmesg spewing.
ok krw@
|
|
stored in scsi_link. That's where the value came from anyway. Move 'luns'
field to where 'scsi_version' used to be to preserve alignment.
ok dlg@
|
|
ok krw@
|
|
|
|
or is waiting to be retried, abort it when a signal interrupts the tsleep().
This fixes what was commited in version 1.92 to work properly.
ok krw@
|
|
in hex. This makes it consistant with the display of the same value in
other messages.
|
|
|
|
SENSE BIG command even if no page data was returned. Just accept the
fact that the device does not have any such page data.
This is more in line with the spec, and unbreaks devices (like the
Neodio 8-in-1 USB Card Reader donated by Manuel Pata) which freak out
when getting a MODE SENSE BIG.
Should not break any 'working' device.
ok pedro@ dlg@ marco@ 'Looks correct.' miod@
|
|
|
|
|
|
|
|
least one spec. Unlike other ATAPI devices.
Fixes PR #4611.
|
|
Fixes two second system 'freeze' when umass device plugged in. Speeds
up boot by not waiting for a minimum of 2 seconds at each scsi bus.
ok jmc@ pedro@ deraadt@
|
|
become ready. Make verbiage SC_DEBUG().
ok dlg@
|
|
for a raw partition like we suppress errors for the other operations on raw
partitions. Replace 'could not get size' with more specific and informative
SC_DEBUG() output. Silences a usb card reader that fgsch@ found. Now attach
message is only 'sdX: drive offline'.
Tested & ok fgsch@
|
|
Makes the logic simpler by eliminating the XS_BUSY dance in xs->error,
and will allow individual device types to delay different lengths on
certain conditions.
Allow SCSI_NOSLEEP commands to be retried without waiting. Who knows,
they may work even without a delay.
ok marco@
|
|
abort it when a signal interrupts the tsleep().
Suggested by deraadt@.
"I really like this" deraadt@ "I like this" marco@
|
|
going to retry the command, pause for a second to let the condition
clear. Just as we do for certain NOT READY conditions.
Found with the help of, and fixes Ed Wandasiewicz's IBM USB Memory
key.
ok deraadt@
|
|
|
|
|
|
headers; } to just union scsi_mode_sense_buf {}. No functional change.
ok marco@
|
|
or scsi_mode_sense_big(), use as much of it as is allowed. Don't justi
mask off the higher bits and possibly leave yourself with 0 space.
Fixes problem aoyama@ found on luna88k tape drive.
ok deraadt@.
|
|
Prevents garbage being used as ssblksize in sd_get_parms(). Perhaps
another nail in the coffin for PR4313.
|
|
command. Return it in a new parameter to scsi_size.
|
|
scsi_mode_direct_blk_desc -> scsi_direct_blk_desc
scsi_mode_blk_desc_big -> scsi_blk_desc_big
|
|
least) before 10 byte MODE SENSE. Some older devices can't/won't
distinguish between the two and return 6 byte MODE SENSE data for 10
byte requests.
Check that at least a full header was returned.
Tested by miod@ hshoexer@ and Ed Wandasiewisz on troublesome devices.
|
|
so eliminate code dealing with 16 byte block descriptors. No one else
seems to use them anyway. Add define for appropriate permission bit in
case we ever need it.
Simplify and clean up scsi_do_mode_sense() code as a result.
Strengthen check to ensure block descriptor data is a valid by
checking if it is a multiple of 8 bytes rather than just > 8 bytes.
Moves code to closer to what it was before scsi_do_mode_sense().
|
|
|
|
required number of bytes, rather than a full scsi_mode_sense_buf. Some
devices (e.g. my HP SureStore DAT/24) decline to accept such oversized
transfers. Instead, force callers to fill in the data_length field in
the header and use that information to set the size of the transfer.
|
|
general block descriptor and the 8 byte direct block descriptor, and
return the correct values for density, block_count and block_size
based on the type of the device. First cut has T_SEQUENTIAL (i.e.
tape devices) as the only device type using general block descriptors,
so the behaviour change is minimal.
|
|
Add 'big' parameter to report which mode sense header type is being
returned. Eliminate icky pointer arithmetic, since it won't work if
only block descriptors are returned by the device.
No functional change.
|
|
block descriptors. Not that we actually use this information anywhere.
|
|
|
|
|
|
|
|
|
|
|
|
scsi_mode_blk_desc_big. Will be needed to move st to new mode sense
function.
Be a bit more careful with types of parameters to scsi_do_mode_sense,
using u_int32_t instead of int.
No functional change.
|
|
both 10 byte and 6 byte MODE SENSE commands and just return error
checked values.
Convert sd_scsi.c to use new mechanism for non-optical drives. USB
umass devices will now display actual mode sense info if it is
available via a 10 byte MODE SENSE. Which may mean 0 heads, etc. is
shown until cosmetics are finalized.
ok marco@ 'that is pretty cool' deraadt@
|
|
was already done in the SUCCESSFULLY_QUEUED case. Shouldn't happen,
but better safe than sorry if some driver completes it's io
immediately.
Also don't recompute saved flags if the request is retried.
ok marco@
|
|
atapi_mode_[sense|select](). This will allow the removal of
atapi_base.c and atapi_all.h files, and sets the stage for better usb
mode sense handling amoung other things.
Remove cd_scsibus_[get|set]_mode() and
sd_scsibus_mode_sense() shims in favour of scsi_mode_[sense|select]().
Add zero'ing of reserved length field in scsi_mode_select(). Change
some uchar * type parameters to scsi_mode_header *.
No functional changes. Mostly from NetBSD.
ok dlg@.
|
|
|
|
ok krw@
|
|
Eliminate some duplicate structures and defines along the way. SCSI CD
drives will now pay attention to the 'flags' parameter for MODE SENSE
and MODE SELECT commands. No other functional change.
ok tdeval@
|
|
condition is going to clear up, which speeds up boot by avoiding
delays in disk matching. Return ENODEV if media is not present, which
avoids trying to spin up disks that are not present. Use ENODEV in
amd64/i386 dkcsum.c to filter failure reports.
Mostly from NetBSD.
ok marco@
|
|
report 0xffffffff and print a message. READ CAPACITY(16) is needed to
get the actual size in this case.
ok tdeval@ (a while ago) marco@
|