Whamcloud - gitweb
b=17167 libcfs: ensure all libcfs exported symbols to have cfs_ prefix
[fs/lustre-release.git] / libcfs / libcfs / linux / linux-debug.c
index bdcd432..367a3f0 100644 (file)
 #include <linux/kallsyms.h>
 #endif
 
+/* We need to pass a pointer here, but elsewhere this must be a const */
+static char *debug_file_path = &libcfs_debug_file_path_arr[0];
+CFS_MODULE_PARM(debug_file_path, "s", charp, 0644,
+                "Path for dumping debug logs (deprecated)");
+
 char lnet_upcall[1024] = "/usr/lib/lustre/lnet_upcall";
 char lnet_debug_log_upcall[1024] = "/usr/lib/lustre/lnet_debug_log_upcall";
 
@@ -173,7 +178,8 @@ void lbug_with_loc(const char *file, const char *func, const int line)
 {
         libcfs_catastrophe = 1;
         libcfs_debug_msg(NULL, 0, D_EMERG, file, func, line,
-                         "LBUG - trying to dump log to %s\n", debug_file_path);
+                         "LBUG - trying to dump log to %s\n",
+                         libcfs_debug_file_path);
         libcfs_debug_dumplog();
         libcfs_run_lbug_upcall(file, func, line);
         asm("int $3");
@@ -212,7 +218,7 @@ void lbug_with_loc(const char *file, const char *func, const int line)
 static void
 print_trace_warning_symbol(void *data, char *msg, unsigned long symbol)
 {
-       printk(data);
+        printk("%s", (char *)data);
        print_symbol(msg, symbol);
        printk("\n");
 }
@@ -263,7 +269,9 @@ void libcfs_debug_dumpstack(struct task_struct *tsk)
 #elif defined(HAVE_DUMP_TRACE)
         /* dump_stack() */
         /* show_trace() */
-       printk("Pid: %d, comm: %.20s\n", current->pid, current->comm);
+        if (tsk == NULL)
+                tsk = current;
+       printk("Pid: %d, comm: %.20s\n", tsk->pid, tsk->comm);
         /* show_trace_log_lvl() */
        printk("\nCall Trace:\n");
        dump_trace(tsk, NULL, NULL,
@@ -308,7 +316,7 @@ static int panic_notifier(struct notifier_block *self, unsigned long unused1,
          * console on the rare cases it is ever triggered. */
 
         if (in_interrupt()) {
-                trace_debug_print();
+                cfs_trace_debug_print();
         } else {
                 while (current->lock_depth >= 0)
                         unlock_kernel();