aha152x: mount blank CD causes kernel panic.

David Woodhouse (David.Woodhouse@mvhi.com)
Thu, 28 Oct 1999 11:41:24 +0100


Offending kernel: 2.2.13pre15
Machine: 2x PII266
SCSI: Main bus is aic7xxx
Secondary bus with CDR and Scanner, etc. is aha152x

CD drive: Vendor: PLEXTOR Model: CD-R PX-W4220T Rev: 1.01
Type: CD-ROM ANSI SCSI revision: 02

The theory behind sticking the second card in was that if that card got
confused, then it shouldn't screw up access to the root filesystem. Silly me.

I stick the CDR on the aic7xxx temporarily, and try to mount a blank CD:

VFS: Disk change detected on device sr(11,0)
sr0: CD-ROM error: Info fld=0x0, Current sr0b:00: sns = f0 5
ASC=21 ASCQ= 0
Raw sense data:0xf0 0x00 0x05 0x00 0x00 0x00 0x00 0x0a 0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x00
command was: 0x28 00 00 00 00 00 00 00 01 00

< some errors for more commands: ...>
command was: 0x08 00 00 00 01 00
command was: 0x08 00 00 00 01 00
command was: 0x08 00 00 00 01 00
command was: 0x08 00 00 00 01 00
... followed by ...
CD-ROM I/O error: dev 0b:00, sector 0
Reading super block failed
cdrom: open failed.

Fine - it whinges, as it has a right to do when I ask it to do such a thing,
but it lives.

Next, I plug the CDR back into the aha152x and try to mount the same blank CD:

sr1: CD-ROM error: Info fld=0x10, Current sr0b:01: sns = f0 5
ASC=21 ASCQ= 0
Raw sense data:0xf0 0x00 0x05 0x00 0x00 0x00 0x10 0x0a 0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x00
command was: 0x03 00 00 00 10 00

aha152x: target left COMMAND
QUEUE STATUS:
issue_SC:
current_SC:
0xc75f1000: target=3; lun=0; cmnd=(0x08 00 00 10 01 00
); residual=1024; buffers=1; phase |send_ident|; in other(COMMAND); next=0x00000000
disconnected_SC:

on bus: SCSISEQ (); SCSISIG (STATUS); INTSTAT (hi); SSTAT (SELDO PHASEMIS PHASECHG REQINIT ); SSTAT (PHASEMIS REQINIT ); SXFRCTL0 (CH1 ); SIGNAL (BSYI REQI ); SELID (88), SSTAT2 (SEMPTY ); SFCNT (0); SCSICNT (0), OFFCNT(0), SSTAT4 (); DMACNTRL0 (16BIT PIO READ ); DMASTAT (DFIFOEMP )
enabled interrupts (ENPHASEMIS ENBUSFREE ENREQINIT )
Kernel panic: aha152x panic
In interrupt handler - not syncing

This is not the expected behaviour. In fact, looking closer, the aha152x
driver seems to panic at the slightest excuse:

/* called from init/main.c */
void aha152x_setup(char *str, int *ints)
{
if (setup_count > 2)
panic("aha152x: you can only configure up to two controllers\n");

Alan - I note you're currently digging at the aha152x driver. Could you look
at the error handling while you're at it, or do you want me to do it?

---- ---- ----
David Woodhouse David.Woodhouse@mvhi.com Office: (+44) 1223 810302
Project Leader, Process Information Systems Mobile: (+44) 7976 658355
Axiom (Cambridge) Ltd., Swaffham Bulbeck, Cambridge, CB5 0NA, UK.
finger dwmw2@ferret.lmh.ox.ac.uk for PGP key.

-
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/