len = print_msg (ptr); 
len = scsi_print_msg (ptr); 
print_dsa (struct Scsi_Host *host, u32 *dsa, const char *prefix) {    struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *)	host->hostdata[0];    int i, len;    char *ptr;    Scsi_Cmnd *cmd;    if (check_address ((unsigned long) dsa, hostdata->dsa_end - 	hostdata->dsa_start) == -1) {	printk("scsi%d : bad dsa virt 0x%p\n", host->host_no, dsa);	return;    }    printk("%sscsi%d : dsa at phys 0x%lx (virt 0x%p)\n"	    "        + %d : dsa_msgout length = %u, data = 0x%x (virt 0x%p)\n" ,    	    prefix ? prefix : "",    	    host->host_no,  virt_to_bus (dsa), dsa, hostdata->dsa_msgout,    	    dsa[hostdata->dsa_msgout / sizeof(u32)],	    dsa[hostdata->dsa_msgout / sizeof(u32) + 1],	    bus_to_virt (dsa[hostdata->dsa_msgout / sizeof(u32) + 1]));    /*      * Only print messages if they're sane in length so we don't     * blow the kernel printk buffer on something which won't buy us     * anything.     */    if (dsa[hostdata->dsa_msgout / sizeof(u32)] < 	    sizeof (hostdata->free->select)) 	for (i = dsa[hostdata->dsa_msgout / sizeof(u32)],	    ptr = bus_to_virt (dsa[hostdata->dsa_msgout / sizeof(u32) + 1]); 	    i > 0 && !check_address ((unsigned long) ptr, 1);	    ptr += len, i -= len) {	    printk("               ");	    len = print_msg (ptr);	    printk("\n");	    if (!len)		break;	}    printk("        + %d : select_indirect = 0x%x\n",	hostdata->dsa_select, dsa[hostdata->dsa_select / sizeof(u32)]);    cmd = (Scsi_Cmnd *) bus_to_virt(dsa[hostdata->dsa_cmnd / sizeof(u32)]);    printk("        + %d : dsa_cmnd = 0x%x ", hostdata->dsa_cmnd,	   (u32) virt_to_bus(cmd));    /* XXX Maybe we should access cmd->host_scribble->result here. RGH */    if (cmd) {	printk("               result = 0x%x, target = %d, lun = %d, cmd = ",	    cmd->result, cmd->device->id, cmd->device->lun);	print_command(cmd->cmnd);    } else	printk("\n");    printk("        + %d : dsa_next = 0x%x\n", hostdata->dsa_next,	dsa[hostdata->dsa_next / sizeof(u32)]);    if (cmd) { 	printk("scsi%d target %d : sxfer_sanity = 0x%x, scntl3_sanity = 0x%x\n"	       "                   script : ",	    host->host_no, cmd->device->id,	    hostdata->sync[cmd->device->id].sxfer_sanity,	    hostdata->sync[cmd->device->id].scntl3_sanity);	for (i = 0; i < (sizeof(hostdata->sync[cmd->device->id].script) / 4); ++i)	    printk ("0x%x ", hostdata->sync[cmd->device->id].script[i]);	printk ("\n");    	print_progress (cmd);    }}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/1409277c4aad2e87ad27b2b8a6901ce78eaf8081/53c7xx.c/buggy/drivers/scsi/53c7xx.c