[parisc-linux] Re: 53c700 (LASI SCSI 53c700) hang

James Bottomley James.Bottomley@HansenPartnership.com
Mon, 04 Feb 2002 13:50:30 -0600

What these errors tell me is that your HD accepted more tags than it could 
cope with and then choked.  Linux error handler isn't very good at handling 
this situation.  Also, your disc:

deller@gmx.de said:
>   Vendor: QUANTUM   Model: FIREBALL_TM3200S  Rev: 300X 

Is a known trouble causer with tag command queueing.  Initially, try taking 
the #define NCR_700_MAX_TAGS in drivers/scsi/53c700.h down to 4 or 2 and 
recompiling the driver.  Alternatively, turn off tagged command queueing 
altogether by commenting out this block of code:

	if(SCp->device->tagged_supported && !SCp->device->tagged_queue
	   && (hostdata->tag_negotiated &(1<<SCp->target)) == 0
	   && NCR_700_is_flag_clear(SCp->device, NCR_700_DEV_BEGIN_TAG_QUEUEING)) {
		/* upper layer has indicated tags are supported.  We don't
		 * necessarily believe it yet.
		 * NOTE: There is a danger here: the mid layer supports
		 * tag queuing per LUN.  We only support it per PUN because
		 * of potential reselection issues */
		printk(KERN_INFO "scsi%d: (%d:%d) Enabling Tag Command Queuing\n", SCp->
device->host->host_no, SCp->target, SCp->lun);
		hostdata->tag_negotiated |= (1<<SCp->target);
		NCR_700_set_flag(SCp->device, NCR_700_DEV_BEGIN_TAG_QUEUEING);
		SCp->device->tagged_queue = 1;

in drivers/scsi/53c700.c at about line 1891.

I am getting around to adding the code changes to make this able to be done as 
module/kernel command line options.