From: William Lee Irwin III __builtin_return_address() with non-constant arguments is unsupported on various architectures. fs/reiser4/context.c: In function `get_context_ok': fs/reiser4/context.c:88: warning: unsupported arg to `__builtin_return_address' fs/reiser4/context.c:89: warning: unsupported arg to `__builtin_return_address' s/non-constant/nonzero/ Anyway, get_context_ok() appears to be nowhere used in the reiser4 bits in -mm. Hans, any chance you could filter out some of the non-portable debug code in the -mm snapshots? Especially the bits not called in -mm. Signed-off-by: Andrew Morton --- 25-akpm/fs/reiser4/context.c | 52 ------------------------------------------- 25-akpm/fs/reiser4/context.h | 4 --- 2 files changed, 56 deletions(-) diff -puN fs/reiser4/context.c~reiser4-get_context_ok-warning-fixes fs/reiser4/context.c --- 25/fs/reiser4/context.c~reiser4-get_context_ok-warning-fixes 2004-09-08 13:11:14.033844240 -0700 +++ 25-akpm/fs/reiser4/context.c 2004-09-08 13:11:14.038843480 -0700 @@ -60,58 +60,6 @@ check_contexts(void) /* REISER4_DEBUG_CONTEXTS */ #endif -struct { - void *task; - void *context; - void *path[16]; -} context_ok; - - - -reiser4_internal void get_context_ok(reiser4_context *ctx) -{ - int i; - void *addr = NULL, *frame = NULL; - -#define CTX_FRAME(nr) \ - case (nr): \ - addr = __builtin_return_address((nr)); \ - frame = __builtin_frame_address(nr); \ - break - - memset(&context_ok, 0, sizeof(context_ok)); - - context_ok.task = current; - context_ok.context = ctx; - for (i = 0; i < 16; i ++) { - switch(i) { - CTX_FRAME(0); - CTX_FRAME(1); - CTX_FRAME(2); - CTX_FRAME(3); - CTX_FRAME(4); - CTX_FRAME(5); - CTX_FRAME(6); - CTX_FRAME(7); - CTX_FRAME(8); - CTX_FRAME(9); - CTX_FRAME(10); - CTX_FRAME(11); - CTX_FRAME(12); - CTX_FRAME(13); - CTX_FRAME(14); - CTX_FRAME(15); - default: - impossible("", ""); - } - if (frame > (void *)ctx) - break; - context_ok.path[i] = addr; - } -#undef CTX_FRAME -} - - /* initialise context and bind it to the current thread This function should be called at the beginning of reiser4 part of diff -puN fs/reiser4/context.h~reiser4-get_context_ok-warning-fixes fs/reiser4/context.h --- 25/fs/reiser4/context.h~reiser4-get_context_ok-warning-fixes 2004-09-08 13:11:14.035843936 -0700 +++ 25-akpm/fs/reiser4/context.h 2004-09-08 13:11:14.038843480 -0700 @@ -205,10 +205,6 @@ extern void done_context(reiser4_context extern int is_in_reiser4_context(void); -/* return context associated with given thread */ - -void get_context_ok(reiser4_context *); - /* * return reiser4_context for the thread @tsk */ _