diff options
Diffstat (limited to 'drivers/scsi/aacraid/commsup.c')
-rw-r--r-- | drivers/scsi/aacraid/commsup.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/drivers/scsi/aacraid/commsup.c b/drivers/scsi/aacraid/commsup.c index 9f9f4aae23c0..3f27419c66af 100644 --- a/drivers/scsi/aacraid/commsup.c +++ b/drivers/scsi/aacraid/commsup.c | |||
@@ -229,8 +229,7 @@ void aac_fib_init(struct fib *fibptr) | |||
229 | static void fib_dealloc(struct fib * fibptr) | 229 | static void fib_dealloc(struct fib * fibptr) |
230 | { | 230 | { |
231 | struct hw_fib *hw_fib = fibptr->hw_fib; | 231 | struct hw_fib *hw_fib = fibptr->hw_fib; |
232 | if(hw_fib->header.StructType != FIB_MAGIC) | 232 | BUG_ON(hw_fib->header.StructType != FIB_MAGIC); |
233 | BUG(); | ||
234 | hw_fib->header.XferState = 0; | 233 | hw_fib->header.XferState = 0; |
235 | } | 234 | } |
236 | 235 | ||
@@ -472,7 +471,6 @@ int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, | |||
472 | spin_lock_irqsave(q->lock, qflags); | 471 | spin_lock_irqsave(q->lock, qflags); |
473 | if (dev->new_comm_interface) { | 472 | if (dev->new_comm_interface) { |
474 | unsigned long count = 10000000L; /* 50 seconds */ | 473 | unsigned long count = 10000000L; /* 50 seconds */ |
475 | list_add_tail(&fibptr->queue, &q->pendingq); | ||
476 | q->numpending++; | 474 | q->numpending++; |
477 | spin_unlock_irqrestore(q->lock, qflags); | 475 | spin_unlock_irqrestore(q->lock, qflags); |
478 | while (aac_adapter_send(fibptr) != 0) { | 476 | while (aac_adapter_send(fibptr) != 0) { |
@@ -481,7 +479,6 @@ int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, | |||
481 | spin_unlock_irqrestore(&fibptr->event_lock, flags); | 479 | spin_unlock_irqrestore(&fibptr->event_lock, flags); |
482 | spin_lock_irqsave(q->lock, qflags); | 480 | spin_lock_irqsave(q->lock, qflags); |
483 | q->numpending--; | 481 | q->numpending--; |
484 | list_del(&fibptr->queue); | ||
485 | spin_unlock_irqrestore(q->lock, qflags); | 482 | spin_unlock_irqrestore(q->lock, qflags); |
486 | return -ETIMEDOUT; | 483 | return -ETIMEDOUT; |
487 | } | 484 | } |
@@ -492,7 +489,6 @@ int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, | |||
492 | unsigned long nointr = 0; | 489 | unsigned long nointr = 0; |
493 | aac_queue_get( dev, &index, AdapNormCmdQueue, hw_fib, 1, fibptr, &nointr); | 490 | aac_queue_get( dev, &index, AdapNormCmdQueue, hw_fib, 1, fibptr, &nointr); |
494 | 491 | ||
495 | list_add_tail(&fibptr->queue, &q->pendingq); | ||
496 | q->numpending++; | 492 | q->numpending++; |
497 | *(q->headers.producer) = cpu_to_le32(index + 1); | 493 | *(q->headers.producer) = cpu_to_le32(index + 1); |
498 | spin_unlock_irqrestore(q->lock, qflags); | 494 | spin_unlock_irqrestore(q->lock, qflags); |
@@ -520,7 +516,6 @@ int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, | |||
520 | if (--count == 0) { | 516 | if (--count == 0) { |
521 | spin_lock_irqsave(q->lock, qflags); | 517 | spin_lock_irqsave(q->lock, qflags); |
522 | q->numpending--; | 518 | q->numpending--; |
523 | list_del(&fibptr->queue); | ||
524 | spin_unlock_irqrestore(q->lock, qflags); | 519 | spin_unlock_irqrestore(q->lock, qflags); |
525 | if (wait == -1) { | 520 | if (wait == -1) { |
526 | printk(KERN_ERR "aacraid: aac_fib_send: first asynchronous command timed out.\n" | 521 | printk(KERN_ERR "aacraid: aac_fib_send: first asynchronous command timed out.\n" |
@@ -534,8 +529,7 @@ int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, | |||
534 | } | 529 | } |
535 | } else | 530 | } else |
536 | down(&fibptr->event_wait); | 531 | down(&fibptr->event_wait); |
537 | if(fibptr->done == 0) | 532 | BUG_ON(fibptr->done == 0); |
538 | BUG(); | ||
539 | 533 | ||
540 | if((fibptr->flags & FIB_CONTEXT_FLAG_TIMED_OUT)){ | 534 | if((fibptr->flags & FIB_CONTEXT_FLAG_TIMED_OUT)){ |
541 | return -ETIMEDOUT; | 535 | return -ETIMEDOUT; |
@@ -1214,7 +1208,7 @@ int aac_command_thread(void *data) | |||
1214 | * since the last read off | 1208 | * since the last read off |
1215 | * the queue? | 1209 | * the queue? |
1216 | */ | 1210 | */ |
1217 | if ((time_now - time_last) > 120) { | 1211 | if ((time_now - time_last) > aif_timeout) { |
1218 | entry = entry->next; | 1212 | entry = entry->next; |
1219 | aac_close_fib_context(dev, fibctx); | 1213 | aac_close_fib_context(dev, fibctx); |
1220 | continue; | 1214 | continue; |