Not only page faults are processed by __ipipe_handle_exception, so the validity and encoding of error_code varies. Use user_mode_vm instead to detect if the fault was raised over a user context.
Signed-off-by: Jan Kiszka <[email protected]> --- arch/x86/kernel/ipipe.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/arch/x86/kernel/ipipe.c b/arch/x86/kernel/ipipe.c index 5be7005..b2e2a5b 100644 --- a/arch/x86/kernel/ipipe.c +++ b/arch/x86/kernel/ipipe.c @@ -560,7 +560,8 @@ int __ipipe_handle_exception(struct pt_regs *regs, long error_code, int vector) ipipe_trace_panic_freeze(); /* Always warn about user land and unfixable faults. */ - if ((error_code & 4) || !search_exception_tables(instruction_pointer(regs))) { + if (user_mode_vm(regs) || + !search_exception_tables(instruction_pointer(regs))) { printk(KERN_ERR "BUG: Unhandled exception over domain" " %s at 0x%lx - switching to ROOT\n", ipd->name, instruction_pointer(regs)); -- 1.7.3.4 _______________________________________________ Adeos-main mailing list [email protected] https://mail.gna.org/listinfo/adeos-main
