if (ahd_linux_next_device_to_run(ahd) != NULL) ahd_schedule_runq(ahd); 
ahd_linux_dv_timeout(struct scsi_cmnd *cmd){	struct	ahd_softc *ahd;	struct	scb *scb;	u_long	flags;	ahd = *((struct ahd_softc **)cmd->device->host->hostdata);	ahd_lock(ahd, &flags);#ifdef AHD_DEBUG	if (ahd_debug & AHD_SHOW_DV) {		printf("%s: Timeout while doing DV command %x.\n",		       ahd_name(ahd), cmd->cmnd[0]);		ahd_dump_card_state(ahd);	}#endif		/*	 * Guard against "done race".  No action is	 * required if we just completed.	 */	if ((scb = (struct scb *)cmd->host_scribble) == NULL) {		ahd_unlock(ahd, &flags);		return;	}	/*	 * Command has not completed.  Mark this	 * SCB as having failing status prior to	 * resetting the bus, so we get the correct	 * error code.	 */	if ((scb->flags & SCB_SENSE) != 0)		ahd_set_transaction_status(scb, CAM_AUTOSENSE_FAIL);	else		ahd_set_transaction_status(scb, CAM_CMD_TIMEOUT);	ahd_reset_channel(ahd, cmd->device->channel + 'A', /*initiate*/TRUE);	/*	 * Add a minimal bus settle delay for devices that are slow to	 * respond after bus resets.	 */	ahd_freeze_simq(ahd);	init_timer(&ahd->platform_data->reset_timer);	ahd->platform_data->reset_timer.data = (u_long)ahd;	ahd->platform_data->reset_timer.expires = jiffies + HZ / 2;	ahd->platform_data->reset_timer.function =	    (ahd_linux_callback_t *)ahd_release_simq;	add_timer(&ahd->platform_data->reset_timer);	if (ahd_linux_next_device_to_run(ahd) != NULL)		ahd_schedule_runq(ahd);	ahd_linux_run_complete_queue(ahd);	ahd_unlock(ahd, &flags);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/60a13213840296b1e32d6781653a0eaa83d04382/aic79xx_osm.c/clean/drivers/scsi/aic7xxx/aic79xx_osm.c