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
Submitted by Khalid on Sun, 2004/06/27 - 14:40I 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.
- Google Groups 1
- Google Groups 2
- Google Groups 3
- Mandrake Bug Database: Installation fails immediately with a kernel panic (drivers/ide/ide-iops.c)
- Mandrake Forums
- Linux Questions
- Red Hat Bugzilla
- Linux Today
- LKML report
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