All of lore.kernel.org
 help / color / mirror / Atom feed
* 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.