> I have done some investigations on the problem:
>
> - ENXIO is returned from some location in st.c, but I suspect that it
> comes from this:
>
> if( !scsi_block_when_processing_errors(scsi_tapes[dev].device) ) {
> return -ENXIO;
> }
>
> Could someone of you confirm this with a printk? If this is not the case,
> please forget that I wrote anything below this.
I replaced every return (-E....) by RETURN (...) and used
#define RETURN(r) do { printk("--> st:RETURN %d in line %d\n",r,__LINE__); return (r); } while (0)
(so line number are off by one for 2.1.125) and when trying to read
past EOF/EOT for QIC150 I got:
-------------------------------------------------------------------------------
st0: Block limits 512 - 512 bytes.
st0: Mode sense. Length 11, medium 6, WBS 10, BLL 8
st0: Density 0, tape length: 0, drv buffer: 1
st0: Block size: 512, buffer size: 32768 (64 blocks).
aha1542.c: Trying device reset for target 2
Sent BUS RESET to scsi host 1
st0: Error: 8000002, cmd: 8 1 0 0 40 0 Len: 32768
extra data not valid Current error st09:00: sense key Unit Attention
Additional sense indicates Power on, reset, or bus device reset occurred
--> st:RETURN -5 in line 217
st0: Sense: 70 0 6 0 0 0 0 16
st0: Tape error while reading.
-------------------------------------------------------------------------------
which is the RETURN (-EIO) at the very end of st_chk_result() in line 216.
no other error returns show up in st.c.
note that the `aha1542.c: Trying device reset...' shows up before any
debug message from st.c or error in st.c
Harald
-- All SCSI disks will from now on ___ _____ be required to send an email notice 0--,| /OOOOOOO\ 24 hours prior to complete hardware failure! <_/ / /OOOOOOOOOOO\ \ \/OOOOOOOOOOOOOOO\ \ OOOOOOOOOOOOOOOOO|// Harald Koenig, \/\/\/\/\/\/\/\/\/ Inst.f.Theoret.Astrophysik // / \\ \ koenig@tat.physik.uni-tuebingen.de ^^^^^ ^^^^^- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/