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