aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
diff options
context:
space:
mode:
authorJakob Bornecrantz <jakob@vmware.com>2010-01-30 03:38:08 +0000
committerDave Airlie <airlied@redhat.com>2010-02-01 11:29:59 +1000
commit5ffdb658f605cbc420944e7c7eeec9fbb8a73772 (patch)
tree9f091b311f1c434f506d4c34ce373346a77d895b /drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
parentc188660f6dbb0df9febe1b841a16c66c28353c15 (diff)
downloadkernel_samsung_smdk4412-5ffdb658f605cbc420944e7c7eeec9fbb8a73772.zip
kernel_samsung_smdk4412-5ffdb658f605cbc420944e7c7eeec9fbb8a73772.tar.gz
kernel_samsung_smdk4412-5ffdb658f605cbc420944e7c7eeec9fbb8a73772.tar.bz2
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.c10
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 686692d..eeba6d1 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,
if (ret)
goto try_dmabuf;
+ if (!surface->scanout)
+ goto err_not_scanout;
+
ret = vmw_kms_new_framebuffer_surface(dev_priv, surface, &vfb,
mode_cmd->width, mode_cmd->height);
@@ -740,6 +743,13 @@ try_dmabuf:
}
return &vfb->base;
+
+err_not_scanout:
+ DRM_ERROR("surface not marked as scanout\n");
+ /* vmw_user_surface_lookup takes one ref */
+ vmw_surface_unreference(&surface);
+
+ return NULL;
}
static int vmw_kms_fb_changed(struct drm_device *dev)