diff options
author | Gareth Hughes <gareth@users.sourceforge.net> | 2000-07-01 01:50:00 +0000 |
---|---|---|
committer | Gareth Hughes <gareth@users.sourceforge.net> | 2000-07-01 01:50:00 +0000 |
commit | 62838b948cdddc0f007c200fbec195c1a008c731 (patch) | |
tree | 88fbef05715fc833f4cc6f700471cef01db25489 | |
parent | dc2701a9f6034a04319f71e43e7f928f818be6db (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.c | 7 | ||||
-rw-r--r-- | linux/r128_drv.c | 7 |
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, |