diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2010-01-07 14:21:17 +1100 |
---|---|---|
committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2010-01-07 14:21:17 +1100 |
commit | d663dd7aa364a079657446d413733ff3ea411234 (patch) | |
tree | c99e834553f5f9a16470f4134b2f9e7c2af2caa7 /drivers | |
parent | f77cd57a0372a5f815010e69af3449b2bde7b7f5 (diff) | |
parent | 6a7a25116787189f238a1c9a99ec473a3b6d565c (diff) |
Merge remote branch 'agp/agp-next'
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/char/agp/amd64-agp.c | 2 | ||||
-rw-r--r-- | drivers/char/agp/backend.c | 13 |
2 files changed, 11 insertions, 4 deletions
diff --git a/drivers/char/agp/amd64-agp.c b/drivers/char/agp/amd64-agp.c index 5aa7a586a7ff..05cdb1fb956e 100644 --- a/drivers/char/agp/amd64-agp.c +++ b/drivers/char/agp/amd64-agp.c @@ -769,12 +769,14 @@ int __init agp_amd64_init(void) return err; } +#ifndef CONFIG_GART_IOMMU static void __exit agp_amd64_cleanup(void) { if (aperture_resource) release_resource(aperture_resource); pci_unregister_driver(&agp_amd64_pci_driver); } +#endif module_init(agp_amd64_init); module_exit(agp_amd64_cleanup); diff --git a/drivers/char/agp/backend.c b/drivers/char/agp/backend.c index a56ca080e108..c3ab46da51a3 100644 --- a/drivers/char/agp/backend.c +++ b/drivers/char/agp/backend.c @@ -285,18 +285,22 @@ int agp_add_bridge(struct agp_bridge_data *bridge) { int error; - if (agp_off) - return -ENODEV; + if (agp_off) { + error = -ENODEV; + goto err_put_bridge; + } if (!bridge->dev) { printk (KERN_DEBUG PFX "Erk, registering with no pci_dev!\n"); - return -EINVAL; + error = -EINVAL; + goto err_put_bridge; } /* Grab reference on the chipset driver. */ if (!try_module_get(bridge->driver->owner)) { dev_info(&bridge->dev->dev, "can't lock chipset driver\n"); - return -EINVAL; + error = -EINVAL; + goto err_put_bridge; } error = agp_backend_initialize(bridge); @@ -326,6 +330,7 @@ frontend_err: agp_backend_cleanup(bridge); err_out: module_put(bridge->driver->owner); +err_put_bridge: agp_put_bridge(bridge); return error; } |