From: "Loren M. Lang" 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. (akpm: I find this patch strange. Why does the nullness of pci_get_drvdata() indicate that clock stabilisation failed?) Cc: Bartlomiej Zolnierkiewicz Signed-off-by: Andrew Morton --- drivers/ide/pci/hpt366.c | 4 ++++ 1 files changed, 4 insertions(+) diff -puN drivers/ide/pci/hpt366.c~rocketpoint-1520-fails-clock-stabilization drivers/ide/pci/hpt366.c --- 25/drivers/ide/pci/hpt366.c~rocketpoint-1520-fails-clock-stabilization Tue Oct 11 14:02:42 2005 +++ 25-akpm/drivers/ide/pci/hpt366.c Tue Oct 11 14:04:02 2005 @@ -1288,6 +1288,10 @@ static void __devinit hpt37x_clocking(id goto init_hpt37X_done; } } + if (!pci_get_drvdata(dev)) { + printk("No Clock Stabilization!!!\n"); + return -1; + } pll_recal: if (adjust & 1) pll -= (adjust >> 1); _