If you try to load a DRM module when agpgart is not present, modprobe says "Cannot allocate memory", which is rather misleading. Make it return -EINVAL instead. drivers/char/drm/drm_drv.h | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/char/drm/drm_drv.h~drm-module_init-retval-fix drivers/char/drm/drm_drv.h --- 25/drivers/char/drm/drm_drv.h~drm-module_init-retval-fix 2003-10-18 16:48:59.000000000 -0700 +++ 25-akpm/drivers/char/drm/drm_drv.h 2003-10-18 16:49:59.000000000 -0700 @@ -638,7 +638,7 @@ static int __init drm_init( void ) DRM_ERROR( "Cannot initialize the agpgart module.\n" ); DRM(stub_unregister)(DRM(minor)[i]); DRM(takedown)( dev ); - return -ENOMEM; + return -EINVAL; } #endif #if __REALLY_HAVE_MTRR _