• Lucas Stach's avatar
    drm/etnaviv: fix deadlock in GPU coredump · ca8cb695
    Lucas Stach authored
    The GPU coredump function violates the locking order by holding the MMU
    context lock while trying to acquire the etnaviv_gem_object lock. This
    results in a possible ABBA deadlock with other codepaths which follow
    the established locking order.
    Fortunately this is easy to fix by dropping the MMU context lock
    earlier, as the BO dumping doesn't need the MMU context to be stable.
    The only thing the BO dumping cares about are the BO mappings, which
    are stable across the lifetime of the job.
    
    Fixes: 27b67278 (drm/etnaviv: rework MMU handling)
    [ Not really the first bad commit, but the one where this fix applies
      cleanly. Stable kernels need a manual backport. ]
    Reported-by: default avatarChristian Gmeiner <christian.gmeiner@gmail.com>
    Signed-off-by: default avatarLucas Stach <l.stach@pengutronix.de>
    Tested-by: default avatarChristian Gmeiner <christian.gmeiner@gmail.com>
    ca8cb695
etnaviv_dump.c 5.91 KB