summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2022-10-02 11:06:13 +0200
committerbunnei <bunneidev@gmail.com>2022-10-19 04:13:35 +0200
commit79bcb38321cbde163280b04ee5a03773d54edfd9 (patch)
tree043f6e70717e5c577b7935c6b7f653cefa839090 /src/core/hle/kernel
parentcore: hle: kernel: Remove junk. (diff)
downloadyuzu-79bcb38321cbde163280b04ee5a03773d54edfd9.tar
yuzu-79bcb38321cbde163280b04ee5a03773d54edfd9.tar.gz
yuzu-79bcb38321cbde163280b04ee5a03773d54edfd9.tar.bz2
yuzu-79bcb38321cbde163280b04ee5a03773d54edfd9.tar.lz
yuzu-79bcb38321cbde163280b04ee5a03773d54edfd9.tar.xz
yuzu-79bcb38321cbde163280b04ee5a03773d54edfd9.tar.zst
yuzu-79bcb38321cbde163280b04ee5a03773d54edfd9.zip
Diffstat (limited to 'src/core/hle/kernel')
-rw-r--r--src/core/hle/kernel/k_interrupt_manager.cpp21
1 files changed, 9 insertions, 12 deletions
diff --git a/src/core/hle/kernel/k_interrupt_manager.cpp b/src/core/hle/kernel/k_interrupt_manager.cpp
index ad73f3eab..4a6b60d26 100644
--- a/src/core/hle/kernel/k_interrupt_manager.cpp
+++ b/src/core/hle/kernel/k_interrupt_manager.cpp
@@ -11,25 +11,22 @@
namespace Kernel::KInterruptManager {
void HandleInterrupt(KernelCore& kernel, s32 core_id) {
- auto* process = kernel.CurrentProcess();
- if (!process) {
- return;
- }
-
// Acknowledge the interrupt.
kernel.PhysicalCore(core_id).ClearInterrupt();
auto& current_thread = GetCurrentThread(kernel);
- // If the user disable count is set, we may need to pin the current thread.
- if (current_thread.GetUserDisableCount() && !process->GetPinnedThread(core_id)) {
- KScopedSchedulerLock sl{kernel};
+ if (auto* process = kernel.CurrentProcess(); process) {
+ // If the user disable count is set, we may need to pin the current thread.
+ if (current_thread.GetUserDisableCount() && !process->GetPinnedThread(core_id)) {
+ KScopedSchedulerLock sl{kernel};
- // Pin the current thread.
- process->PinCurrentThread(core_id);
+ // Pin the current thread.
+ process->PinCurrentThread(core_id);
- // Set the interrupt flag for the thread.
- GetCurrentThread(kernel).SetInterruptFlag();
+ // Set the interrupt flag for the thread.
+ GetCurrentThread(kernel).SetInterruptFlag();
+ }
}
// Request interrupt scheduling.