Re: [PATCH] scsi: Fix a harmless double shift bug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Nov 29, 2018 at 01:37:10PM +0300, Dan Carpenter wrote:
> Smatch generates a warning:
> 
>     drivers/scsi/scsi_lib.c:1656 scsi_mq_done() warn: test_bit() takes a bit number
> 
> The problem is that SCMD_STATE_COMPLETE is supposed to be bit number 0
> and not a mask like "(1 << 0)".  It is used like this:
> 
> 	if (test_and_set_bit(SCMD_STATE_COMPLETE, &scmd->state))
> 
> The test_and_set_bit() has a shift built in so it's a double left shift
> and uses bit number 1 instead of number 0.  This bug is harmless because
> it's done consistently and it doesn't clash with any other flags.
> 
> Fixes: f1342709d18a ("scsi: Do not rely on blk-mq for double completions")
> Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>

Nice catch, thanks for the fix.

Reviewed-by: Keith Busch <keith.busch@xxxxxxxxx>



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux