SCSI Generics problem with 1.3.69

Michael K. Johnson (johnsonm@nigel.vnet.net)
Wed, 28 Feb 1996 11:39:00 -0500


I wrote a SCSI Generics-based driver for UMAX scanners that works
just fine under 1.2.13. However, under 1.3.69, it sometimes works
and sometimes panics, but always gives:
scsi0 : DANGER : abort_connected() called
once per scan, and sometimes the scsi code re-inits, as shown below.
I don't have a SCSI analyzer handy, so I can't tell what's going on
on the bus. Here's a dmesg dump which I fortunately made before the
machine paniced... :-)

My host adaptor is an NCR53c810. The SCSI bus is properly terminated
and has given me no trouble under 1.2.13 or that other ugly OS
(Windows 95) that I have to suffer under while doing OCR. It's been
very stable for half a year. I've got 16MB of ram and an ASUS
motherboard. More info available on request.

If anyone wants a copy of the driver to look at what I'm doing,
feel free to let me know.

s SCSI
Vendor: SONY Model: SDT-5000 Rev: 3.26
Type: Sequential-Access ANSI SCSI revision: 02
Detected scsi tape st0 at scsi0, channel 0, id 4, lun 0
scsi0 : target 5 rejected SDTR
scsi0 : setting target 5 to asynchronous SCSI
Vendor: UMAX Model: Vista-S6 Rev: V1.7
Type: Scanner ANSI SCSI revision: 02
Detected scsi generic sgc at scsi0, channel 0, id 5, lun 0
scsi0 : target 6 accepting asynchronous SCSI
scsi0 : setting target 6 to asynchronous SCSI
Vendor: NEC Model: CD-ROM DRIVE:500 Rev: 2.8
Type: CD-ROM ANSI SCSI revision: 02
Detected scsi CD-ROM sr0 at scsi0, channel 0, id 6, lun 0
scsi : detected 1 SCSI tape 1 SCSI cdrom 1 SCSI disk total.
SCSI Hardware sector size is 512 bytes on device sda
eth0: 3c509 at 0x300 tag 1, BNC port, address 00 20 af da 04 71, IRQ 5.
3c509.c:1.03 10/8/94 becker@cesdis.gsfc.nasa.gov
Partition check:
sda: sda1 sda2 sda3
VFS: Mounted root (ext2 filesystem) readonly.
Adding Swap: 16860k swap-space
scsi0 : DANGER : abort_connected() called
scsi : aborting command due to timeout : pid 1628, scsi0, channel 0, id 0, lun 0 Write (6) 0c b8 28 02 00
scsi0 : DANGER : command running, can not abort.
scsi : aborting command due to timeout : pid 1629, scsi0, channel 0, id 0, lun 0 Write (6) 0c 78 80 02 00
scsi0 : found command 1629 in Linux issue queue
scsi : aborting command due to timeout : pid 1628, scsi0, channel 0, id 0, lun 0 Write (6) 0c b8 28 02 00
scsi0 : DANGER : command running, can not abort.
SCSI host 0 abort (pid 1628) timed out - resetting
SCSI bus is being reset for host 0.
scsi0 : DCMD|DBC=0x860b0000, DNAD=0x88810 (virt 0x00088810)
DSA=0x93c1e8 (virt 0x0093c1e8)
DSPS=0x88810, TEMP=0x93c0ac (virt 0x0093c0ac), DMODE=0x80
SXFER=0x0, SCNTL3=0x3
phase=MSGIN, 0 bytes in SCSI FIFO
STEST0=0x7
scsi0 : DSP 0x88808 (virt 0x00088808) ->
0x88808 (virt 0x00088808) : 0x860b0000 0x00088810 (virt 0x00088810)
0x88810 (virt 0x00088810) : 0x1e000000 0x00000040 (virt 0x00000040)
0x88818 (virt 0x00088818) : 0x90080000 0x00000000 (virt 0x00000000)
0x88820 (virt 0x00088820) : 0x820b0000 0x00088840 (virt 0x00088840)
0x88828 (virt 0x00088828) : 0x9f030000 0x00000000 (virt 0x00000000)
0x88830 (virt 0x00088830) : 0x8f0b0000 0x00088a00 (virt 0x00088a00)
scsi0 : issue queue
scsi0 : dsa at phys 0x938080 (virt 0x00938080)
+ 64 : dsa_msgout length = 558560, data = 0x0 (virt 0x00000000)
+ 60 : select_indirect = 0xc0000004
+ 56 : dsa_cmnd = 0x0
+ 48 : dsa_next = 0x0
scsi0 : dsa at phys 0x93c080 (virt 0x0093c080)
+ 64 : dsa_msgout length = 558560, data = 0x0 (virt 0x00000000)
+ 60 : select_indirect = 0xc0000004
+ 56 : dsa_cmnd = 0x0
+ 48 : dsa_next = 0x0
scsi0 : schedule dsa array :
scsi0 : dsa at phys 0x936080 (virt 0x00936080)
+ 64 : dsa_msgout length = 558560, data = 0x8a21c (virt 0x0008a21c)
+ 60 : select_indirect = 0xc0000004
+ 56 : dsa_cmnd = 0x0
+ 48 : dsa_next = 0x0
scsi0 : end schedule dsa array
scsi0 : reconnect_dsa_head :
scsi0 : end reconnect_dsa_head
The sti() implicit in a printk() prevents hangs
scsi : aborting command due to timeout : pid 1630, scsi0, channel 0, id 0, lun 0 Write (6) 17 8c b8 02 00
scsi0 : did this command ever run?
scsi0 : target 0 accepting asynchronous SCSI
scsi0 : setting target 0 to asynchronous SCSI
scsi : aborting command due to timeout : pid 1629, scsi0, channel 0, id 0, lun 0 Write (6) 0c 78 80 02 00
scsi0 : did this command ever run?
scsi0 : target 4 accepting asynchronous SCSI
scsi0 : setting target 4 to asynchronous SCSI
scsi0 : target 5 rejected SDTR
scsi0 : setting target 5 to asynchronous SCSI
scsi0 : DANGER : abort_connected() called
scsi0 : DANGER : abort_connected() called