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

drm/i915: Fix struct_mutex deadlock due to merge fumble

commit a8c6ecb3be7029881f7c95e5e201a629094a4e1a
Merge: 8dd0eb35 9eccca0
Author: Dave Airlie <airlied@redhat.com>
Date: Mon Mar 9 19:58:30 2015 +1000

Merge tag 'v4.0-rc3' into drm-next

managed to pick the wrong code to resolve the conflict and left us with
a mutex_lock(struct_mutex) without the mutex_unlock(struct_mutex) leading
to a deadlock. Fix the problem by recovering the correct code which doesn't
need the lock.

Cc: Dave Airlie <airlied@redhat.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>

authored by

Ville Syrjälä and committed by
Dave Airlie
3a656b54 a8c6ecb3

+1 -3
+1 -3
drivers/gpu/drm/i915/intel_display.c
··· 12295 12295 return -ENOMEM; 12296 12296 } 12297 12297 12298 - /* we only need to pin inside GTT if cursor is non-phy */ 12299 - mutex_lock(&dev->struct_mutex); 12300 - if (!INTEL_INFO(dev)->cursor_needs_physical && obj->tiling_mode) { 12298 + if (fb->modifier[0] != DRM_FORMAT_MOD_NONE) { 12301 12299 DRM_DEBUG_KMS("cursor cannot be tiled\n"); 12302 12300 ret = -EINVAL; 12303 12301 }