scsi: mvsas: fix command_active typo
authorArnd Bergmann <arnd@arndb.de>
Wed, 16 Nov 2016 15:08:34 +0000 (16:08 +0100)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 17 Nov 2016 01:49:08 +0000 (20:49 -0500)
gcc-7 notices that the condition in mvs_94xx_command_active looks
suspicious:

drivers/scsi/mvsas/mv_94xx.c: In function 'mvs_94xx_command_active':
drivers/scsi/mvsas/mv_94xx.c:671:15: error: '<<' in boolean context, did you mean '<' ? [-Werror=int-in-bool-context]

This was introduced when the mv_printk() statement got added, and leads
to the condition being ignored. This is probably harmless.

Changing '&&' to '&' makes the code look reasonable, as we check the
command bit before setting and printing it.

Fixes: a4632aae8b66 ("[SCSI] mvsas: Add new macros and functions")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/mvsas/mv_94xx.c

index 4c57d9abce7b772be368a19388eceeffafc66d6f..7de5d8d75480f0d5934925d53556ca04f9b34510 100644 (file)
@@ -668,7 +668,7 @@ static void mvs_94xx_command_active(struct mvs_info *mvi, u32 slot_idx)
 {
        u32 tmp;
        tmp = mvs_cr32(mvi, MVS_COMMAND_ACTIVE+(slot_idx >> 3));
-       if (tmp && 1 << (slot_idx % 32)) {
+       if (tmp & 1 << (slot_idx % 32)) {
                mv_printk("command active %08X,  slot [%x].\n", tmp, slot_idx);
                mvs_cw32(mvi, MVS_COMMAND_ACTIVE + (slot_idx >> 3),
                        1 << (slot_idx % 32));