From 95233b5299a2b85a07316b88669ebd679948b78a Mon Sep 17 00:00:00 2001 From: Elad Ashkenazi Date: Mon, 30 May 2022 01:05:42 +0300 Subject: [PATCH] rsx: Fix deadlock in vm::_page_unmap --- rpcs3/Emu/RSX/RSXThread.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rpcs3/Emu/RSX/RSXThread.cpp b/rpcs3/Emu/RSX/RSXThread.cpp index 3d47a55723..c62fdd7bfa 100644 --- a/rpcs3/Emu/RSX/RSXThread.cpp +++ b/rpcs3/Emu/RSX/RSXThread.cpp @@ -2949,14 +2949,14 @@ namespace rsx } } + // Pause RSX thread momentarily to handle unmapping + eng_lock elock(this); + // Queue up memory invalidation std::lock_guard lock(m_mtx_task); const bool existing_range_valid = m_invalidated_memory_range.valid(); const auto unmap_range = address_range::start_length(address, size); - // Pause RSX thread momentarily to handle unmapping - eng_lock elock(this); - if (existing_range_valid && m_invalidated_memory_range.touches(unmap_range)) { // Merge range-to-invalidate in case of consecutive unmaps