From: Mark Hounschell on
My application uses SCSI disks of 256, 512, 768, and 1024 sector sizes. It
uses the sg_io interface to talk to these devices. As of 2.6.27 if any SCSI
disk is attached that has been formatted with a 256 byte sector size, the
boot process hangs when it gets to the point of discovering USB devices.
512, 768, and 1024 sector sizes do not seem to trigger this.

I have bisected this problem to the following commit:

# git bisect good
427e59f09fdba387547106de7bab980b7fff77be is first bad commit
commit 427e59f09fdba387547106de7bab980b7fff77be
Author: James Bottomley <James.Bottomley(a)HansenPartnership.com>
Date: Sat Mar 8 18:24:17 2008 -0600

[SCSI] make use of the residue value

USB sometimes doesn't return an error but instead returns a residue
value indicating part (or all) of the command wasn't completed. So if
the driver _done() error processing indicates the command was fully
processed, subtract off the residue so that this USB error gets
propagated.

Cc: Alan Stern <stern(a)rowland.harvard.edu>
Signed-off-by: James Bottomley <James.Bottomley(a)HansenPartnership.com>

:040000 040000 d3bad84ebe1bc231e8e7d6267907ca62fd4d0dcd
c85f8cb8bd4910724f0101e41054555980727e16 M drivers

Now, what the hell USB has to do with my SCSI disks is beyond me. I have a
feeling that this commit is just uncovering another problem. I've attached
a dmesg from a working kernel and pointed out where the boot hangs and my
SCSI disk light is on solid. Once it turns on solid the only recourse is to
recycle power to the disk. The reset button does nothing to it. In fact a
second will not even see the device because it is out to lunch. Not even a
SCSI bus reset clears what ever has happened to the disk.

This does the same thing on a 2.6.34 kernel also. Anything I can do to
help, I'm available.

Thanks and regards
Mark