ChangeSet@1.1065.1.36 03-08-25 13:58:04-03:00 willy@ods.org all diffs [PATCH] Fix amd67x_pm.c crash with no chipsets / CONFIG_HOTPLUG amd76x_pm.c will crash if no chipsets are found and CONFIG_HOTPLUG is turned on. This patch makes it return with a failure instead. diff -Nru a/drivers/char/amd76x_pm.c b/drivers/char/amd76x_pm.c --- a/drivers/char/amd76x_pm.c Mon Aug 25 09:51:20 2003 +++ b/drivers/char/amd76x_pm.c Mon Aug 25 04:22:01 2003 @@ -577,16 +577,18 @@ int found; /* Find northbridge */ - found = pci_module_init(&amd_nb_driver); - if (found < 0) { + found = pci_register_driver(&amd_nb_driver); + if (found <= 0) { printk(KERN_ERR "amd76x_pm: Could not find northbridge\n"); + pci_unregister_driver(&amd_nb_driver); return 1; } /* Find southbridge */ - found = pci_module_init(&amd_sb_driver); - if (found < 0) { + found = pci_register_driver(&amd_sb_driver); + if (found <= 0) { printk(KERN_ERR "amd76x_pm: Could not find southbridge\n"); + pci_unregister_driver(&amd_sb_driver); pci_unregister_driver(&amd_nb_driver); return 1; } @@ -620,6 +622,8 @@ #ifndef AMD76X_NTH if (!amd76x_pm_cfg.curr_idle) { printk(KERN_ERR "amd76x_pm: Idle function not changed\n"); + pci_unregister_driver(&amd_nb_driver); + pci_unregister_driver(&amd_sb_driver); return 1; }