uas: Remove cmnd reference from the cmd urb
authorHans de Goede <hdegoede@redhat.com>
Sat, 13 Sep 2014 10:26:39 +0000 (12:26 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 24 Sep 2014 04:42:11 +0000 (21:42 -0700)
It is not strictly necessary for the cmd urb to have a reference to the
cmnd, and without this reference it becomes easier to drop all references to
a cmnd on an abort.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/storage/uas.c

index 06c3eae..8421dcd 100644 (file)
@@ -428,12 +428,9 @@ out:
 
 static void uas_cmd_cmplt(struct urb *urb)
 {
-       struct scsi_cmnd *cmnd = urb->context;
+       if (urb->status)
+               dev_err(&urb->dev->dev, "cmd cmplt err %d\n", urb->status);
 
-       if (urb->status) {
-               uas_log_cmd_state(cmnd, __func__);
-               scmd_printk(KERN_ERR, cmnd, "cmd cmplt err %d\n", urb->status);
-       }
        usb_free_urb(urb);
 }
 
@@ -511,7 +508,7 @@ static struct urb *uas_alloc_cmd_urb(struct uas_dev_info *devinfo, gfp_t gfp,
        memcpy(iu->cdb, cmnd->cmnd, cmnd->cmd_len);
 
        usb_fill_bulk_urb(urb, udev, devinfo->cmd_pipe, iu, sizeof(*iu) + len,
-                                                       uas_cmd_cmplt, cmnd);
+                                                       uas_cmd_cmplt, NULL);
        urb->transfer_flags |= URB_FREE_BUFFER;
  out:
        return urb;