* PATCH: change START_STOP to TEST_UNIT_READY
@ 2002-10-27 8:43 Matthew Dharm
0 siblings, 0 replies; only message in thread
From: Matthew Dharm @ 2002-10-27 8:43 UTC (permalink / raw)
To: Linux SCSI list; +Cc: Greg KH, USB Storage List
[-- Attachment #1: Type: text/plain, Size: 4078 bytes --]
This patch changes a use of START_STOP to TEST_UNIT_READY in the function
to check for a media change.
This is required for emulated SCSI busses (IEEE1394 sbp2 and usb-storage),
as none of the 'popular' OSes will send a START_STOP unless the target
requests it (via sense data that indicates a startup command is needed).
Thus, lots of device firmware out there will crash or do something equally
bad when a START_STOP is sent.
Yeah, busted devices, I know. But, in the end, people just want it to
work, and there is no reason why we can't use TEST_UNIT_READY here instead.
As the comments indicate, devices that need a spinup will get one anyway.
Will one of the SCSI gurus please send this to Linus?
Matt
# This is a BitKeeper generated patch for the following project:
# Project Name: greg k-h's linux 2.5 USB kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.561.1.395 -> 1.636
# drivers/usb/storage/initializers.c 1.2.1.2 -> 1.5
# drivers/usb/storage/transport.h 1.7.1.5 -> 1.13
# drivers/usb/core/message.c 1.20.1.3 -> 1.22
# kernel/signal.c 1.23.1.6 -> 1.29
# drivers/usb/storage/datafab.c 1.8.1.5 -> 1.14
# drivers/usb/storage/protocol.c 1.7.1.3 -> 1.9
# drivers/usb/storage/usb.h 1.5.1.19 -> 1.26
# drivers/usb/storage/isd200.c 1.8.1.10 -> 1.19
# drivers/usb/storage/raw_bulk.h 1.1.1.3 -> 1.5
# drivers/usb/storage/jumpshot.c 1.10.1.6 -> 1.17
# drivers/usb/storage/debug.h 1.1.1.4 -> 1.6
# drivers/usb/storage/sddr55.c 1.3.1.6 -> 1.9
# drivers/usb/storage/shuttle_usbat.c 1.9.1.8 -> 1.18
# drivers/usb/storage/raw_bulk.c 1.1.1.10 -> 1.13
# drivers/usb/storage/sddr09.c 1.12.1.8 -> 1.21
# drivers/usb/storage/scsiglue.h 1.1.1.2 -> 1.4
# drivers/usb/storage/debug.c 1.8.1.2 -> 1.10
# drivers/scsi/sd.c 1.22.1.13 -> 1.36
# drivers/usb/storage/scsiglue.c 1.11.1.19 -> 1.30
# drivers/usb/storage/transport.c 1.17.1.37 -> 1.57
# drivers/scsi/scsi_scan.c 1.9.1.11 -> 1.16
# drivers/usb/storage/freecom.c 1.6.1.10 -> 1.17
# drivers/usb/storage/usb.c 1.16.1.33 -> 1.53
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/10/26 mdharm@zen.san.one-eyed-alien.net 1.631.1.1
# Merge bk://linuxusb.bkbits.net/usb-2.5
# into zen.san.one-eyed-alien.net:/home/mdharm/linux-usb/greg-tree
# --------------------------------------------
# 02/10/26 mdharm@zen.san.one-eyed-alien.net 1.635
# Merge
# --------------------------------------------
# 02/10/26 mdharm@zen.san.one-eyed-alien.net 1.636
# Changed comments to match code.
# --------------------------------------------
#
diff -Nru a/drivers/scsi/sd.c b/drivers/scsi/sd.c
--- a/drivers/scsi/sd.c Sat Oct 26 18:29:11 2002
+++ b/drivers/scsi/sd.c Sat Oct 26 18:29:11 2002
@@ -733,15 +733,17 @@
* check_disk_change */
}
- /* Using Start/Stop enables differentiation between drive with
+ /* Using TEST_UNIT_READY enables differentiation between drive with
* no cartridge loaded - NOT READY, drive with changed cartridge -
* UNIT ATTENTION, or with same cartridge - GOOD STATUS.
- * This also handles drives that auto spin down. eg iomega jaz 1GB
- * as this will spin up the drive.
+ *
+ * Drives that auto spin down. eg iomega jaz 1G, will be started
+ * by sd_spinup_disk() from sd_init_onedisk(), which happens whenever
+ * sd_revalidate() is called.
*/
retval = -ENODEV;
if (scsi_block_when_processing_errors(sdp))
- retval = scsi_ioctl(sdp, SCSI_IOCTL_START_UNIT, NULL);
+ retval = scsi_ioctl(sdp, SCSI_IOCTL_TEST_UNIT_READY, NULL);
if (retval) { /* Unable to test, unit probably not ready.
* This usually means there is no disc in the
--
Matthew Dharm Home: mdharm-usb@one-eyed-alien.net
Maintainer, Linux USB Mass Storage Driver
Dudes! May the Open Source be with you.
-- Eric S. Raymond
User Friendly, 12/3/1998
[-- Attachment #2: Type: application/pgp-signature, Size: 232 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2002-10-27 8:43 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-10-27 8:43 PATCH: change START_STOP to TEST_UNIT_READY Matthew Dharm
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.