if (targ == NULL) break; 
ahd_send_async(struct ahd_softc *ahd, char channel,	       u_int target, u_int lun, ac_code code, void *arg){	switch (code) {	case AC_TRANSFER_NEG:	{		char	buf[80];		struct  scsi_target *starget;		struct	ahd_linux_target *targ;		struct	info_str info;		struct	ahd_initiator_tinfo *tinfo;		struct	ahd_tmode_tstate *tstate;		unsigned int target_ppr_options;		BUG_ON(target == CAM_TARGET_WILDCARD);		info.buffer = buf;		info.length = sizeof(buf);		info.offset = 0;		info.pos = 0;		tinfo = ahd_fetch_transinfo(ahd, channel, ahd->our_id,					    target, &tstate);		/*		 * Don't bother reporting results while		 * negotiations are still pending.		 */		if (tinfo->curr.period != tinfo->goal.period		 || tinfo->curr.width != tinfo->goal.width		 || tinfo->curr.offset != tinfo->goal.offset		 || tinfo->curr.ppr_options != tinfo->goal.ppr_options)			if (bootverbose == 0)				break;		/*		 * Don't bother reporting results that		 * are identical to those last reported.		 */		starget = ahd->platform_data->starget[target];		targ = scsi_transport_target_data(starget);		if (targ == NULL)			break;		target_ppr_options =			(spi_dt(starget) ? MSG_EXT_PPR_DT_REQ : 0)			+ (spi_qas(starget) ? MSG_EXT_PPR_QAS_REQ : 0)			+ (spi_iu(starget) ?  MSG_EXT_PPR_IU_REQ : 0)			+ (spi_rd_strm(starget) ? MSG_EXT_PPR_RD_STRM : 0)			+ (spi_pcomp_en(starget) ? MSG_EXT_PPR_PCOMP_EN : 0)			+ (spi_rti(starget) ? MSG_EXT_PPR_RTI : 0)			+ (spi_wr_flow(starget) ? MSG_EXT_PPR_WR_FLOW : 0)			+ (spi_hold_mcs(starget) ? MSG_EXT_PPR_HOLD_MCS : 0);		if (tinfo->curr.period == spi_period(starget)		    && tinfo->curr.width == spi_width(starget)		    && tinfo->curr.offset == spi_offset(starget)		 && tinfo->curr.ppr_options == target_ppr_options)			if (bootverbose == 0)				break;		spi_period(starget) = tinfo->curr.period;		spi_width(starget) = tinfo->curr.width;		spi_offset(starget) = tinfo->curr.offset;		spi_dt(starget) = tinfo->curr.ppr_options & MSG_EXT_PPR_DT_REQ ? 1 : 0;		spi_qas(starget) = tinfo->curr.ppr_options & MSG_EXT_PPR_QAS_REQ ? 1 : 0;		spi_iu(starget) = tinfo->curr.ppr_options & MSG_EXT_PPR_IU_REQ ? 1 : 0;		spi_rd_strm(starget) = tinfo->curr.ppr_options & MSG_EXT_PPR_RD_STRM ? 1 : 0;		spi_pcomp_en(starget) =  tinfo->curr.ppr_options & MSG_EXT_PPR_PCOMP_EN ? 1 : 0;		spi_rti(starget) =  tinfo->curr.ppr_options &  MSG_EXT_PPR_RTI ? 1 : 0;		spi_wr_flow(starget) = tinfo->curr.ppr_options & MSG_EXT_PPR_WR_FLOW ? 1 : 0;		spi_hold_mcs(starget) = tinfo->curr.ppr_options & MSG_EXT_PPR_HOLD_MCS ? 1 : 0;		spi_display_xfer_agreement(starget);		break;	}        case AC_SENT_BDR:	{		WARN_ON(lun != CAM_LUN_WILDCARD);		scsi_report_device_reset(ahd->platform_data->host,					 channel - 'A', target);		break;	}        case AC_BUS_RESET:		if (ahd->platform_data->host != NULL) {			scsi_report_bus_reset(ahd->platform_data->host,					      channel - 'A');		}                break;        default:                panic("ahd_send_async: Unexpected async event");        }}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/fc789a93994858b5e5a46afb96d0dcf6cc1b6f08/aic79xx_osm.c/clean/drivers/scsi/aic7xxx/aic79xx_osm.c