Re: [PATCH] x86: suppress stack overrun message for init_task

From: Jan Beulich
Date: Mon Nov 23 2009 - 03:41:41 EST


>>> AmÃricoWang <xiyou.wangcong@xxxxxxxxx> 21.11.09 11:31 >>>
>On Fri, Nov 20, 2009 at 02:00:14PM +0000, Jan Beulich wrote:
>>init_task doesn't get its stack end location set to STACK_END_MAGIC,
>>and hence the message is confusing rather than helpful in this case.
>>
>>Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
>>
>
>How about the patch below? It is totally untested. ;)
>
>-------------->
>
>init process should also write STACK_END_MAGIC to the
>end of its stack.

This seems way too late to me - in order to avoid any false reports, it
would really need to be part of INIT_TASK() I believe, but I didn't find
a way to make it so.

Jan

>Signed-off-by: WANG Cong <xiyou.wangcong@xxxxxxxxx>
>
>----
>diff --git a/init/main.c b/init/main.c
>index 5988deb..5a8f1b9 100644
>--- a/init/main.c
>+++ b/init/main.c
>@@ -69,6 +69,7 @@
> #include <linux/kmemtrace.h>
> #include <linux/sfi.h>
> #include <linux/shmem_fs.h>
>+#include <linux/magic.h>
> #include <trace/boot.h>
>
> #include <asm/io.h>
>@@ -798,7 +799,9 @@ static void __init do_pre_smp_initcalls(void)
>
> static void run_init_process(char *init_filename)
> {
>+ unsigned long *stack_end = end_of_stack(&init_task);
> argv_init[0] = init_filename;
>+ *stack_end = STACK_END_MAGIC;
> kernel_execve(init_filename, argv_init, envp_init);
> }

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/