File xenia_PR2232.patch of Package xenia-canary
diff --git a/src/xenia/cpu/mmio_handler.cc b/src/xenia/cpu/mmio_handler.cc
index d676c4ada..c8912f011 100644
--- a/src/xenia/cpu/mmio_handler.cc
+++ b/src/xenia/cpu/mmio_handler.cc
@@ -444,8 +444,9 @@ bool MMIOHandler::ExceptionCallback(Exception* ex) {
auto lock = global_critical_region_.Acquire();
memory::PageAccess cur_access;
size_t page_length = memory::page_size();
- memory::QueryProtect(fault_host_address, page_length, cur_access);
- if (cur_access != memory::PageAccess::kNoAccess &&
+ bool protect_result =
+ memory::QueryProtect(fault_host_address, page_length, cur_access);
+ if (protect_result == true && cur_access != memory::PageAccess::kNoAccess &&
(!is_write || cur_access != memory::PageAccess::kReadOnly)) {
// Another thread has cleared this watch. Abort.
XELOGD("Race condition on watch, was already cleared by another thread!");