Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/vmwgfx: Fix oops on failing bo pin

When bo pin failed during modesetting,
vmwgfx would try to unref a non-existing buffer object.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>

authored by

Thomas Hellstrom and committed by
Dave Airlie
1ef0724d 29e190e0

+5
+5
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
··· 720 720 &vmw_vram_ne_placement, 721 721 false, &vmw_dmabuf_bo_free); 722 722 vmw_overlay_resume_all(dev_priv); 723 + if (unlikely(ret != 0)) 724 + vfbs->buffer = NULL; 723 725 724 726 return ret; 725 727 } ··· 731 729 struct ttm_buffer_object *bo; 732 730 struct vmw_framebuffer_surface *vfbs = 733 731 vmw_framebuffer_to_vfbs(&vfb->base); 732 + 733 + if (unlikely(vfbs->buffer == NULL)) 734 + return 0; 734 735 735 736 bo = &vfbs->buffer->base; 736 737 ttm_bo_unref(&bo);