diff options
Diffstat (limited to 'src/gallium/winsys/svga/drm/vmw_screen_ioctl.c')
-rw-r--r-- | src/gallium/winsys/svga/drm/vmw_screen_ioctl.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c b/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c index 9696f884e4f..bb3a1adedc1 100644 --- a/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c +++ b/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c @@ -64,7 +64,6 @@ struct vmw_region uint32_t handle; uint64_t map_handle; void *data; - uint32_t map_count; int drm_fd; uint32_t size; }; @@ -637,7 +636,6 @@ vmw_ioctl_region_create(struct vmw_winsys_screen *vws, uint32_t size) region->data = NULL; region->handle = rep->handle; region->map_handle = rep->map_handle; - region->map_count = 0; region->size = size; region->drm_fd = vws->ioctl.drm_fd; @@ -659,10 +657,7 @@ vmw_ioctl_region_destroy(struct vmw_region *region) vmw_printf("%s: gmrId = %u, offset = %u\n", __FUNCTION__, region->ptr.gmrId, region->ptr.offset); - if (region->data) { - os_munmap(region->data, region->size); - region->data = NULL; - } + assert(region->data == NULL); memset(&arg, 0, sizeof(arg)); arg.handle = region->handle; @@ -701,8 +696,6 @@ vmw_ioctl_region_map(struct vmw_region *region) region->data = map; } - ++region->map_count; - return region->data; } @@ -711,7 +704,9 @@ vmw_ioctl_region_unmap(struct vmw_region *region) { vmw_printf("%s: gmrId = %u, offset = %u\n", __FUNCTION__, region->ptr.gmrId, region->ptr.offset); - --region->map_count; + + os_munmap(region->data, region->size); + region->data = NULL; } /** |