[sane-devel] SCSI: error during device I/O

Douglas Gilbert dgilbert@interlog.com
Sat, 09 Mar 2002 12:27:56 -0500


Peter Kirchgessner wrote:
> Hello,
> 
> some time ago problems have been reported with some 2.4.x kernels and 
> SCSI-devices. What was working with 2.2.x, failed there with an "error 
> during device I/O". The problem seemed to be a broken handling of 
> SCSI-requests in the kernel (from mailing list: kernels 2.4.6, 2.4.10, 
> 2.4.12 and 2.4.13).
> Does anybody know if the problem has been fixed ? And if so, at which 
> kernel ? The ChangeLogs don't tell me much.

Peter,
If the error from the sg driver is actually EIO then it
indicates that the version 2 sg interface (based on the
sg_header struct) is being used. One shortcoming of this
interface was the difficulty of overcoming the default
assumption of a SCSI command size based on its opcode
(first byte). The SANE Canon backend was tripped up
by that and supplied a patch to the sg driver. That patch
probably hasn't worked (i.e. breaks when being applied)
since lk 2.2.6 (over 3 years ago). The original sg driver
(version 1) yielded EIO for just about every error it
encountered!

Any recent SANE backend driver should be using the sanei
layer which on a linux 2.4 series kernel will be using
the sg version 3 interface. In this case EIO should not
occur.

Doug Gilbert