Re: Linux-1.3.66 - scsi.c breaks

Leonard N. Zubkoff (lnz@dandelion.com)
Sun, 18 Feb 1996 14:14:27 -0800


Date: Sun, 18 Feb 1996 11:10:30 -0700 (MST)
From: James MacKinnon <jmack@phys.ualberta.ca>

A change to scsi.c in 1.3.66 (perhaps in 1.3.65) broke the scsi scan pass,
generating the following on boot (logging to /usr/adm/messages
got screwed up as well in the process). Things were ok in 1.3.64.

This is on a P586.

James,

I think the following correction should take care of the multi_lun case. Would
you test this out be sure it resolves it for you? It will be a few hours
before my test system will be free for an experiment.

The corrected code adds a test for lun > 0

if (((SCpnt->sense_buffer[2] & 0xf) != NOT_READY) &&
((SCpnt->sense_buffer[2] & 0xf) != UNIT_ATTENTION) &&
((SCpnt->sense_buffer[2] & 0xf) != ILLEGAL_REQUEST || lun > 0))
return 1;

The idea is that getting back an ILLEGAL_REQUEST while probing lun 0 really
means that something is out there (but has a saved error condition that hasn't
been cleared yet), whereas for lun > 0 it probably means there is not.

Leonard