Lines Matching full:far
284 static bool z_arm64_stack_corruption_check(struct arch_esf *esf, uint64_t esr, uint64_t far) in z_arm64_stack_corruption_check() argument
292 if ((sp != 0 && sp <= sp_limit) || (guard_start <= far && far <= sp_limit)) { in z_arm64_stack_corruption_check()
303 LOG_ERR("STACK OVERFLOW FROM KERNEL, SP: 0x%llx OR FAR: 0x%llx INVALID," in z_arm64_stack_corruption_check()
304 " SP LIMIT: 0x%llx", sp, far, sp_limit); in z_arm64_stack_corruption_check()
314 if (sp <= sp_limit || (guard_start <= far && far <= sp_limit)) { in z_arm64_stack_corruption_check()
315 LOG_ERR("STACK OVERFLOW FROM USERSPACE, SP: 0x%llx OR FAR: 0x%llx INVALID," in z_arm64_stack_corruption_check()
316 " SP LIMIT: 0x%llx", sp, far, sp_limit); in z_arm64_stack_corruption_check()
325 static bool is_recoverable(struct arch_esf *esf, uint64_t esr, uint64_t far, in is_recoverable() argument
352 uint64_t far = 0; in z_arm64_fatal_error() local
361 far = read_far_el1(); in z_arm64_fatal_error()
367 far = read_far_el3(); in z_arm64_fatal_error()
374 if (z_arm64_stack_corruption_check(esf, esr, far)) { in z_arm64_fatal_error()
381 z_arm64_do_demand_paging(esf, esr, far)) { in z_arm64_fatal_error()
394 LOG_ERR("FAR_ELn: 0x%016llx", far); in z_arm64_fatal_error()
400 if (is_recoverable(esf, esr, far, elr) && in z_arm64_fatal_error()