qla2x00_config_os(ha); 
qla2x00_configure_loop(scsi_qla_host_t *ha) {	int  rval;	unsigned long flags, save_flags;	rval = QLA_SUCCESS;	/* Get Initiator ID */	if (test_bit(LOCAL_LOOP_UPDATE, &ha->dpc_flags)) {		rval = qla2x00_configure_hba(ha);		if (rval != QLA_SUCCESS) {			DEBUG(printk("scsi(%ld): Unable to configure HBA.\n",			    ha->host_no));			return (rval);		}	}	save_flags = flags = ha->dpc_flags;	DEBUG(printk("scsi(%ld): Configure loop -- dpc flags =0x%lx\n",	    ha->host_no, flags));	/*	 * If we have both an RSCN and PORT UPDATE pending then handle them	 * both at the same time.	 */	clear_bit(LOCAL_LOOP_UPDATE, &ha->dpc_flags);	clear_bit(RSCN_UPDATE, &ha->dpc_flags);	ha->mem_err = 0 ;	/* Determine what we need to do */	if (ha->current_topology == ISP_CFG_FL &&	    (test_bit(LOCAL_LOOP_UPDATE, &flags))) {		ha->flags.rscn_queue_overflow = 1;		set_bit(RSCN_UPDATE, &flags);	} else if (ha->current_topology == ISP_CFG_F &&	    (test_bit(LOCAL_LOOP_UPDATE, &flags))) {		ha->flags.rscn_queue_overflow = 1;		set_bit(RSCN_UPDATE, &flags);		clear_bit(LOCAL_LOOP_UPDATE, &flags);	} else if (!ha->flags.online ||	    (test_bit(ABORT_ISP_ACTIVE, &flags))) {		ha->flags.rscn_queue_overflow = 1;		set_bit(RSCN_UPDATE, &flags);		set_bit(LOCAL_LOOP_UPDATE, &flags);	}	if (test_bit(LOCAL_LOOP_UPDATE, &flags)) {		if (test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags)) {			rval = QLA_FUNCTION_FAILED;		} else {			rval = qla2x00_configure_local_loop(ha);		}	}	if (rval == QLA_SUCCESS && test_bit(RSCN_UPDATE, &flags)) {		if (test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags)) {			rval = QLA_FUNCTION_FAILED;		} else {			rval = qla2x00_configure_fabric(ha);		}	}	if (rval == QLA_SUCCESS) {		if (atomic_read(&ha->loop_down_timer) ||		    test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags)) {			rval = QLA_FUNCTION_FAILED;		} else {			qla2x00_config_os(ha);			atomic_set(&ha->loop_state, LOOP_READY);			DEBUG(printk("scsi(%ld): LOOP READY\n", ha->host_no));		}	}	if (rval) {		DEBUG2_3(printk("%s(%ld): *** FAILED ***\n",		    __func__, ha->host_no));	} else {		DEBUG3(printk("%s: exiting normally\n", __func__));	}	/* Restore state if a resync event occured during processing */	if (test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags)) {		if (test_bit(LOCAL_LOOP_UPDATE, &save_flags))			set_bit(LOCAL_LOOP_UPDATE, &ha->dpc_flags);		if (test_bit(RSCN_UPDATE, &save_flags))			set_bit(RSCN_UPDATE, &ha->dpc_flags);	}	return (rval);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/bdf796210e01145fd77bbb3ae644d04f982b6c3b/qla_init.c/clean/drivers/scsi/qla2xxx/qla_init.c