diff options
Diffstat (limited to 'linux-core')
-rw-r--r-- | linux-core/drmP.h | 4 | ||||
-rw-r--r-- | linux-core/drm_drv.c | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/linux-core/drmP.h b/linux-core/drmP.h index 1be3375c..a7a0e32b 100644 --- a/linux-core/drmP.h +++ b/linux-core/drmP.h @@ -517,7 +517,11 @@ struct drm_driver_fn { int (*postcleanup)(struct drm_device *); int (*presetup)(struct drm_device *); int (*postsetup)(struct drm_device *); + + /* these are opposites at the moment */ int (*open_helper)(struct drm_device *, drm_file_t *); + void (*free_filp_private)(struct drm_device *, drm_file_t *); + void (*release)(struct drm_device *, struct file *filp); void (*dma_ready)(struct drm_device *); int (*dma_quiescent)(struct drm_device *); diff --git a/linux-core/drm_drv.c b/linux-core/drm_drv.c index 7a165d5c..8b07a298 100644 --- a/linux-core/drm_drv.c +++ b/linux-core/drm_drv.c @@ -941,6 +941,8 @@ int DRM(release)( struct inode *inode, struct file *filp ) } up( &dev->struct_sem ); + if (dev->fn_tbl.free_filp_private) + dev->fn_tbl.free_filp_private( dev, priv ); DRM(free)( priv, sizeof(*priv), DRM_MEM_FILES ); /* ======================================================== |