yaffs: Add dump_stack() to YBUG to give more info.
[yaffs2.git] / yportenv.h
index e1f61f49fab59c2b85e64f49b65ebd0f7fbc36a3..13cc1eb621783ebbfd7c860509593194dbf97d25 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
  *
- * Copyright (C) 2002-2007 Aleph One Ltd.
+ * Copyright (C) 2002-2010 Aleph One Ltd.
  *   for Toby Churchill Ltd and Brightstar Engineering
  *
  * Created by Charles Manning <charles@aleph1.co.uk>
@@ -71,8 +71,8 @@
 #define YFREE_ALT(x)   vfree(x)
 #define YMALLOC_DMA(x) YMALLOC(x)
 
-/* KR - added for use in scan so processes aren't blocked indefinitely. */
 #define YYIELD() schedule()
+#define Y_DUMP_STACK() dump_stack()
 
 #define YAFFS_ROOT_MODE                        0755
 #define YAFFS_LOSTNFOUND_MODE          0700
 #define yaffs_strcmp(a, b) strcmp(a, b)
 
 #define TENDSTR "\n"
-#define TSTR(x) KERN_WARNING x
+#define TSTR(x) KERN_DEBUG x
 #define TCONT(x) x
 #define TOUT(p) printk p
 
-#define yaffs_trace(mask, fmt, args...) \
-       do { if ((mask) & (yaffs_traceMask| YAFFS_TRACE_ALWAYS)) \
-               printk(KERN_WARNING "yaffs: " fmt, ## args); \
-       } while (0)
-
 #define compile_time_assertion(assertion) \
        ({ int x = __builtin_choose_expr(assertion, 0, (void)0); (void) x; })
 
 
 #endif
 
+#ifndef Y_DUMP_STACK
+#define Y_DUMP_STACK() do { } while (0)
+#endif
 
 #ifndef YBUG
-#define YBUG() do {T(YAFFS_TRACE_BUG, (TSTR("==>> yaffs bug: " __FILE__ " %d" TENDSTR), __LINE__)); } while (0)
+#define YBUG() do {\
+       T(YAFFS_TRACE_BUG,\
+               (TSTR("==>> yaffs bug: " __FILE__ " %d" TENDSTR),\
+               __LINE__));\
+       Y_DUMP_STACK();\
+} while (0)
 #endif
 
 #endif