From fd93df60c577eaa11cab0725ec0b34fc95f63367 Mon Sep 17 00:00:00 2001 From: aspargas2 Date: Thu, 21 May 2020 15:44:16 -0400 Subject: [PATCH] deinit filesystems before booting a firm payload --- arm9/source/godmode.c | 2 ++ arm9/source/utils/scripting.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/arm9/source/godmode.c b/arm9/source/godmode.c index 3dae7d8..39b888f 100644 --- a/arm9/source/godmode.c +++ b/arm9/source/godmode.c @@ -106,6 +106,8 @@ u32 BootFirmHandler(const char* bootpath, bool verbose, bool delete) { // boot the FIRM (if we got a proper fixpath) if (*fixpath) { if (delete) PathDelete(bootpath); + DeinitExtFS(); + DeinitSDCardFS(); PXI_DoCMD(PXI_SET_VMODE, (u32[]){1}, 1); PXI_DoCMD(PXI_LEGACY_MODE, NULL, 0); BootFirm((FirmHeader*) firm, fixpath); diff --git a/arm9/source/utils/scripting.c b/arm9/source/utils/scripting.c index 4352736..423db9b 100644 --- a/arm9/source/utils/scripting.c +++ b/arm9/source/utils/scripting.c @@ -1417,6 +1417,8 @@ bool run_cmd(cmd_id id, u32 flags, char** argv, char* err_str) { snprintf(fixpath, 256, "%s%s", (*argv[0] == '0') ? "sdmc" : "nand", argv[0] + 1); else strncpy(fixpath, argv[0], 256); fixpath[255] = '\0'; + DeinitExtFS(); + DeinitSDCardFS(); PXI_DoCMD(PXI_SET_VMODE, (u32[]){1}, 1); PXI_DoCMD(PXI_LEGACY_MODE, NULL, 0); BootFirm((FirmHeader*)(void*)firm, fixpath);