(Resend due to error in address for linux-scsi.) This patch moves the initialization of the struct scsi_device fields use_10_for_ms and use_10_for_rw into a central place. This allows the host's slave_configure() function to change them (with effect). This also collapses two identical sections of code into a single one.
This patch is needed by usb-storage, so we can resolve some Babble
problems, some device-crashing problems, and remove a great deal of
troublesome mode-sense-translation code.
This patch is made against one of Greg K-H's USB trees, but it should apply
with little-or-no fuzz against a Linus tree or a linux-scsi tree.
Linus, please apply.
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.1963 -> 1.1964
# drivers/scsi/sr.c 1.46 -> 1.47
# drivers/scsi/sd.c 1.49 -> 1.50
# drivers/scsi/scsi_scan.c 1.39 -> 1.40
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/06/15 [EMAIL PROTECTED] 1.1964
# Move the setting of the use_10_for_ms and use_10_for_rw members of struct
# scsi_device to between where the structure is created and where
# slave_configure() is called.
#
# This allows slave_configure() to manipulate the variables while
# simultaneously moves two pieces of identical code into one common place.
# --------------------------------------------
#
diff -Nru a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
--- a/drivers/scsi/scsi_scan.c Sun Jun 15 20:38:43 2003
+++ b/drivers/scsi/scsi_scan.c Sun Jun 15 20:38:43 2003
@@ -686,6 +686,9 @@
* function */
sdev->max_device_blocked = SCSI_DEFAULT_DEVICE_BLOCKED;
+ sdev->use_10_for_rw = 1;
+ sdev->use_10_for_ms = 0;
+
if(sdev->host->hostt->slave_configure)
sdev->host->hostt->slave_configure(sdev);
diff -Nru a/drivers/scsi/sd.c b/drivers/scsi/sd.c
--- a/drivers/scsi/sd.c Sun Jun 15 20:38:43 2003
+++ b/drivers/scsi/sd.c Sun Jun 15 20:38:43 2003
@@ -1265,8 +1265,6 @@
if (sdkp->media_present)
sd_read_cache_type(sdkp, disk->disk_name, SRpnt, buffer);
- SRpnt->sr_device->use_10_for_rw = 1;
- SRpnt->sr_device->use_10_for_ms = 0;
SRpnt->sr_device->remap = 1;
leave:
diff -Nru a/drivers/scsi/sr.c b/drivers/scsi/sr.c
--- a/drivers/scsi/sr.c Sun Jun 15 20:38:43 2003
+++ b/drivers/scsi/sr.c Sun Jun 15 20:38:43 2003
@@ -524,8 +524,6 @@
sprintf(cd->cdi.name, "sr%d", minor);
sdev->sector_size = 2048; /* A guess, just in case */
- sdev->use_10_for_rw = 1;
- sdev->use_10_for_ms = 0;
sdev->remap = 1;
/* FIXME: need to handle a get_capabilities failure properly ?? */
--
Matthew Dharm Home: [EMAIL PROTECTED]
Maintainer, Linux USB Mass Storage Driver
Sir, for the hundreth time, we do NOT carry 600-round boxes of belt-fed
suction darts!
-- Salesperson to Greg
User Friendly, 12/30/1997
pgp00000.pgp
Description: PGP signature
