diff options
author | David Herrmann <dh.herrmann@gmail.com> | 2013-10-02 11:23:37 +0200 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2013-10-09 07:55:09 +0200 |
commit | 0dc8fe5985e01f238e7dc64ff1733cc0291811e8 (patch) | |
tree | 977b912c062fee10c10e39082546a5ecacd39792 /include/drm | |
parent | drm: move drm_lastclose() to drm_fops.c (diff) | |
download | linux-0dc8fe5985e01f238e7dc64ff1733cc0291811e8.tar.xz linux-0dc8fe5985e01f238e7dc64ff1733cc0291811e8.zip |
drm: introduce drm_dev_free() to fix error paths
The error paths in DRM bus drivers currently leak memory as they don't
correctly revert drm_dev_alloc(). Introduce drm_dev_free() to free DRM
devices which haven't been registered, yet.
We must be careful not to introduce any side-effects with cleanups done in
drm_dev_free(). drm_ht_remove(), drm_ctxbitmap_cleanup() and
drm_gem_destroy() are all fine in that regard.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'include/drm')
-rw-r--r-- | include/drm/drmP.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 1973f7966511..537833c9ab83 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -1642,6 +1642,7 @@ static __inline__ void drm_core_dropmap(struct drm_local_map *map) struct drm_device *drm_dev_alloc(struct drm_driver *driver, struct device *parent); +void drm_dev_free(struct drm_device *dev); int drm_dev_register(struct drm_device *dev, unsigned long flags); int drm_get_minor(struct drm_device *dev, struct drm_minor **minor, int type); /*@}*/ |