uas: Use all available stream ids
authorHans de Goede <hdegoede@redhat.com>
Wed, 23 Oct 2013 16:46:17 +0000 (17:46 +0100)
committerSarah Sharp <sarah.a.sharp@linux.intel.com>
Tue, 4 Mar 2014 23:38:12 +0000 (15:38 -0800)
If we get ie 16 streams we can use stream-id 1-16, not 1-15.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
drivers/usb/storage/uas.c

index 33f9dcd68e245ccfa2d8987288b7a3fa82037e18..3f021f2fafdf4e3c2dc586995273d6e257e07b5f 100644 (file)
@@ -722,7 +722,7 @@ static int uas_eh_task_mgmt(struct scsi_cmnd *cmnd,
 {
        struct Scsi_Host *shost = cmnd->device->host;
        struct uas_dev_info *devinfo = (void *)shost->hostdata[0];
-       u16 tag = devinfo->qdepth - 1;
+       u16 tag = devinfo->qdepth;
        unsigned long flags;
 
        spin_lock_irqsave(&devinfo->lock, flags);
@@ -843,7 +843,7 @@ static int uas_slave_configure(struct scsi_device *sdev)
 {
        struct uas_dev_info *devinfo = sdev->hostdata;
        scsi_set_tag_type(sdev, MSG_ORDERED_TAG);
-       scsi_activate_tcq(sdev, devinfo->qdepth - 3);
+       scsi_activate_tcq(sdev, devinfo->qdepth - 2);
        return 0;
 }
 
@@ -1027,7 +1027,7 @@ static int uas_probe(struct usb_interface *intf, const struct usb_device_id *id)
        INIT_LIST_HEAD(&devinfo->dead_list);
        uas_configure_endpoints(devinfo);
 
-       result = scsi_init_shared_tag_map(shost, devinfo->qdepth - 3);
+       result = scsi_init_shared_tag_map(shost, devinfo->qdepth - 2);
        if (result)
                goto free_streams;