From b2b07abbc84bac7070f720d059cfd5bcd02c1e05 Mon Sep 17 00:00:00 2001 From: CamilleLaVey Date: Tue, 10 Mar 2026 03:10:37 -0400 Subject: [PATCH] Revert "[nce] Added "tainted" page fault handling inside dual channel" --- src/core/arm/nce/arm_nce.cpp | 14 -------------- src/core/arm/nce/arm_nce.h | 10 ---------- 2 files changed, 24 deletions(-) diff --git a/src/core/arm/nce/arm_nce.cpp b/src/core/arm/nce/arm_nce.cpp index 57f19e169d..4b1200887f 100644 --- a/src/core/arm/nce/arm_nce.cpp +++ b/src/core/arm/nce/arm_nce.cpp @@ -159,7 +159,6 @@ bool ArmNce::HandleGuestAlignmentFault(GuestContext* guest_ctx, void* raw_info, bool ArmNce::HandleGuestAccessFault(GuestContext* guest_ctx, void* raw_info, void* raw_context) { auto* info = static_cast(raw_info); - auto* parent = guest_ctx->parent; // Try to handle an invalid access. // TODO: handle accesses which split a page? @@ -183,19 +182,6 @@ void ArmNce::HandleHostAccessFault(int sig, void* raw_info, void* raw_context) { return g_orig_segv_action.sa_sigaction(sig, static_cast(raw_info), raw_context); } -bool ArmNce::IsPreciseAccessPage(u64 addr) const { - const std::scoped_lock lk{m_precise_pages_guard}; - return m_precise_pages.contains(AlignDownPage(addr)); -} - -void ArmNce::MarkPreciseAccessPage(u64 addr) { - const std::scoped_lock lk{m_precise_pages_guard}; - if (m_precise_pages.size() >= MaxPreciseAccessPages) { - m_precise_pages.clear(); - } - m_precise_pages.insert(AlignDownPage(addr)); -} - void ArmNce::LockThread(Kernel::KThread* thread) { auto* thread_params = &thread->GetNativeExecutionParameters(); LockThreadParameters(thread_params); diff --git a/src/core/arm/nce/arm_nce.h b/src/core/arm/nce/arm_nce.h index 32772d9694..98dffd57d6 100644 --- a/src/core/arm/nce/arm_nce.h +++ b/src/core/arm/nce/arm_nce.h @@ -1,13 +1,9 @@ -// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project -// SPDX-License-Identifier: GPL-3.0-or-later - // SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include -#include #include "core/arm/arm_interface.h" #include "core/arm/nce/guest_context.h" @@ -82,9 +78,6 @@ private: static void HandleHostAlignmentFault(int sig, void* info, void* raw_context); static void HandleHostAccessFault(int sig, void* info, void* raw_context); - bool IsPreciseAccessPage(u64 addr) const; - void MarkPreciseAccessPage(u64 addr); - public: Core::System& m_system; @@ -96,9 +89,6 @@ public: GuestContext m_guest_ctx{}; Kernel::KThread* m_running_thread{}; - mutable std::mutex m_precise_pages_guard{}; - std::unordered_set m_precise_pages{}; - // Stack for signal processing. std::unique_ptr m_stack{}; };