Merge tag 'vmwgfx-fixes-3.14-2014-03-02' of git://people.freedesktop.org/~thomash/linux into drm-fixes

A couple of minor fixes.

Pull request of 2014-03-02

* tag 'vmwgfx-fixes-3.14-2014-03-02' of git://people.freedesktop.org/~thomash/linux:
drm/vmwgfx: avoid null pointer dereference at failure paths
drm/vmwgfx: Make sure backing mobs are cleared when allocated. Update driver date.
drm/vmwgfx: Remove some unused surface formats

+22 -25
+1 -6
drivers/gpu/drm/vmwgfx/svga3d_reg.h
··· 261 261 /* Planar video formats. */ 262 262 SVGA3D_YV12 = 121, 263 263 264 - /* Shader constant formats. */ 265 - SVGA3D_SURFACE_SHADERCONST_FLOAT = 122, 266 - SVGA3D_SURFACE_SHADERCONST_INT = 123, 267 - SVGA3D_SURFACE_SHADERCONST_BOOL = 124, 268 - 269 - SVGA3D_FORMAT_MAX = 125, 264 + SVGA3D_FORMAT_MAX = 122, 270 265 } SVGA3dSurfaceFormat; 271 266 272 267 typedef uint32 SVGA3dColor; /* a, r, g, b */
+1 -1
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
··· 40 40 #include <drm/ttm/ttm_module.h> 41 41 #include "vmwgfx_fence.h" 42 42 43 - #define VMWGFX_DRIVER_DATE "20121114" 43 + #define VMWGFX_DRIVER_DATE "20140228" 44 44 #define VMWGFX_DRIVER_MAJOR 2 45 45 #define VMWGFX_DRIVER_MINOR 5 46 46 #define VMWGFX_DRIVER_PATCHLEVEL 0
+19 -16
drivers/gpu/drm/vmwgfx/vmwgfx_mob.c
··· 188 188 189 189 bo = otable->page_table->pt_bo; 190 190 cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); 191 - if (unlikely(cmd == NULL)) 192 - DRM_ERROR("Failed reserving FIFO space for OTable setup.\n"); 193 - 194 - memset(cmd, 0, sizeof(*cmd)); 195 - cmd->header.id = SVGA_3D_CMD_SET_OTABLE_BASE; 196 - cmd->header.size = sizeof(cmd->body); 197 - cmd->body.type = type; 198 - cmd->body.baseAddress = 0; 199 - cmd->body.sizeInBytes = 0; 200 - cmd->body.validSizeInBytes = 0; 201 - cmd->body.ptDepth = SVGA3D_MOBFMT_INVALID; 202 - vmw_fifo_commit(dev_priv, sizeof(*cmd)); 191 + if (unlikely(cmd == NULL)) { 192 + DRM_ERROR("Failed reserving FIFO space for OTable " 193 + "takedown.\n"); 194 + } else { 195 + memset(cmd, 0, sizeof(*cmd)); 196 + cmd->header.id = SVGA_3D_CMD_SET_OTABLE_BASE; 197 + cmd->header.size = sizeof(cmd->body); 198 + cmd->body.type = type; 199 + cmd->body.baseAddress = 0; 200 + cmd->body.sizeInBytes = 0; 201 + cmd->body.validSizeInBytes = 0; 202 + cmd->body.ptDepth = SVGA3D_MOBFMT_INVALID; 203 + vmw_fifo_commit(dev_priv, sizeof(*cmd)); 204 + } 203 205 204 206 if (bo) { 205 207 int ret; ··· 564 562 if (unlikely(cmd == NULL)) { 565 563 DRM_ERROR("Failed reserving FIFO space for Memory " 566 564 "Object unbinding.\n"); 565 + } else { 566 + cmd->header.id = SVGA_3D_CMD_DESTROY_GB_MOB; 567 + cmd->header.size = sizeof(cmd->body); 568 + cmd->body.mobid = mob->id; 569 + vmw_fifo_commit(dev_priv, sizeof(*cmd)); 567 570 } 568 - cmd->header.id = SVGA_3D_CMD_DESTROY_GB_MOB; 569 - cmd->header.size = sizeof(cmd->body); 570 - cmd->body.mobid = mob->id; 571 - vmw_fifo_commit(dev_priv, sizeof(*cmd)); 572 571 if (bo) { 573 572 vmw_fence_single_bo(bo, NULL); 574 573 ttm_bo_unreserve(bo);
+1 -2
drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
··· 427 427 INIT_LIST_HEAD(&vmw_bo->res_list); 428 428 429 429 ret = ttm_bo_init(bdev, &vmw_bo->base, size, 430 - (user) ? ttm_bo_type_device : 431 - ttm_bo_type_kernel, placement, 430 + ttm_bo_type_device, placement, 432 431 0, interruptible, 433 432 NULL, acc_size, NULL, bo_free); 434 433 return ret;