Linux: IDE CD problem with kernel 2.4.21pre4 to 2.6.7

Linux: IDE CD problem with kernel 2.4.21pre4 to 2.6.7

I had Mandrake Linux 9.1 running fineon a Dell Optiplex PIII-550 Mhz. The system had a Mitsumi CDR-2801TEon hdc, running with SCSI over IDE emulation.

When the time came to upgrade toMandrake Linux 10.0 Final, I booted up CD1 and it loaded fine, untilthe stage where it tries to access the CD and mount it. At thispoint, the kernel halted with the following error:

Kernel BUG at drivers/ide/ide-ops.c:1005! ....<0> Kernel panic: Fatal exception in interuptIn interupt handler - not syncing" 

I did some investigation on the web, and found that several otherpeople on various forums and mailing lists complaining about the sameexact thing.

None of them had anyone reply with a solution.

Upon further investigation, I found that this is not Mandrakespecific, nor is it 2.6.x specific. It was introduced along withchanges in IDE in 2.4.21pre4.

Here is what Alan Cox added these:

Linux 2.4.21pre4-ac2o Turn on use of ide_execute_command everywhere (Ross Biro, me)o First cut at settings locking for IDE  (me)Linux 2.4.21pre4-ac1o Finish the ide_execute_command code  (me)o Switch ide-cd to ide_execute_command   (me)

The offending code is in drivers/ide/ide-iops.c:

void ide_execute_command(ide_drive_t *drive, task_ioreg_t cmd, ide_handler_t *handler, unsigned timeout, ide_expiry_t *expiry){        unsigned long flags;        ide_hwgroup_t *hwgroup = HWGROUP(drive);        ide_hwif_t *hwif = HWIF(drive);        spin_lock_irqsave(&ide_lock, flags);        if(hwgroup->handler)                BUG();        hwgroup->handler        = handler;        hwgroup->expiry         = expiry;        hwgroup->timer.expires  = jiffies + timeout;        add_timer(&hwgroup->timer);        hwif->OUTBSYNC(drive, cmd, IDE_COMMAND_REG);        /* Drive takes 400nS to respond, we must avoid the IRQ being           serviced before that.           FIXME: we could skip this delay with care on non shared           devices        */        ndelay(400);        spin_unlock_irqrestore(&ide_lock, flags);}

Note that different kernel versions will report a different line number, but it is the same function.

No solution is feasible so far, short of swapping the drive. I ended up doing just that, after I sent an email to Jens Axboe, the maintainer of the IDE CD-ROMdrivers in the kernel on 2.6.x, but did not get an answer for severalweeks.

Like others have done, I solved the problem byreplacing the Mitsumi CD-R with a Ricoh CD-RW MP7040A . Worked thefirst time without a problem. I could proceed and install Mandrake10.0 normally. No other hardware modifications or BIOS or cabling atall.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote>
  • Lines and paragraphs break automatically.

More information about formatting options