[PATCH] m68k: completely initialize hw_regs_t in ide_setup_ports
authorRoman Zippel <zippel@linux-m68k.org>
Fri, 23 Jun 2006 09:04:51 +0000 (02:04 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 23 Jun 2006 14:43:00 +0000 (07:43 -0700)
ide_setup_ports does not completely initialize the hw_regs_t structure which
can cause random failures, as the structure is often on the stack.  None of
the callers expect a partially initialized structure, i.e.  none of them do
any setup of their own before calling ide_setup_ports().

Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/ide/ide.c
drivers/ide/legacy/q40ide.c

index 3fdab563fec25f405a7903b8c13002206d47d45e..f5a60912c27187932d6c770cc274292dd2b9afa8 100644 (file)
@@ -726,6 +726,7 @@ void ide_setup_ports (      hw_regs_t *hw,
 {
        int i;
 
+       memset(hw, 0, sizeof(hw_regs_t));
        for (i = 0; i < IDE_NR_PORTS; i++) {
                if (offsets[i] == -1) {
                        switch(i) {
index 2a78b792f7fb11ba3a621b397f0058a328c04021..434a94faa3b7202792ad5c05aa60144c3c59dbf3 100644 (file)
@@ -80,6 +80,7 @@ void q40_ide_setup_ports ( hw_regs_t *hw,
 {
        int i;
 
+       memset(hw, 0, sizeof(hw_regs_t));
        for (i = 0; i < IDE_NR_PORTS; i++) {
                /* BIG FAT WARNING: 
                   assumption: only DATA port is ever used in 16 bit mode */