dead lock code path exist for DRM drivers/gpu/drm/{drm_prime.c,drm_gem.c} drm_gem_prime_fd_to_handle() | mutex_lock(&file_priv->prime.lock); | drm_prime_add_buf_handle() goto fail | drm_gem_handle_delete() | | drm_gem_object_release_handle() | | | drm_gem_remove_prime_handles() | | | | mutex_lock(&filp->prime.lock) | mutex_unlock(&file_priv->prime.lock)
I believe this is fixed in: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=6984128d01cf935820a0563f3a00c6623ba58109 Which should probably go to stable.
(In reply to Alex Deucher from comment #1) > I believe this is fixed in: > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/ > ?id=6984128d01cf935820a0563f3a00c6623ba58109 > Which should probably go to stable. Your fix is in 4.5 kernel and related to another dead lock path: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1579610 This dead lock path is different and remains in the kernel master branch.
fixed in: https://cgit.freedesktop.org/~airlied/linux/commit/?h=drm-next&id=bd6e2732f0e2894ce792f344c41fc32591436fe3 drm/prime: fix error path deadlock fail There were a couple messed up things about this fail path. (1) it would drop object_name_lock twice (2) drm_gem_handle_delete() (in drm_gem_remove_prime_handles()) needs to grab prime_lock Reported-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Rob Clark <robdclark@gmail.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1465500559-17873-1-git-send-email-robdclark@gmail.com Which should go upstream in the next merge window.