mirror of https://github.com/RPCS3/rpcs3.git
rsx: Fix deadlock in vm::_page_unmap
This commit is contained in:
parent
8b6f68abcf
commit
95233b5299
|
@ -2949,14 +2949,14 @@ namespace rsx
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Pause RSX thread momentarily to handle unmapping
|
||||||
|
eng_lock elock(this);
|
||||||
|
|
||||||
// Queue up memory invalidation
|
// Queue up memory invalidation
|
||||||
std::lock_guard lock(m_mtx_task);
|
std::lock_guard lock(m_mtx_task);
|
||||||
const bool existing_range_valid = m_invalidated_memory_range.valid();
|
const bool existing_range_valid = m_invalidated_memory_range.valid();
|
||||||
const auto unmap_range = address_range::start_length(address, size);
|
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))
|
if (existing_range_valid && m_invalidated_memory_range.touches(unmap_range))
|
||||||
{
|
{
|
||||||
// Merge range-to-invalidate in case of consecutive unmaps
|
// Merge range-to-invalidate in case of consecutive unmaps
|
||||||
|
|
Loading…
Reference in New Issue