[PATCH] Fix cdrom being confused on using kdump
authorRachita Kothiyal <rachita@in.ibm.com>
Fri, 23 Jun 2006 09:02:56 +0000 (02:02 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 23 Jun 2006 14:42:44 +0000 (07:42 -0700)
I have seen the cdrom drive appearing confused on using kdump on certain
x86_64 systems.  During the booting up of the second kernel, the following
message would keep flooding the console, and the booting would not proceed
any further.

hda: cdrom_pc_intr: The drive appears confused (ireason = 0x01)

In this patch, whenever we are hitting a confused state in the interrupt
handler with the DRQ set, we end the request and return ide_stopped.  Using
this I dont see the status error.

Signed-off-by: Rachita Kothiyal <rachita@in.ibm.com>
Acked-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/ide/ide-cd.c

index b4a41d6d07147b2239d8a35cae2bb696298a5618..abb83d95df573d1043fcda96b2ad11f5b36ff8bf 100644 (file)
@@ -1451,9 +1451,12 @@ static ide_startstop_t cdrom_pc_intr (ide_drive_t *drive)
        } else {
 confused:
                printk (KERN_ERR "%s: cdrom_pc_intr: The drive "
-                       "appears confused (ireason = 0x%02x)\n",
+                       "appears confused (ireason = 0x%02x). "
+                       "Trying to recover by ending request.\n",
                        drive->name, ireason);
                rq->flags |= REQ_FAILED;
+               cdrom_end_request(drive, 0);
+               return ide_stopped;
        }
 
        /* Now we wait for another interrupt. */