hpsa: remove unneeded loop
Subsystems (2)
PATCH v2 1/1 hpsa: remove unneeded loop
From: Tomas Henzl <[email protected]>
Originally this was first patch in a series, but while the other patches were taken into 'for-next', this one was forgotten.
The code below is adapted for the 'for=next' branch.
The cmd_pool_bits is protected everywhere with a spinlock, we don't need the test_and_set_bit, set_bit is enough and the loop can be removed too.
Signed-off-by Tomas Henzl <[email protected]>
--- drivers/scsi/hpsa.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-)
drivers/scsi/hpsa.c +6 -9
@@ -2736,15 +2736,12 @@ static struct CommandList *cmd_alloc(struct ctlr_info *h)unsigned long flags;spin_lock_irqsave (&h->lock, flags); -do { - i =find_first_zero_bit (h->cmd_pool_bits, h->nr_cmds); -if (i == h->nr_cmds) { -spin_unlock_irqrestore (&h->lock, flags); -return NULL ; - } - }while (test_and_set_bit - (i & (BITS_PER_LONG -1 ), - h->cmd_pool_bits + (i /BITS_PER_LONG )) !=0 ); + i =find_first_zero_bit (h->cmd_pool_bits, h->nr_cmds); +if (i == h->nr_cmds) { +spin_unlock_irqrestore (&h->lock, flags); +return NULL ; + } +set_bit (i & (BITS_PER_LONG -1 ), h->cmd_pool_bits + (i /BITS_PER_LONG ));spin_unlock_irqrestore (&h->lock, flags); c = h->cmd_pool + i;
Signature · 1 line
1.8.3.1