diff options
author | rnoland <rnoland@FreeBSD.org> | 2008-08-30 00:53:30 +0000 |
---|---|---|
committer | rnoland <rnoland@FreeBSD.org> | 2008-08-30 00:53:30 +0000 |
commit | c2591857ab2b84b4aa872a6e3b15472f3f69702c (patch) | |
tree | b770fb8e52056d26366c9148dd9fcda6513a97a8 /sys/dev/drm/drm_drv.c | |
parent | 32bdd34ddacc3107067fa3f7a4be40dfc7ec382e (diff) | |
download | FreeBSD-src-c2591857ab2b84b4aa872a6e3b15472f3f69702c.zip FreeBSD-src-c2591857ab2b84b4aa872a6e3b15472f3f69702c.tar.gz |
We need to lock around driver unload now.
The i915 driver installs it's register map at load time now. We can't
remove the map during unload without holding the lock.
Approved by: kib
Diffstat (limited to 'sys/dev/drm/drm_drv.c')
-rw-r--r-- | sys/dev/drm/drm_drv.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/drm/drm_drv.c b/sys/dev/drm/drm_drv.c index dd818bb..7ed2393 100644 --- a/sys/dev/drm/drm_drv.c +++ b/sys/dev/drm/drm_drv.c @@ -660,8 +660,11 @@ static void drm_unload(struct drm_device *dev) dev->agp = NULL; } - if (dev->driver.unload != NULL) + if (dev->driver.unload != NULL) { + DRM_LOCK(); dev->driver.unload(dev); + DRM_UNLOCK(); + } delete_unrhdr(dev->drw_unrhdr); |