[PATCH] RocketPoint 1520 [hpt366] fails clock stabilization
authorLoren M. Lang <[email protected]>
Fri, 3 Feb 2006 11:04:59 +0000 (03:04 -0800)
committerLinus Torvalds <[email protected]>
Fri, 3 Feb 2006 16:32:12 +0000 (08:32 -0800)
I just purchased a HighPoint Rocket 1520 SATA controller.  There seems to
be no libata driver (yet), but there is an ide driver, hpt366.  When the
driver gets loaded, it causes a kernel NULL pointer dereference in
pci_bus_clock_list.  It seems to be because the driver is waiting for clock
stabilization in init_hpt37x() which never comes.  The driver just
continues on with the pci drvdata set to NULL, instead of a valid clock
entry.  The following patch prevents the NULL dereference from happening,
but instead exit with an error.

Acked-by: Bartlomiej Zolnierkiewicz <[email protected]>
Cc: Alan Cox <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
drivers/ide/pci/hpt366.c

index 7b589d948bf98bce6405196a55444787d4eff920..940bdd4c5784bf80092bac207c75df2352f5c32b 100644 (file)
@@ -1288,6 +1288,10 @@ static void __devinit hpt37x_clocking(ide_hwif_t *hwif)
                                goto init_hpt37X_done;
                        }
                }
+               if (!pci_get_drvdata(dev)) {
+                       printk("No Clock Stabilization!!!\n");
+                       return;
+               }
 pll_recal:
                if (adjust & 1)
                        pll -= (adjust >> 1);