return SCSI_RESET_SUCCESS; 
return SUCCESS; 
static int ultrastor_host_reset(Scsi_Cmnd * SCpnt){    unsigned long flags;    int i;    struct Scsi_Host *host = SCpnt->device->host;    #if (ULTRASTOR_DEBUG & UD_RESET)    printk("US14F: reset: called\n");#endif    if(config.slot)    	return FAILED;    spin_lock_irqsave(host->host_lock, flags);    /* Reset the adapter and SCSI bus.  The SCSI bus reset can be       inhibited by clearing ultrastor_bus_reset before probe.  */    outb(0xc0, LCL_DOORBELL_INTR(config.doorbell_address));    if (config.slot)      {	outb(0, config.ogm_address - 1);	outb(0, config.icm_address - 1);      }#if ULTRASTOR_MAX_CMDS == 1    if (config.mscp_busy && config.mscp->done && config.mscp->SCint)      {	config.mscp->SCint->result = DID_RESET << 16;	config.mscp->done(config.mscp->SCint);      }    config.mscp->SCint = 0;#else    for (i = 0; i < ULTRASTOR_MAX_CMDS; i++)      {	if (! (config.mscp_free & (1 << i)) &&	    config.mscp[i].done && config.mscp[i].SCint)	  {	    config.mscp[i].SCint->result = DID_RESET << 16;	    config.mscp[i].done(config.mscp[i].SCint);	    config.mscp[i].done = NULL;	  }	config.mscp[i].SCint = NULL;      }#endif    /* FIXME - if the device implements soft resets, then the command       will still be running.  ERY                Even bigger deal with new_eh!      */    memset((unsigned char *)config.aborted, 0, sizeof config.aborted);#if ULTRASTOR_MAX_CMDS == 1    config.mscp_busy = 0;#else    config.mscp_free = ~0;#endif    spin_unlock_irqrestore(host->host_lock, flags);    return SCSI_RESET_SUCCESS;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/2bc474c3646efba67bdc83b7fc7d8ee7562e0106/ultrastor.c/buggy/drivers/scsi/ultrastor.c