spin_unlock_irq(host->host_lock); 
static int aac_eh_reset(struct scsi_cmnd* cmd){	struct scsi_device * dev = cmd->device;	struct Scsi_Host * host = dev->host;	struct scsi_cmnd * command;	int count;	struct aac_dev * aac;	unsigned long flags;	printk(KERN_ERR "%s: Host adapter reset request. SCSI hang ?\n", 					AAC_DRIVERNAME);	spin_lock_irq(host->host_lock);	aac = (struct aac_dev *)host->hostdata;	if (aac_adapter_check_health(aac)) {		printk(KERN_ERR "%s: Host adapter appears dead\n", 				AAC_DRIVERNAME);		spin_unlock_irq(host->host_lock);		return -ENODEV;	}	/*	 * Wait for all commands to complete to this specific	 * target (block maximum 60 seconds).	 */	for (count = 60; count; --count) {		int active = 0;		__shost_for_each_device(dev, host) {			spin_lock_irqsave(&dev->list_lock, flags);			list_for_each_entry(command, &dev->cmd_list, list) {				if (command->serial_number) {					active++;					break;				}			}			spin_unlock_irqrestore(&dev->list_lock, flags);			if (active)				break;		}		/*		 * We can exit If all the commands are complete		 */		if (active == 0)			return SUCCESS;		spin_unlock_irq(host->host_lock);		ssleep(1);		spin_lock_irq(host->host_lock);	}	spin_unlock_irq(host->host_lock);	printk(KERN_ERR "%s: SCSI bus appears hung\n", AAC_DRIVERNAME);	return -ETIMEDOUT;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/0e7734d3ca24302a513e69dd24a560c34047c038/linit.c/buggy/drivers/scsi/aacraid/linit.c