drm/vmwgfx: Fix surface framebuffer check for guest-backed surfaces
authorThomas Hellstrom <thellstrom@vmware.com>
Wed, 15 Jan 2014 07:51:36 +0000 (08:51 +0100)
committerThomas Hellstrom <thellstrom@vmware.com>
Fri, 17 Jan 2014 06:52:39 +0000 (07:52 +0100)
With guest-backed surfaces, surface->sizes == NULL, causing a kernel oops.
Use the base_size member instead.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c

index c597d893629057ef2030db0801b5ef8b30eac317..8a650413dea57c8e50212b41f8be00abba3ee8af 100644 (file)
@@ -672,9 +672,9 @@ static int vmw_kms_new_framebuffer_surface(struct vmw_private *dev_priv,
 
        if (unlikely(surface->mip_levels[0] != 1 ||
                     surface->num_sizes != 1 ||
-                    surface->sizes[0].width < mode_cmd->width ||
-                    surface->sizes[0].height < mode_cmd->height ||
-                    surface->sizes[0].depth != 1)) {
+                    surface->base_size.width < mode_cmd->width ||
+                    surface->base_size.height < mode_cmd->height ||
+                    surface->base_size.depth != 1)) {
                DRM_ERROR("Incompatible surface dimensions "
                          "for requested mode.\n");
                return -EINVAL;