amd64-agp: fix crash at second module load
The module forgot to sometimes unregister some resources. This fixes Bug #22882. [Patch updated to 2.6.38-rc3 by Randy Dunlap.] Tested-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Florian Mickler <florian@mickler.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
45e4039c3a
commit
49495d44df
1 changed files with 7 additions and 2 deletions
|
@ -773,18 +773,23 @@ int __init agp_amd64_init(void)
|
||||||
#else
|
#else
|
||||||
printk(KERN_INFO PFX "You can boot with agp=try_unsupported\n");
|
printk(KERN_INFO PFX "You can boot with agp=try_unsupported\n");
|
||||||
#endif
|
#endif
|
||||||
|
pci_unregister_driver(&agp_amd64_pci_driver);
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* First check that we have at least one AMD64 NB */
|
/* First check that we have at least one AMD64 NB */
|
||||||
if (!pci_dev_present(amd_nb_misc_ids))
|
if (!pci_dev_present(amd_nb_misc_ids)) {
|
||||||
|
pci_unregister_driver(&agp_amd64_pci_driver);
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
}
|
||||||
|
|
||||||
/* Look for any AGP bridge */
|
/* Look for any AGP bridge */
|
||||||
agp_amd64_pci_driver.id_table = agp_amd64_pci_promisc_table;
|
agp_amd64_pci_driver.id_table = agp_amd64_pci_promisc_table;
|
||||||
err = driver_attach(&agp_amd64_pci_driver.driver);
|
err = driver_attach(&agp_amd64_pci_driver.driver);
|
||||||
if (err == 0 && agp_bridges_found == 0)
|
if (err == 0 && agp_bridges_found == 0) {
|
||||||
|
pci_unregister_driver(&agp_amd64_pci_driver);
|
||||||
err = -ENODEV;
|
err = -ENODEV;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue