summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/core_cpu.cpp2
-rw-r--r--src/core/hle/kernel/scheduler.cpp1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/core/core_cpu.cpp b/src/core/core_cpu.cpp
index cf3fe0b0b..630cd4feb 100644
--- a/src/core/core_cpu.cpp
+++ b/src/core/core_cpu.cpp
@@ -96,6 +96,8 @@ void Cpu::RunLoop(bool tight_loop) {
96 } else { 96 } else {
97 arm_interface->Step(); 97 arm_interface->Step();
98 } 98 }
99 // We are stopping a run, exclusive state must be cleared
100 arm_interface->ClearExclusiveState();
99 } 101 }
100 core_timing.Advance(); 102 core_timing.Advance();
101 103
diff --git a/src/core/hle/kernel/scheduler.cpp b/src/core/hle/kernel/scheduler.cpp
index 3f5192087..d36fcd7d9 100644
--- a/src/core/hle/kernel/scheduler.cpp
+++ b/src/core/hle/kernel/scheduler.cpp
@@ -458,7 +458,6 @@ void Scheduler::SwitchContext() {
458 cpu_core.LoadContext(new_thread->GetContext()); 458 cpu_core.LoadContext(new_thread->GetContext());
459 cpu_core.SetTlsAddress(new_thread->GetTLSAddress()); 459 cpu_core.SetTlsAddress(new_thread->GetTLSAddress());
460 cpu_core.SetTPIDR_EL0(new_thread->GetTPIDR_EL0()); 460 cpu_core.SetTPIDR_EL0(new_thread->GetTPIDR_EL0());
461 cpu_core.ClearExclusiveState();
462 } else { 461 } else {
463 current_thread = nullptr; 462 current_thread = nullptr;
464 // Note: We do not reset the current process and current page table when idling because 463 // Note: We do not reset the current process and current page table when idling because