print_command(SCpnt->cmnd); 
__scsi_print_command(SCpnt->cmnd); 
void acornscsi_done(AS_Host *host, Scsi_Cmnd **SCpntp, unsigned int result){    Scsi_Cmnd *SCpnt = *SCpntp;    /* clean up */    sbic_arm_write(host->scsi.io_port, SBIC_SOURCEID, SOURCEID_ER | SOURCEID_DSP);    host->stats.fins += 1;    if (SCpnt) {	*SCpntp = NULL;	acornscsi_dma_cleanup(host);	SCpnt->result = result << 16 | host->scsi.SCp.Message << 8 | host->scsi.SCp.Status;	/*	 * In theory, this should not happen.  In practice, it seems to.	 * Only trigger an error if the device attempts to report all happy	 * but with untransferred buffers...  If we don't do something, then	 * data loss will occur.  Should we check SCpnt->underflow here?	 * It doesn't appear to be set to something meaningful by the higher	 * levels all the time.	 */	if (result == DID_OK) {		int xfer_warn = 0;		if (SCpnt->underflow == 0) {			if (host->scsi.SCp.ptr &&			    acornscsi_cmdtype(SCpnt->cmnd[0]) != CMD_MISC)				xfer_warn = 1;		} else {			if (host->scsi.SCp.scsi_xferred < SCpnt->underflow ||			    host->scsi.SCp.scsi_xferred != host->dma.transferred)				xfer_warn = 1;		}		/* ANSI standard says: (SCSI-2 Rev 10c Sect 5.6.6)		 *  Targets which break data transfers into multiple		 *  connections shall end each successful connection		 *  (except possibly the last) with a SAVE DATA		 *  POINTER - DISCONNECT message sequence.		 *		 * This makes it difficult to ensure that a transfer has		 * completed.  If we reach the end of a transfer during		 * the command, then we can only have finished the transfer.		 * therefore, if we seem to have some data remaining, this		 * is not a problem.		 */		if (host->dma.xfer_done)			xfer_warn = 0;		if (xfer_warn) {		    switch (status_byte(SCpnt->result)) {		    case CHECK_CONDITION:		    case COMMAND_TERMINATED:		    case BUSY:		    case QUEUE_FULL:		    case RESERVATION_CONFLICT:			break;		    default:			printk(KERN_ERR "scsi%d.H: incomplete data transfer detected: result=%08X command=",				host->host->host_no, SCpnt->result);			print_command(SCpnt->cmnd);			acornscsi_dumpdma(host, "done");		 	acornscsi_dumplog(host, SCpnt->device->id);			SCpnt->result &= 0xffff;			SCpnt->result |= DID_ERROR << 16;		    }		}	}	if (!SCpnt->scsi_done)	    panic("scsi%d.H: null scsi_done function in acornscsi_done", host->host->host_no);	clear_bit(SCpnt->device->id * 8 + SCpnt->device->lun, host->busyluns);	SCpnt->scsi_done(SCpnt);    } else	printk("scsi%d: null command in acornscsi_done", host->host->host_no);    host->scsi.phase = PHASE_IDLE;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/db9dff366ba78085d0323364fadbf09bec0e77ee/acornscsi.c/buggy/drivers/scsi/arm/acornscsi.c