Merge to Fedora kernel-2.6.18-1.2224_FC5 patched with stable patch-2.6.18.1-vs2.0...
[linux-2.6.git] / drivers / usb / storage / scsiglue.c
index 5f11e19..a4b7df9 100644 (file)
@@ -112,13 +112,11 @@ static int slave_configure(struct scsi_device *sdev)
        if (sdev->scsi_level < SCSI_2)
                sdev->scsi_level = sdev->sdev_target->scsi_level = SCSI_2;
 
-       /* According to the technical support people at Genesys Logic,
-        * devices using their chips have problems transferring more than
-        * 32 KB at a time.  In practice people have found that 64 KB
-        * works okay and that's what Windows does.  But we'll be
-        * conservative; people can always use the sysfs interface to
-        * increase max_sectors. */
-       if (le16_to_cpu(us->pusb_dev->descriptor.idVendor) == USB_VENDOR_ID_GENESYS &&
+       /* Many devices have trouble transfering more than 32KB at a time,
+        * while others have trouble with more than 64K. At this time we
+        * are limiting both to 32K (64 sectores).
+        */
+       if ((us->flags & US_FL_MAX_SECTORS_64) &&
                        sdev->request_queue->max_sectors > 64)
                blk_queue_max_sectors(sdev->request_queue, 64);
 
@@ -286,11 +284,7 @@ static int bus_reset(struct scsi_cmnd *srb)
        int result;
 
        US_DEBUGP("%s called\n", __FUNCTION__);
-
-       mutex_lock(&(us->dev_mutex));
        result = usb_stor_port_reset(us);
-       mutex_unlock(&us->dev_mutex);
-
        return result < 0 ? FAILED : SUCCESS;
 }