On Fri, Apr 10, 2009 at 07:42:47PM +0200, Borislav Petkov wrote: > Now, without having tested it since I don't have the hardware, would > something in the lines below be a sensible kludge for now? I guess we > should have similar error handling for the other MODE SENSE call sites > and propagate some error status from idetape_get_mode_sense_results() > upwards to idetape_setup()? I tested with 'tmp fix 2' [1] and 'dump drive caps and dbg rqs' [2] and the patch below applied and had another divide error. Attached the full dmesg. > Yeah, I know, the driver needs a lot of massaging in order even to > start looking ok... :) :-) Do you want me to do the full caps debug test [3] ? Another question; I'm still using 2.6.29-rc7 as test kernel, do you prefer to keep using that version or move to 2.6.30-rc1? [1] http://bugzilla.kernel.org/attachment.cgi?id=20822 [2] http://bugzilla.kernel.org/attachment.cgi?id=20873 [3] http://bugzilla.kernel.org/show_bug.cgi?id=12874#c20 -- Regards, Mark de Wever > __ > > diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c > index 70e7876..827485a 100644 > --- a/drivers/ide/ide-tape.c > +++ b/drivers/ide/ide-tape.c > @@ -2095,6 +2095,21 @@ static void idetape_get_mode_sense_results(ide_drive_t *drive) > put_unaligned(540, (u16 *)&tape->caps[14]); > put_unaligned(6*52, (u16 *)&tape->caps[16]); > return; > + > + } else if ((pc.buf[0] & 0x7f) == 0x70) { > + /* unit attention: power on reset or device reset/not ready to > + * ready transition */ > + if ((pc.buf[2] & 0xf) == 0x6 && > + (pc.buf[12] == 0x29 || pc.buf[12] == 0x28) && > + pc.buf[13] == 0x0) { > + tape->failed_pc = &pc; > + ide_retry_pc(drive, tape->disk); > + } > + else { > + printk(KERN_ERR "%s: error getting caps page\n", > + drive->name); > + return; > + } > } > caps = pc.buf + 4 + pc.buf[3]; -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html