diff options
author | Liam <byteslice@airmail.cc> | 2023-02-23 03:40:53 +0100 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2023-03-01 16:42:45 +0100 |
commit | 9f9b64cda2079a1aebf2c4a12fc20c24891c23c9 (patch) | |
tree | c9697c325ae6f1271b627ab7c93c5c84c2f9a13a | |
parent | kernel: adjust pool allocations (diff) | |
download | yuzu-9f9b64cda2079a1aebf2c4a12fc20c24891c23c9.tar yuzu-9f9b64cda2079a1aebf2c4a12fc20c24891c23c9.tar.gz yuzu-9f9b64cda2079a1aebf2c4a12fc20c24891c23c9.tar.bz2 yuzu-9f9b64cda2079a1aebf2c4a12fc20c24891c23c9.tar.lz yuzu-9f9b64cda2079a1aebf2c4a12fc20c24891c23c9.tar.xz yuzu-9f9b64cda2079a1aebf2c4a12fc20c24891c23c9.tar.zst yuzu-9f9b64cda2079a1aebf2c4a12fc20c24891c23c9.zip |
-rw-r--r-- | src/core/hle/kernel/k_address_arbiter.cpp | 8 | ||||
-rw-r--r-- | src/core/hle/kernel/k_condition_variable.cpp | 4 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/core/hle/kernel/k_address_arbiter.cpp b/src/core/hle/kernel/k_address_arbiter.cpp index a442a3b98..fb86451ea 100644 --- a/src/core/hle/kernel/k_address_arbiter.cpp +++ b/src/core/hle/kernel/k_address_arbiter.cpp @@ -29,7 +29,9 @@ bool DecrementIfLessThan(Core::System& system, s32* out, VAddr address, s32 valu auto& monitor = system.Monitor(); const auto current_core = system.Kernel().CurrentPhysicalCoreIndex(); - // TODO(bunnei): We should disable interrupts here via KScopedInterruptDisable. + // NOTE: If scheduler lock is not held here, interrupt disable is required. + // KScopedInterruptDisable di; + // TODO(bunnei): We should call CanAccessAtomic(..) here. // Load the value from the address. @@ -59,7 +61,9 @@ bool UpdateIfEqual(Core::System& system, s32* out, VAddr address, s32 value, s32 auto& monitor = system.Monitor(); const auto current_core = system.Kernel().CurrentPhysicalCoreIndex(); - // TODO(bunnei): We should disable interrupts here via KScopedInterruptDisable. + // NOTE: If scheduler lock is not held here, interrupt disable is required. + // KScopedInterruptDisable di; + // TODO(bunnei): We should call CanAccessAtomic(..) here. // Load the value from the address. diff --git a/src/core/hle/kernel/k_condition_variable.cpp b/src/core/hle/kernel/k_condition_variable.cpp index 3f0be1c3f..50a805296 100644 --- a/src/core/hle/kernel/k_condition_variable.cpp +++ b/src/core/hle/kernel/k_condition_variable.cpp @@ -198,7 +198,9 @@ void KConditionVariable::SignalImpl(KThread* thread) { u32 prev_tag{}; bool can_access{}; { - // TODO(bunnei): We should disable interrupts here via KScopedInterruptDisable. + // NOTE: If scheduler lock is not held here, interrupt disable is required. + // KScopedInterruptDisable di; + // TODO(bunnei): We should call CanAccessAtomic(..) here. can_access = true; if (can_access) [[likely]] { |