Skip to content

Commit

Permalink
USB: uas: fix task management
Browse files Browse the repository at this point in the history
Allocate one tag for task management functions and
use it properly.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Gerd Hoffmann authored and Greg Kroah-Hartman committed Sep 25, 2012
1 parent a0e39e3 commit 0393986
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions drivers/usb/storage/uas.c
Original file line number Diff line number Diff line change
Expand Up @@ -611,7 +611,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 = 9999; /* FIXME */
u16 tag = devinfo->qdepth - 1;

memset(&devinfo->response, 0, sizeof(devinfo->response));
if (uas_submit_sense_urb(shost, GFP_NOIO, tag)) {
Expand Down Expand Up @@ -701,7 +701,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 - 2);
scsi_activate_tcq(sdev, devinfo->qdepth - 3);
return 0;
}

Expand Down Expand Up @@ -880,7 +880,7 @@ static int uas_probe(struct usb_interface *intf, const struct usb_device_id *id)
init_usb_anchor(&devinfo->data_urbs);
uas_configure_endpoints(devinfo);

result = scsi_init_shared_tag_map(shost, devinfo->qdepth - 2);
result = scsi_init_shared_tag_map(shost, devinfo->qdepth - 3);
if (result)
goto free;

Expand Down

0 comments on commit 0393986

Please sign in to comment.