USB: uas: fix gcc warning
authorGerd Hoffmann <kraxel@redhat.com>
Wed, 26 Sep 2012 08:29:03 +0000 (10:29 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 26 Sep 2012 21:13:19 +0000 (14:13 -0700)
Streamline control flow so it is easier for gcc to follow which paths
can be taken and which can't.

Fixes "warning: 'cmdinfo' may be used uninitialized in this function"

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/storage/uas.c

index 4218701..98b98ee 100644 (file)
@@ -249,16 +249,18 @@ static void uas_stat_cmplt(struct urb *urb)
                cmnd = devinfo->cmnd;
        else
                cmnd = scsi_host_find_tag(shost, tag - 1);
+
        if (!cmnd) {
-               if (iu->iu_id != IU_ID_RESPONSE) {
-                       usb_free_urb(urb);
-                       spin_unlock_irqrestore(&devinfo->lock, flags);
-                       return;
+               if (iu->iu_id == IU_ID_RESPONSE) {
+                       /* store results for uas_eh_task_mgmt() */
+                       memcpy(&devinfo->response, iu, sizeof(devinfo->response));
                }
-       } else {
-               cmdinfo = (void *)&cmnd->SCp;
+               usb_free_urb(urb);
+               spin_unlock_irqrestore(&devinfo->lock, flags);
+               return;
        }
 
+       cmdinfo = (void *)&cmnd->SCp;
        switch (iu->iu_id) {
        case IU_ID_STATUS:
                if (devinfo->cmnd == cmnd)
@@ -292,10 +294,6 @@ static void uas_stat_cmplt(struct urb *urb)
        case IU_ID_WRITE_READY:
                uas_xfer_data(urb, cmnd, SUBMIT_DATA_OUT_URB);
                break;
-       case IU_ID_RESPONSE:
-               /* store results for uas_eh_task_mgmt() */
-               memcpy(&devinfo->response, iu, sizeof(devinfo->response));
-               break;
        default:
                scmd_printk(KERN_ERR, cmnd,
                        "Bogus IU (%d) received on status pipe\n", iu->iu_id);