Skip to contentSkip to conversation

hpsa: precedence bug in

PATCH In review Dan Carpenter 2 participants 2 messages Feb 7, 2011

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 hpsa: precedence bug in

'!' has higher precedence than '&'. CFGTBL_ChangeReq is 0x1 so the original code is equivelent to if (!doorbell_value) {...

drivers/scsi/hpsa.c +1 -1
index 959eeb2..f46f92a 100644
@@ -3591,7 +3591,7 @@ static void __devinit hpsa_wait_for_mode_change_ack(struct ctlr_info *h)
 		spin_lock_irqsave(&h->lock, flags);
 		doorbell_value = readl(h->vaddr + SA5_DOORBELL);
 		spin_unlock_irqrestore(&h->lock, flags);
-		if (!doorbell_value & CFGTBL_ChangeReq)
+		if (!(doorbell_value & CFGTBL_ChangeReq))
 			break;
 		/* delay and try again */
 		usleep_range(10000, 20000);
#1 lore raw

Re: [patch] [SCSI] hpsa: precedence bug in hpsa_wait_for_mode_change_ack()

Quoted 10 lines · Dan Carpenter

'!' has higher precedence than '&'. CFGTBL_ChangeReq is 0x1 so the original code is equivelent to if (!doorbell_value) {...

drivers/scsi/hpsa.c +0 -0
index 959eeb2..f46f92a 100644

drivers/scsi/hpsa.c static void __devinit hpsa_wait_for_mode_change_ack(struct ctlr_info *h) · line 3597

Quoted 8 lines
drivers/scsi/hpsa.c +1 -1
@@ -3591,7 +3591,7 @@ static void __devinit hpsa_wait_for_mode_change_ack(struct ctlr_info *h)
 		spin_lock_irqsave(&h->lock, flags);
 		doorbell_value = readl(h->vaddr + SA5_DOORBELL);
 		spin_unlock_irqrestore(&h->lock, flags);
-		if (!doorbell_value & CFGTBL_ChangeReq)
+		if (!(doorbell_value & CFGTBL_ChangeReq))
 			break;
 		/* delay and try again */
 		usleep_range(10000, 20000);

Thanks. This looks correct.

-- steve