scsi: mvsas: fix command_active typo
authorArnd Bergmann <arnd@arndb.de>
Wed, 16 Nov 2016 15:08:34 +0000 (16:08 +0100)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 16 Mar 2017 02:18:26 +0000 (02:18 +0000)
commit af15769ffab13d777e55fdef09d0762bf0c249c4 upstream.

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>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/scsi/mvsas/mv_94xx.c

index 7e423e5..16349aa 100644 (file)
@@ -622,7 +622,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));