Latest working kernel version: Earliest failing kernel version: Distribution: ubuntu hardy 8.04 Hardware Environment: ASUS P5LD2-VM = ICH7 + i945G + 2 GB RAM + Pentium D Software Environment: Problem Description: If drm and agp modules was compliled in kernel, kernel optio agp=off will couse crash. Steps to reproduce: 1. compile a kernel with agp_intel and drm_i915 2. reboot and set kernel option agp=off
Created attachment 15352 [details] oops image
This commit make this issue: commit 2716a02f607c964ccaa6fa7266abd3acd73d9033 Author: Dave Airlie <airlied@linux.ie> Date: Thu Nov 22 18:23:13 2007 +1000 drm: call driver load function after initialising AGP needed to intel chipset flushing Signed-off-by: Dave Airlie <airlied@linux.ie> diff --git a/drivers/char/drm/drm_stub.c b/drivers/char/drm/drm_stub.c index 2ed7a5c..def072d 100644 --- a/drivers/char/drm/drm_stub.c +++ b/drivers/char/drm/drm_stub.c @@ -98,10 +98,6 @@ static int drm_fill_in_dev(struct drm_device * dev, struct pc dev->driver = driver; - if (dev->driver->load) - if ((retcode = dev->driver->load(dev, ent->driver_data))) - goto error_out_unreg; - if (drm_core_has_AGP(dev)) { if (drm_device_is_agp(dev)) dev->agp = drm_agp_init(dev); @@ -120,6 +116,10 @@ static int drm_fill_in_dev(struct drm_device * dev, struct } } + if (dev->driver->load) + if ((retcode = dev->driver->load(dev, ent->driver_data))) + goto error_out_unreg; + retcode = drm_ctxbitmap_init(dev); if (retcode) { DRM_ERROR("Cannot allocate memory for context bitmap.\n");
http://cgit.freedesktop.org/mesa/drm/diff/?id=b0817a42e789a83454e6acba0578116829e2bf51 should fix this I'll line it up for upstream.
Mainline commit 144a75fa1faa4a81530bded2e59872ef80d496b6 (without comment, though).