From e179b5e1fa9e32efd6fd1ce1f1f734b476349c13 Mon Sep 17 00:00:00 2001 From: Michael Scire Date: Tue, 14 Jul 2020 19:52:41 -0700 Subject: [PATCH] kern: retrieve target firmware from exosphere instead of hardcoding --- .../board/nintendo/nx/kern_k_device_page_table.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/libmesosphere/source/board/nintendo/nx/kern_k_device_page_table.cpp b/libmesosphere/source/board/nintendo/nx/kern_k_device_page_table.cpp index 7ee9e3b2..e50c9b7f 100644 --- a/libmesosphere/source/board/nintendo/nx/kern_k_device_page_table.cpp +++ b/libmesosphere/source/board/nintendo/nx/kern_k_device_page_table.cpp @@ -640,15 +640,10 @@ namespace ams::kern::board::nintendo::nx { } bool KDevicePageTable::Compare(const KPageGroup &compare_pg, KDeviceVirtualAddress device_address) const { - bool same_pages = false; - - /* Make a page group. */ + /* Check whether the page group we expect for the virtual address matches the page group we're validating. */ KPageGroup calc_pg(std::addressof(Kernel::GetBlockInfoManager())); - if (R_SUCCEEDED(this->MakePageGroup(std::addressof(calc_pg), device_address, compare_pg.GetNumPages() * PageSize))) { - same_pages = calc_pg.IsEquivalentTo(compare_pg); - } - - return same_pages; + return (R_SUCCEEDED(this->MakePageGroup(std::addressof(calc_pg), device_address, compare_pg.GetNumPages() * PageSize))) && + calc_pg.IsEquivalentTo(compare_pg); } Result KDevicePageTable::Map(size_t *out_mapped_size, const KPageGroup &pg, KDeviceVirtualAddress device_address, ams::svc::MemoryPermission device_perm, bool refresh_mappings) {