All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ide-cd: fix kernel crash on hppa regression
@ 2009-04-15 22:45 Helge Deller
  2009-04-16  6:37 ` Borislav Petkov
  2009-04-22  6:10 ` Borislav Petkov
  0 siblings, 2 replies; 15+ messages in thread
From: Helge Deller @ 2009-04-15 22:45 UTC (permalink / raw)
  To: Linus, Borislav Petkov, Bartlomiej Zolnierkiewicz, Kyle McMartin,
	linux-parisc

With 2.6.30-rc2 I face a kernel crash on the 32bit hppa architecture 
due to ide-cd when udev creates the device nodes at startup:

Kernel Fault: Code=26 regs=8ed34c40 (Addr=00000024)
IASQ: 00000000 00000000 IAOQ: 1034b5ac 1034b5b0
 IIR: 4ab30048    ISR: 00000000  IOR: 00000024
 CPU:        0   CR30: 8ed34000 CR31: ffff55ff
 ORIG_R28: 00000000
 IAOQ[0]: ide_complete_rq+0x2c/0x70
 IAOQ[1]: ide_complete_rq+0x30/0x70
 RP(r2): cdrom_newpc_intr+0x178/0x46c
Backtrace:
 [<1035c608>] cdrom_newpc_intr+0x178/0x46c
 [<1034c494>] ide_intr+0x1b0/0x214
 [<1016d284>] handle_IRQ_event+0x70/0x150
 [<1016d4b0>] __do_IRQ+0x14c/0x1cc
 [<102f7864>] superio_interrupt+0x88/0xbc
 [<1016d284>] handle_IRQ_event+0x70/0x150
 [<1016d4b0>] __do_IRQ+0x14c/0x1cc
 [<10112efc>] do_cpu_irq_mask+0x9c/0xd0
 [<10116068>] intr_return+0x0/0x4

This crash seems to happen due to an uninitialized variable "rc".
The compiler even warns about that:
  CC      drivers/ide/ide-cd.o                                                         
/mnt/sda4/home/cvs/parisc/git-kernel/linus-linux-2.6/drivers/ide/ide-cd.c: In function `cdrom_newpc_intr':
/mnt/sda4/home/cvs/parisc/git-kernel/linus-linux-2.6/drivers/ide/ide-cd.c:612: warning: `rc' might be used uninitialized in this function

After applying the trivial patch below, which just initializes 
the variable to zero, the kernel doesn't crash any longer:

Starting the hotplug events dispatcher: udevd.
Synthesizing the initial hotplug events...
hda: command error: status=0x51 { DriveReady SeekComplete Error }
hda: command error: error=0x54 <3>{ AbortedCommand LastFailedSense=0x05 }
ide: failed opcode was: unknown
done.

Signed-off-by: Helge Deller <deller@gmx.de>


diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
index 3aec19d..3d4e099 100644
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -609,7 +609,7 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive)
 	struct request *rq = hwif->rq;
 	ide_expiry_t *expiry = NULL;
 	int dma_error = 0, dma, thislen, uptodate = 0;
-	int write = (rq_data_dir(rq) == WRITE) ? 1 : 0, rc, nsectors;
+	int write = (rq_data_dir(rq) == WRITE) ? 1 : 0, rc = 0, nsectors;
 	int sense = blk_sense_request(rq);
 	unsigned int timeout;
 	u16 len;

^ permalink raw reply related	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2009-04-26  9:52 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-04-15 22:45 [PATCH] ide-cd: fix kernel crash on hppa regression Helge Deller
2009-04-16  6:37 ` Borislav Petkov
2009-04-16 20:26   ` Helge Deller
2009-04-17  6:53     ` Borislav Petkov
2009-04-17  7:15       ` Helge Deller
2009-04-22  6:12         ` Borislav Petkov
2009-04-22 21:13           ` Helge Deller
2009-04-23 21:34             ` Bartlomiej Zolnierkiewicz
2009-04-25 11:19               ` Helge Deller
2009-04-25 14:32                 ` Bartlomiej Zolnierkiewicz
2009-04-25 22:51                   ` Helge Deller
2009-04-26  6:33                     ` Borislav Petkov
2009-04-26  9:52                       ` Bartlomiej Zolnierkiewicz
2009-04-22  6:10 ` Borislav Petkov
2009-04-22 18:27   ` Bartlomiej Zolnierkiewicz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.