summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGareth Hughes <gareth@users.sourceforge.net>2000-07-01 01:50:00 +0000
committerGareth Hughes <gareth@users.sourceforge.net>2000-07-01 01:50:00 +0000
commit62838b948cdddc0f007c200fbec195c1a008c731 (patch)
tree88fbef05715fc833f4cc6f700471cef01db25489
parentdc2701a9f6034a04319f71e43e7f928f818be6db (diff)
Fix for agpgart module detection. If the kernel module has been configured
to use AGP, and the module is not present, fail gracefully instead of doing evil things.
-rw-r--r--linux-core/r128_drv.c7
-rw-r--r--linux/r128_drv.c7
2 files changed, 14 insertions, 0 deletions
diff --git a/linux-core/r128_drv.c b/linux-core/r128_drv.c
index 8b669888..4c065551 100644
--- a/linux-core/r128_drv.c
+++ b/linux-core/r128_drv.c
@@ -369,6 +369,13 @@ int r128_init(void)
#ifdef DRM_AGP
dev->agp = drm_agp_init();
+ if (dev->agp == NULL) {
+ DRM_ERROR("Cannot initialize agpgart module.\n");
+ drm_proc_cleanup();
+ misc_deregister(&r128_misc);
+ r128_takedown(dev);
+ return -ENOMEM;
+ }
#ifdef CONFIG_MTRR
dev->agp->agp_mtrr = mtrr_add(dev->agp->agp_info.aper_base,
diff --git a/linux/r128_drv.c b/linux/r128_drv.c
index 8b669888..4c065551 100644
--- a/linux/r128_drv.c
+++ b/linux/r128_drv.c
@@ -369,6 +369,13 @@ int r128_init(void)
#ifdef DRM_AGP
dev->agp = drm_agp_init();
+ if (dev->agp == NULL) {
+ DRM_ERROR("Cannot initialize agpgart module.\n");
+ drm_proc_cleanup();
+ misc_deregister(&r128_misc);
+ r128_takedown(dev);
+ return -ENOMEM;
+ }
#ifdef CONFIG_MTRR
dev->agp->agp_mtrr = mtrr_add(dev->agp->agp_info.aper_base,