1460
1461
1462
1463 up(&fibctx->wait_sem);
1464 } else {
1465 printk(KERN_WARNING "aifd: didn't allocate NewFib.\n");
1466 kfree(fib);
1467 kfree(hw_fib);
1468 }
1469 entry = entry->next;
1470 }
1471
1472 spin_unlock_irqrestore(&aac->fib_lock, flagv);
1473
1474 if (BlinkLED < 0) {
1475 printk(KERN_ERR "%s: Host adapter dead %d\n", aac->name, BlinkLED);
1476 goto out;
1477 }
1478
1479 printk(KERN_ERR "%s: Host adapter BLINK LED 0x%x\n", aac->name, BlinkLED);
1480
1481 if (!aac_check_reset || ((aac_check_reset == 1) &&
1482 (aac->supplement_adapter_info.SupportedOptions2 &
1483 AAC_OPTION_IGNORE_RESET)))
1484 goto out;
1485 host = aac->scsi_host_ptr;
1486 if (aac->thread->pid != current->pid)
1487 spin_lock_irqsave(host->host_lock, flagv);
1488 BlinkLED = _aac_reset_adapter(aac, aac_check_reset != 1);
1489 if (aac->thread->pid != current->pid)
1490 spin_unlock_irqrestore(host->host_lock, flagv);
1491 return BlinkLED;
1492
1493out:
1494 aac->in_reset = 0;
1495 return BlinkLED;
1496}
1497
1498
1499
1500