diff options
Diffstat (limited to 'drivers/gpu/drm/vmwgfx/vmwgfx_drv.c')
-rw-r--r-- | drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c index 9893328f8fdc..3bdc0adc656d 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | |||
@@ -941,6 +941,7 @@ static void vmw_postclose(struct drm_device *dev, | |||
941 | drm_master_put(&vmw_fp->locked_master); | 941 | drm_master_put(&vmw_fp->locked_master); |
942 | } | 942 | } |
943 | 943 | ||
944 | vmw_compat_shader_man_destroy(vmw_fp->shman); | ||
944 | ttm_object_file_release(&vmw_fp->tfile); | 945 | ttm_object_file_release(&vmw_fp->tfile); |
945 | kfree(vmw_fp); | 946 | kfree(vmw_fp); |
946 | } | 947 | } |
@@ -960,11 +961,17 @@ static int vmw_driver_open(struct drm_device *dev, struct drm_file *file_priv) | |||
960 | if (unlikely(vmw_fp->tfile == NULL)) | 961 | if (unlikely(vmw_fp->tfile == NULL)) |
961 | goto out_no_tfile; | 962 | goto out_no_tfile; |
962 | 963 | ||
964 | vmw_fp->shman = vmw_compat_shader_man_create(dev_priv); | ||
965 | if (IS_ERR(vmw_fp->shman)) | ||
966 | goto out_no_shman; | ||
967 | |||
963 | file_priv->driver_priv = vmw_fp; | 968 | file_priv->driver_priv = vmw_fp; |
964 | dev_priv->bdev.dev_mapping = dev->dev_mapping; | 969 | dev_priv->bdev.dev_mapping = dev->dev_mapping; |
965 | 970 | ||
966 | return 0; | 971 | return 0; |
967 | 972 | ||
973 | out_no_shman: | ||
974 | ttm_object_file_release(&vmw_fp->tfile); | ||
968 | out_no_tfile: | 975 | out_no_tfile: |
969 | kfree(vmw_fp); | 976 | kfree(vmw_fp); |
970 | return ret; | 977 | return ret; |