print_command(SCpnt->cmnd); 
__scsi_print_command(SCpnt->cmnd); 
static void fas216_done(FAS216_Info *info, unsigned int result){	void (*fn)(FAS216_Info *, Scsi_Cmnd *, unsigned int);	Scsi_Cmnd *SCpnt;	unsigned long flags;	fas216_checkmagic(info);	if (!info->SCpnt)		goto no_command;	SCpnt = info->SCpnt;	info->SCpnt = NULL;    	info->scsi.phase = PHASE_IDLE;	if (info->scsi.aborting) {		fas216_log(info, 0, "uncaught abort - returning DID_ABORT");		result = DID_ABORT;		info->scsi.aborting = 0;	}	/*	 * Sanity check the completion - if we have zero bytes left	 * to transfer, we should not have a valid pointer.	 */	if (info->scsi.SCp.ptr && info->scsi.SCp.this_residual == 0) {		printk("scsi%d.%c: zero bytes left to transfer, but "		       "buffer pointer still valid: ptr=%p len=%08x CDB: ",		       info->host->host_no, '0' + SCpnt->device->id,		       info->scsi.SCp.ptr, info->scsi.SCp.this_residual);		info->scsi.SCp.ptr = NULL;		print_command(SCpnt->cmnd);	}	/*	 * Clear down this command as completed.  If we need to request	 * the sense information, fas216_kick will re-assert the busy	 * status.	 */	info->device[SCpnt->device->id].parity_check = 0;	clear_bit(SCpnt->device->id * 8 + SCpnt->device->lun, info->busyluns);	fn = (void (*)(FAS216_Info *, Scsi_Cmnd *, unsigned int))SCpnt->host_scribble;	fn(info, SCpnt, result);	if (info->scsi.irq != NO_IRQ) {		spin_lock_irqsave(&info->host_lock, flags);		if (info->scsi.phase == PHASE_IDLE)			fas216_kick(info);		spin_unlock_irqrestore(&info->host_lock, flags);	}	return;no_command:	panic("scsi%d.H: null command in fas216_done",		info->host->host_no);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/1409277c4aad2e87ad27b2b8a6901ce78eaf8081/fas216.c/buggy/drivers/scsi/arm/fas216.c