linux_dsm_epyc7002/drivers/gpu/drm/etnaviv
Lucas Stach ca8cb69580 drm/etnaviv: fix deadlock in GPU coredump
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: 27b67278e0 (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: Christian Gmeiner <christian.gmeiner@gmail.com>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Tested-by: Christian Gmeiner <christian.gmeiner@gmail.com>
2019-10-29 18:11:06 +01:00
..
cmdstream.xml.h
common.xml.h
etnaviv_buffer.c drm/etnaviv: implement per-process address spaces on MMUv2 2019-08-15 11:44:27 +02:00
etnaviv_cmd_parser.c drm/etnaviv: replace license text with SPDX tags 2018-05-18 15:27:56 +02:00
etnaviv_cmdbuf.c drm/etnaviv: implement softpin 2019-08-15 12:07:47 +02:00
etnaviv_cmdbuf.h drm/etnaviv: rework MMU handling 2019-08-15 10:56:45 +02:00
etnaviv_drv.c Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2019-08-22 13:21:16 +10:00
etnaviv_drv.h drm/etnaviv: implement softpin 2019-08-15 12:07:47 +02:00
etnaviv_dump.c drm/etnaviv: fix deadlock in GPU coredump 2019-10-29 18:11:06 +01:00
etnaviv_dump.h drm/etnaviv: pass mmu pointer to etnaviv_core_dump_mmu 2019-08-15 10:53:31 +02:00
etnaviv_gem_prime.c Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2019-08-22 13:21:16 +10:00
etnaviv_gem_submit.c Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2019-08-22 13:21:16 +10:00
etnaviv_gem.c Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2019-08-22 13:21:16 +10:00
etnaviv_gem.h Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2019-08-22 13:21:16 +10:00
etnaviv_gpu.c drm/etnaviv: implement softpin 2019-08-15 12:07:47 +02:00
etnaviv_gpu.h drm/etnaviv: implement per-process address spaces on MMUv2 2019-08-15 11:44:27 +02:00
etnaviv_hwdb.c drm/etnaviv: replace license text with SPDX tags 2018-05-18 15:27:56 +02:00
etnaviv_iommu_v2.c drm/etnaviv: implement per-process address spaces on MMUv2 2019-08-15 11:44:27 +02:00
etnaviv_iommu.c drm/etnaviv: fix missing unlock on error in etnaviv_iommuv1_context_alloc() 2019-09-02 12:48:55 +02:00
etnaviv_mmu.c drm/etnaviv: allow to request specific virtual address for gem mapping 2019-08-15 11:58:59 +02:00
etnaviv_mmu.h drm/etnaviv: allow to request specific virtual address for gem mapping 2019-08-15 11:58:59 +02:00
etnaviv_perfmon.c etnaviv: perfmon: fix total and idle HI cyleces readout 2019-08-09 14:08:29 +02:00
etnaviv_perfmon.h drm/etnaviv: replace license text with SPDX tags 2018-05-18 15:27:56 +02:00
etnaviv_sched.c drm/etnaviv: dump only failing submit 2019-08-15 10:48:51 +02:00
etnaviv_sched.h drm/etnaviv: replace license text with SPDX tags 2018-05-18 15:27:56 +02:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile
state_3d.xml.h
state_blt.xml.h
state_hi.xml.h
state.xml.h