From 44aa4d6297874022a4f5a49ea24f2d052584d3dc Mon Sep 17 00:00:00 2001 From: David Dawes Date: Sun, 27 Jan 2002 20:05:42 +0000 Subject: First pass merge of XFree86 4.2.0 import. --- linux-core/drm_context.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'linux-core/drm_context.c') diff --git a/linux-core/drm_context.c b/linux-core/drm_context.c index 33d6112e..e155946d 100644 --- a/linux-core/drm_context.c +++ b/linux-core/drm_context.c @@ -27,6 +27,10 @@ * Authors: * Rickard E. (Rik) Faith * Gareth Hughes + * ChangeLog: + * 2001-11-16 Torsten Duwe + * added context constructor/destructor hooks, + * needed by SiS driver's memory management. */ #define __NO_VERSION__ @@ -316,6 +320,10 @@ int DRM(addctx)( struct inode *inode, struct file *filp, /* Should this return -EBUSY instead? */ return -ENOMEM; } +#ifdef DRIVER_CTX_CTOR + if ( ctx.handle != DRM_KERNEL_CONTEXT ) + DRIVER_CTX_CTOR(ctx.handle); /* XXX: also pass dev ? */ +#endif if ( copy_to_user( (drm_ctx_t *)arg, &ctx, sizeof(ctx) ) ) return -EFAULT; @@ -390,6 +398,9 @@ int DRM(rmctx)( struct inode *inode, struct file *filp, priv->remove_auth_on_close = 1; } if ( ctx.handle != DRM_KERNEL_CONTEXT ) { +#ifdef DRIVER_CTX_DTOR + DRIVER_CTX_DTOR(ctx.handle); /* XXX: also pass dev ? */ +#endif DRM(ctxbitmap_free)( dev, ctx.handle ); } -- cgit v1.2.3