scsi: dc395x: Remove leftover if statement in reselect()
authorNathan Chancellor <nathan@kernel.org>
Wed, 30 Apr 2025 00:46:49 +0000 (17:46 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 6 May 2025 01:58:21 +0000 (21:58 -0400)
Clang warns (or errors with CONFIG_WERROR=y):

  drivers/scsi/dc395x.c:2553:6: error: variable 'id' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
   2553 |         if (!(rsel_tar_lun_id & (IDENTIFY_BASE << 8)))
        |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  drivers/scsi/dc395x.c:2556:22: note: uninitialized use occurs here
   2556 |         dcb = find_dcb(acb, id, lun);
        |                             ^~
  drivers/scsi/dc395x.c:2553:2: note: remove the 'if' if its condition is always true
   2553 |         if (!(rsel_tar_lun_id & (IDENTIFY_BASE << 8)))
        |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   2554 |         id = rsel_tar_lun_id & 0xff;

This if statement only existed for a debugging print but it was not
removed with the debugging print in a recent cleanup, leading to id only
being initialized when the if condition is true. Remove the if statement
to ensure id is always initialized, clearing up the warning.

Fixes: 62b434b0db2c ("scsi: dc395x: Remove DEBUG conditional compilation")
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Link: https://lore.kernel.org/r/20250429-scsi-dc395x-fix-uninit-var-v1-1-25215d481020@kernel.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/dc395x.c

index 95145b9d9ce386399faa64c925086129e52dd415..96b335c92603e98f142f66e176374326ea4642fb 100644 (file)
@@ -2550,7 +2550,6 @@ static void reselect(struct AdapterCtlBlk *acb)
                }
        }
        /* Read Reselected Target Id and LUN */
-       if (!(rsel_tar_lun_id & (IDENTIFY_BASE << 8)))
        id = rsel_tar_lun_id & 0xff;
        lun = (rsel_tar_lun_id >> 8) & 7;
        dcb = find_dcb(acb, id, lun);