void libcfs_assertion_failed(const char *expr, const char *file, const char *func, const int line) { libcfs_debug_msg(NULL, 0, D_EMERG, file, func, line, "ASSERTION(%s) failed\n", expr); /* cfs_enter_debugger(); */ lbug_with_loc(file, func, line); }
void lbug_with_loc(struct libcfs_debug_msg_data *msgdata) { libcfs_catastrophe = 1; libcfs_debug_msg(msgdata, "LBUG - trying to dump log to %s\n", libcfs_debug_file_path); libcfs_debug_dumplog(); libcfs_run_lbug_upcall(msgdata); asm("int $3"); panic("LBUG"); }
/* coverity[+kill] */ void __noreturn lbug_with_loc(struct libcfs_debug_msg_data *msgdata) { libcfs_catastrophe = 1; libcfs_debug_msg(msgdata, "LBUG\n"); if (in_interrupt()) { panic("LBUG in interrupt.\n"); /* not reached */ } dump_stack(); if (!libcfs_panic_on_lbug) libcfs_debug_dumplog(); if (libcfs_panic_on_lbug) panic("LBUG"); set_task_state(current, TASK_UNINTERRUPTIBLE); while (1) schedule(); }
void libcfs_log_goto(struct libcfs_debug_msg_data *msgdata, const char *label, long_ptr_t rc) { libcfs_debug_msg(msgdata, "Process leaving via %s (rc=" LPLU " : " LPLD " : " LPLX ")\n", label, (ulong_ptr_t)rc, rc, rc); }
long libcfs_log_return(struct libcfs_debug_msg_data *msgdata, long rc) { libcfs_debug_msg(msgdata, "Process leaving (rc=%lu : %ld : %lx)\n", rc, rc, rc); return rc; }
void lbug_with_loc(const char *file, const char *func, const int line) { /* No libcfs_catastrophe in userspace! */ libcfs_debug_msg(NULL, 0, D_EMERG, file, func, line, "LBUG\n"); abort(); }
void lbug_with_loc(struct libcfs_debug_msg_data *msgdata) { /* No libcfs_catastrophe in userspace! */ libcfs_debug_msg(msgdata, "LBUG\n"); abort(); }