thermosphere: fix multiple bugs

This commit is contained in:
TuxSH
2019-12-23 20:12:02 +00:00
parent c17b81aaf6
commit e3b6d64f1b
7 changed files with 27 additions and 9 deletions

View File

@@ -44,7 +44,8 @@ void dumpUnhandledDataAbort(DataAbortIss dabtIss, u64 far, const char *msg)
void handleLowerElDataAbortException(ExceptionStackFrame *frame, ExceptionSyndromeRegister esr)
{
DataAbortIss dabtIss;
memcpy(&dabtIss, &esr, 4);
u32 iss = esr.iss;
memcpy(&dabtIss, &iss, 4);
u64 far = GET_SYSREG(far_el2);
u64 farpg = far & ~0xFFFull;
@@ -60,4 +61,7 @@ void handleLowerElDataAbortException(ExceptionStackFrame *frame, ExceptionSyndro
} else {
dumpUnhandledDataAbort(dabtIss, far, "(fallback)");
}
// Skip instruction anyway?
skipFaultingInstruction(frame, esr.il == 0 ? 2 : 4);
}