summaryrefslogtreecommitdiff
path: root/linux-core/drm_drv.c
diff options
context:
space:
mode:
authorMichel Daenzer <michel@daenzer.net>2002-09-21 23:18:54 +0000
committerMichel Daenzer <michel@daenzer.net>2002-09-21 23:18:54 +0000
commitcfa1a918b6d6b2d0fd9ae0f58f5b86a15c443dcb (patch)
tree0b0c8cf97cc6323ed332c3595ce6741cae14d704 /linux-core/drm_drv.c
parentc4318a5c642d15ad3847a0b7a3185abf0c1ca219 (diff)
make sure we never oops because the hardware lock pointer in the sigdata
structure is out of date
Diffstat (limited to 'linux-core/drm_drv.c')
-rw-r--r--linux-core/drm_drv.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/linux-core/drm_drv.c b/linux-core/drm_drv.c
index 81bd7894..7e2cfd8c 100644
--- a/linux-core/drm_drv.c
+++ b/linux-core/drm_drv.c
@@ -306,7 +306,7 @@ static int DRM(setup)( drm_device_t *dev )
dev->map_count = 0;
dev->vmalist = NULL;
- dev->lock.hw_lock = NULL;
+ dev->sigdata.lock = dev->lock.hw_lock = NULL;
init_waitqueue_head( &dev->lock.lock_queue );
dev->queue_count = 0;
dev->queue_reserved = 0;
@@ -491,7 +491,7 @@ static int DRM(takedown)( drm_device_t *dev )
DRM(dma_takedown)( dev );
#endif
if ( dev->lock.hw_lock ) {
- dev->lock.hw_lock = NULL; /* SHM removed */
+ dev->sigdata.lock = dev->lock.hw_lock = NULL; /* SHM removed */
dev->lock.pid = 0;
wake_up_interruptible( &dev->lock.lock_queue );
}