diff options
author | Eric Anholt <eric@anholt.net> | 2009-01-28 06:19:41 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-28 16:50:14 +0100 |
commit | 30b23634084d95781f7611c0713cb551a0c0a152 (patch) | |
tree | fd4185cb0f0b46ca0069251144619b6e9e2031b0 /include/drm | |
parent | smackfs load append mode fix (diff) | |
download | linux-30b23634084d95781f7611c0713cb551a0c0a152.tar.xz linux-30b23634084d95781f7611c0713cb551a0c0a152.zip |
drm: Rip out the racy, unused vblank signal code.
Schedule a vblank signal, kill the process, and we'll go walking over freed
memory. Given that no open-source userland exists using this, nor have I
ever heard of a consumer, just let this code die.
Signed-off-by: Eric Anholt <eric@anholt.net>
Requested-by: Linus Torvalds <torvalds@linux-foundation.org>
Acked-by: Dave Airlie <airlied@linux.ie>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/drm')
-rw-r--r-- | include/drm/drm.h | 2 | ||||
-rw-r--r-- | include/drm/drmP.h | 9 |
2 files changed, 1 insertions, 10 deletions
diff --git a/include/drm/drm.h b/include/drm/drm.h index 32e5096554e9..8e77357334ad 100644 --- a/include/drm/drm.h +++ b/include/drm/drm.h @@ -458,7 +458,7 @@ enum drm_vblank_seq_type { _DRM_VBLANK_FLIP = 0x8000000, /**< Scheduled buffer swap should flip */ _DRM_VBLANK_NEXTONMISS = 0x10000000, /**< If missed, wait for next vblank */ _DRM_VBLANK_SECONDARY = 0x20000000, /**< Secondary display controller */ - _DRM_VBLANK_SIGNAL = 0x40000000 /**< Send signal instead of blocking */ + _DRM_VBLANK_SIGNAL = 0x40000000 /**< Send signal instead of blocking, unsupported */ }; #define _DRM_VBLANK_TYPES_MASK (_DRM_VBLANK_ABSOLUTE | _DRM_VBLANK_RELATIVE) diff --git a/include/drm/drmP.h b/include/drm/drmP.h index afb7858c068d..8190b9bcc2d9 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -545,13 +545,6 @@ struct drm_ctx_list { struct drm_file *tag; /**< associated fd private data */ }; -struct drm_vbl_sig { - struct list_head head; - unsigned int sequence; - struct siginfo info; - struct task_struct *task; -}; - /* location of GART table */ #define DRM_ATI_GART_MAIN 1 #define DRM_ATI_GART_FB 2 @@ -903,8 +896,6 @@ struct drm_device { wait_queue_head_t *vbl_queue; /**< VBLANK wait queue */ atomic_t *_vblank_count; /**< number of VBLANK interrupts (driver must alloc the right number of counters) */ spinlock_t vbl_lock; - struct list_head *vbl_sigs; /**< signal list to send on VBLANK */ - atomic_t vbl_signal_pending; /* number of signals pending on all crtcs*/ atomic_t *vblank_refcount; /* number of users of vblank interruptsper crtc */ u32 *last_vblank; /* protected by dev->vbl_lock, used */ /* for wraparound handling */ |