print_command (cmd->cmd->cmnd); 
__scsi_print_command (cmd->cmd->cmnd); 
NCR53c7x0_intr (int irq, void *dev_id, struct pt_regs * regs){    NCR53c7x0_local_declare();    struct Scsi_Host *host;			/* Host we are looking at */    unsigned char istat; 			/* Values of interrupt regs */    struct NCR53c7x0_hostdata *hostdata;	/* host->hostdata[0] */    struct NCR53c7x0_cmd *cmd;			/* command which halted */    u32 *dsa;					/* DSA */    int handled = 0;#ifdef NCR_DEBUG    char buf[80];				/* Debugging sprintf buffer */    size_t buflen;				/* Length of same */#endif    host     = (struct Scsi_Host *)dev_id;    hostdata = (struct NCR53c7x0_hostdata *) host->hostdata[0];    NCR53c7x0_local_setup(host);    /*     * Only read istat once per loop, since reading it again will unstack     * interrupts     */    while ((istat = NCR53c7x0_read8(hostdata->istat)) & (ISTAT_SIP|ISTAT_DIP)) {	handled = 1;	hostdata->dsp_changed = 0;	hostdata->dstat_valid = 0;    	hostdata->state = STATE_HALTED;	if (NCR53c7x0_read8 (SSTAT2_REG) & SSTAT2_FF_MASK) 	    printk ("scsi%d : SCSI FIFO not empty\n", host->host_no);	/*	 * NCR53c700 and NCR53c700-66 change the current SCSI	 * process, hostdata->ncrcurrent, in the Linux driver so	 * cmd = hostdata->ncrcurrent.	 *	 * With other chips, we must look through the commands	 * executing and find the command structure which 	 * corresponds to the DSA register.	 */	if (hostdata->options & OPTION_700) {	    cmd = (struct NCR53c7x0_cmd *) hostdata->ncrcurrent;	} else {	    dsa = bus_to_virt(NCR53c7x0_read32(DSA_REG));	    for (cmd = (struct NCR53c7x0_cmd *) hostdata->running_list;		cmd && (dsa + (hostdata->dsa_start / sizeof(u32))) != cmd->dsa;		    cmd = (struct NCR53c7x0_cmd *)(cmd->next))		;	}	if (hostdata->options & OPTION_DEBUG_INTR) {	    if (cmd) {		printk("scsi%d : interrupt for pid %lu, id %d, lun %d ", 		    host->host_no, cmd->cmd->pid, (int) cmd->cmd->device->id,		    (int) cmd->cmd->device->lun);		print_command (cmd->cmd->cmnd);	    } else {		printk("scsi%d : no active command\n", host->host_no);	    }	}		if (istat & ISTAT_SIP) {	    if (hostdata->options & OPTION_DEBUG_INTR) 		printk ("scsi%d : ISTAT_SIP\n", host->host_no);	    intr_scsi (host, cmd);	}		if (istat & ISTAT_DIP) {	    if (hostdata->options & OPTION_DEBUG_INTR) 		printk ("scsi%d : ISTAT_DIP\n", host->host_no);	    intr_dma (host, cmd);	}		if (!hostdata->dstat_valid) {	    hostdata->dstat = NCR53c7x0_read8(DSTAT_REG);	    hostdata->dstat_valid = 1;	}		if (!(hostdata->dstat & DSTAT_DFE)) {	    printk ("scsi%d : DMA FIFO not empty\n", host->host_no);	    /* Really need to check this out for 710 RGH */	    NCR53c7x0_write8 (CTEST8_REG, CTEST8_10_CLF);	    while (NCR53c7x0_read8 (CTEST8_REG) & CTEST8_10_CLF)		;	    hostdata->dstat |= DSTAT_DFE;	}	if (!hostdata->idle && hostdata->state == STATE_HALTED) {	    if (!hostdata->dsp_changed)		hostdata->dsp = (u32 *)bus_to_virt(NCR53c7x0_read32(DSP_REG));#if 0	    printk("scsi%d : new dsp is 0x%lx (virt 0x%p)\n",		host->host_no,  virt_to_bus(hostdata->dsp), hostdata->dsp);#endif			    hostdata->state = STATE_RUNNING;	    NCR53c7x0_write32 (DSP_REG, virt_to_bus(hostdata->dsp));	    if (hostdata->options & OPTION_DEBUG_TRACE) {#ifdef CYCLIC_TRACE		log_insn (hostdata->dsp);#else	    	print_insn (host, hostdata->dsp, "t ", 1);#endif		NCR53c7x0_write8 (DCNTL_REG,			hostdata->saved_dcntl | DCNTL_SSM | DCNTL_STD);	    }	}    }    return IRQ_HANDLED;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/1409277c4aad2e87ad27b2b8a6901ce78eaf8081/53c7xx.c/buggy/drivers/scsi/53c7xx.c