diff options
author | Jakob Bornecrantz <jakob@vmware.com> | 2010-01-29 22:38:08 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-01-31 20:29:59 -0500 |
commit | 5ffdb658f605cbc420944e7c7eeec9fbb8a73772 (patch) | |
tree | 9f091b311f1c434f506d4c34ce373346a77d895b /drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | |
parent | c188660f6dbb0df9febe1b841a16c66c28353c15 (diff) |
drm/vmwgfx: Don't send bad flags to the host
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/vmwgfx/vmwgfx_kms.c')
-rw-r--r-- | drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c index 686692de209..eeba6d1d06e 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | |||
@@ -707,6 +707,9 @@ static struct drm_framebuffer *vmw_kms_fb_create(struct drm_device *dev, | |||
707 | if (ret) | 707 | if (ret) |
708 | goto try_dmabuf; | 708 | goto try_dmabuf; |
709 | 709 | ||
710 | if (!surface->scanout) | ||
711 | goto err_not_scanout; | ||
712 | |||
710 | ret = vmw_kms_new_framebuffer_surface(dev_priv, surface, &vfb, | 713 | ret = vmw_kms_new_framebuffer_surface(dev_priv, surface, &vfb, |
711 | mode_cmd->width, mode_cmd->height); | 714 | mode_cmd->width, mode_cmd->height); |
712 | 715 | ||
@@ -740,6 +743,13 @@ try_dmabuf: | |||
740 | } | 743 | } |
741 | 744 | ||
742 | return &vfb->base; | 745 | return &vfb->base; |
746 | |||
747 | err_not_scanout: | ||
748 | DRM_ERROR("surface not marked as scanout\n"); | ||
749 | /* vmw_user_surface_lookup takes one ref */ | ||
750 | vmw_surface_unreference(&surface); | ||
751 | |||
752 | return NULL; | ||
743 | } | 753 | } |
744 | 754 | ||
745 | static int vmw_kms_fb_changed(struct drm_device *dev) | 755 | static int vmw_kms_fb_changed(struct drm_device *dev) |