Summary: | [2.6.30 regression] oops in ide_complete_rq when booting with CDRW in the drive | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Malcolm Lashley <mlashley> |
Component: | [OLD] Core system | Assignee: | Gentoo Kernel Bug Wranglers and Kernel Maintainers <kernel> |
Status: | RESOLVED FIXED | ||
Severity: | normal | Keywords: | InVCS |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
URL: | http://bugzilla.kernel.org/show_bug.cgi?id=13399 | ||
Whiteboard: | linux-2.6.30-regression | ||
Package list: | Runtime testing required: | --- | |
Attachments: |
kernel bootlog with cdrw-disc present in drive - crash.
kernel bootlog with cdrw-disc absent in drive - *no* crash. assembly for kernel source in question - to give offsets for OOPS disassembly of ide-io.o (actually this gives the true offsets... it's late here) possible fix |
Description
Malcolm Lashley
2009-06-15 02:15:53 UTC
Created attachment 194726 [details]
kernel bootlog with cdrw-disc present in drive - crash.
Created attachment 194728 [details]
kernel bootlog with cdrw-disc absent in drive - *no* crash.
Created attachment 194730 [details]
assembly for kernel source in question - to give offsets for OOPS
Created attachment 194732 [details]
disassembly of ide-io.o (actually this gives the true offsets... it's late here)
(In reply to comment #0) > After upgrading *from* 2.6.29-r1 to 2.6.30-r1 - my desktop would reliably crash > on boot when detecting ide-cd drives. After some debugging I tracked this down > to a null pointer dereference of rq in ide_complete_rq - rq is zero when the > macro blk_noretry_request is invoked. (I added some printk()s as below at the > start of that function right after the variables are defined.) > > printk(KERN_ERR "MALC: in ide_complete_rq, drive: 0x%llx drive->hwif: > 0x%llx\n",drive,drive->hwif); > printk(KERN_ERR "MALC: in ide_complete_rq, rq: 0x%llx \n",rq); > > I further tracked this down to be reproducible if I had a CDRW in the drive at > boot - if I remove the cdrw - the system boots normally. > > The contrasting boot-logs captured using serial console are attached - as is > the output of > make drivers/ide/ide-io.s > and > objdump -d ide-io.o > ide-io.dsm > > I've limited knowledge of this area of the kernel - so could do with some help > in tracking down why we're trying to complete a null request. > > (I'm guessing this probably needs to go $upstream - as there were no genpatches > in this area at the time of writing...) > > If you need more info - let me know. > > Reproducible: Always > > Steps to Reproduce: > 1. Build 2.6.30-r1 on my system, boot (from hdd) with a CDRW-disc in /dev/hda > 2. Toss CDRW-disc accross the room, reboot with empty /dev/hda > > > Actual Results: > 1. Observe OOPS > 2. Bask in a fully-functioning system once more :) > > > Including emerge --info - but fairly sure it's of little consequence here ;-) > Hmm, could this http://forums.gentoo.org/viewtopic-t-772142.html be related with your bug? Dunno what to do else... Created attachment 195350 [details, diff]
possible fix
Please try this patch
Daniel, tested both the simple fix you attached - and the more complex fix (including quirks for the particular Sony DVD-ROM drive I have - found later on the kernel bug at http://bugzilla.kernel.org/show_bug.cgi?id=13399#c29 I can confirm either patch fixes the problem - and I am now able to insert/eject/mount/unmount CD/CDRW media in this drive successfully. Cheers, malc. Upstream patch http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=9c72ebef5aabf3532469d602a9d87beceea268b1 Released in gentoo-sources-2.6.30-r2 |