diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2009-05-26 02:35:52 +0200 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-06-11 08:15:29 +0200 |
commit | 2ff2e8a3e1898e692b604424c384f134009dea80 (patch) | |
tree | 7eab469b77ef1635ea144baaf3202dffc6bd8d51 /drivers/gpu | |
parent | drm: simplify kcalloc() call to kzalloc(). (diff) | |
download | linux-2ff2e8a3e1898e692b604424c384f134009dea80.tar.xz linux-2ff2e8a3e1898e692b604424c384f134009dea80.zip |
drm: don't associate _DRM_DRIVER maps with a master
A driver will use the _DRM_DRIVER map flag to indicate that it wants
to be responsible for removing the map itself, bypassing the DRM's
automagic cleanup code.
Since the multi-master changes this has been broken, resulting in some
drivers having their registers unmapped before it's finished with them.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/drm_bufs.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c index 0411d912d82a..80a257554b30 100644 --- a/drivers/gpu/drm/drm_bufs.c +++ b/drivers/gpu/drm/drm_bufs.c @@ -371,7 +371,8 @@ static int drm_addmap_core(struct drm_device * dev, resource_size_t offset, list->user_token = list->hash.key << PAGE_SHIFT; mutex_unlock(&dev->struct_mutex); - list->master = dev->primary->master; + if (!(map->flags & _DRM_DRIVER)) + list->master = dev->primary->master; *maplist = list; return 0; } |