Re: [PATCH 1/1] drivers/scsi/tmscsim.c: replace shift loop by ilog2

From: Guenter Roeck
Date: Wed May 21 2014 - 23:29:57 EST


On 05/21/2014 06:03 PM, Joe Perches wrote:
On Wed, 2014-05-21 at 17:28 -0700, Guenter Roeck wrote:
On Tue, May 20, 2014 at 10:06:42AM -0700, Joe Perches wrote:
On Tue, 2014-05-20 at 18:48 +0200, Fabian Frederick wrote:
Cc: Kurt Garloff <garloff@xxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Fabian Frederick <fabf@xxxxxxxxx>
---
drivers/scsi/tmscsim.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/tmscsim.c b/drivers/scsi/tmscsim.c
[]
@@ -1611,7 +1611,7 @@ dc390_Reselect( struct dc390_acb* pACB )
printk (KERN_ERR "DC390: Reselection must select host adapter: %02x!\n", lun);
else
lun ^= 1 << pACB->pScsiHost->this_id; /* Mask AdapterID */
- id = 0; while (lun >>= 1) id++;
+ id = ilog2(lun);
/* Get LUN */
lun = DC390_read8 (ScsiFifo);
if (!(lun & IDENTIFY_BASE)) printk (KERN_ERR "DC390: Resel: Expect identify message!\n");

Hey Fabian.

You've submitted several of these now.

Have you gone through all of these to make sure
that the ilog2(<foo>) uses are always using a
non-zero <foo>?

Maybe I am missing something. Why not just use fls() ?

fls strains Andrew Morton's brain.

https://lkml.org/lkml/2014/5/19/771


:-).

On the other side fls(1) == 1 while ilog2(1) == 0. So some test is necessary anyway.

Guenter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/