scsi: aacraid: do not overwrite retval in aac_reset_adapter()
authorHannes Reinecke <hare@suse.de>
Tue, 31 Mar 2020 08:41:11 +0000 (10:41 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 1 Apr 2020 02:13:49 +0000 (22:13 -0400)
'retval' got assigned a value twice, causing the original value to be lost.

Link: https://lore.kernel.org/r/20200331084111.95039-1-hare@suse.de
Fixes: 3d3ca53b1639 ("scsi: aacraid: use scsi_host_(block,unblock) to block I/O")
Reported-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/aacraid/commsup.c

index 4725e4c..ddd73f6 100644 (file)
@@ -1626,7 +1626,7 @@ out:
 int aac_reset_adapter(struct aac_dev *aac, int forced, u8 reset_type)
 {
        unsigned long flagv = 0;
-       int retval;
+       int retval, unblock_retval;
        struct Scsi_Host *host = aac->scsi_host_ptr;
        int bled;
 
@@ -1656,8 +1656,9 @@ int aac_reset_adapter(struct aac_dev *aac, int forced, u8 reset_type)
        retval = _aac_reset_adapter(aac, bled, reset_type);
        spin_unlock_irqrestore(host->host_lock, flagv);
 
-       retval = scsi_host_unblock(host, SDEV_RUNNING);
-
+       unblock_retval = scsi_host_unblock(host, SDEV_RUNNING);
+       if (!retval)
+               retval = unblock_retval;
        if ((forced < 2) && (retval == -ENODEV)) {
                /* Unwind aac_send_shutdown() IOP_RESET unsupported/disabled */
                struct fib * fibctx = aac_fib_alloc(aac);