spin_lock(&ha->hardware_lock); 
qla2xxx_eh_abort(struct scsi_cmnd *cmd){	scsi_qla_host_t *ha = to_qla_host(cmd->device->host);	srb_t *sp;	int ret, i;	unsigned int id, lun;	unsigned long serial;	if (!CMD_SP(cmd))		return FAILED;	ret = FAILED;	id = cmd->device->id;	lun = cmd->device->lun;	serial = cmd->serial_number;	/* Check active list for command command. */	spin_unlock_irq(ha->host->host_lock);	spin_lock(&ha->hardware_lock);	for (i = 1; i < MAX_OUTSTANDING_COMMANDS; i++) {		sp = ha->outstanding_cmds[i];		if (sp == NULL)			continue;		if (sp->cmd != cmd)			continue;		DEBUG2(printk("%s(%ld): aborting sp %p from RISC. pid=%ld "		    "sp->state=%x\n", __func__, ha->host_no, sp, serial,		    sp->state));		DEBUG3(qla2x00_print_scsi_cmd(cmd);)		spin_unlock(&ha->hardware_lock);		if (qla2x00_abort_command(ha, sp)) {			DEBUG2(printk("%s(%ld): abort_command "			    "mbx failed.\n", __func__, ha->host_no));		} else {			DEBUG3(printk("%s(%ld): abort_command "			    "mbx success.\n", __func__, ha->host_no));			ret = SUCCESS;		}		spin_lock(&ha->hardware_lock);		break;	}	/* Wait for the command to be returned. */	if (ret == SUCCESS) {		spin_unlock(&ha->hardware_lock);		if (qla2x00_eh_wait_on_command(ha, cmd) != QLA_SUCCESS) {			qla_printk(KERN_ERR, ha, 			    "scsi(%ld:%d:%d): Abort handler timed out -- %lx "			    "%x.\n", ha->host_no, id, lun, serial, ret);		}		spin_lock(&ha->hardware_lock);	}	spin_lock_irq(ha->host->host_lock);	qla_printk(KERN_INFO, ha, 	    "scsi(%ld:%d:%d): Abort command issued -- %lx %x.\n", ha->host_no,	    id, lun, serial, ret);	return ret;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/18e144d32cd3dae6953c385e4b376ef9688b61b0/qla_os.c/clean/drivers/scsi/qla2xxx/qla_os.c