Prevent IDE boot ops on NUMA system
authorAndi Kleen <andi@firstfloor.org>
Mon, 11 Feb 2008 00:35:20 +0000 (01:35 +0100)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Mon, 11 Feb 2008 17:20:50 +0000 (09:20 -0800)
Without this patch a Opteron test system here oopses at boot with
current git.

Calling to_pci_dev() on a NULL pointer gives a negative value so the
following NULL pointer check never triggers and then an illegal address
is referenced.  Check the unadjusted original device pointer for NULL
instead.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/ide.h

index 23fad89292dfba2c92da02a39079b771dba8e61b..a3b69c10d667c98c5631308456673374491aaec5 100644 (file)
@@ -1295,7 +1295,7 @@ static inline void ide_dump_identify(u8 *id)
 static inline int hwif_to_node(ide_hwif_t *hwif)
 {
        struct pci_dev *dev = to_pci_dev(hwif->dev);
 static inline int hwif_to_node(ide_hwif_t *hwif)
 {
        struct pci_dev *dev = to_pci_dev(hwif->dev);
-       return dev ? pcibus_to_node(dev->bus) : -1;
+       return hwif->dev ? pcibus_to_node(dev->bus) : -1;
 }
 
 static inline ide_drive_t *ide_get_paired_drive(ide_drive_t *drive)
 }
 
 static inline ide_drive_t *ide_get_paired_drive(ide_drive_t *drive)