Re: [PATCH v2] mm: access to uninitialized struct page

From: Andrew Morton
Date: Mon Apr 30 2018 - 19:27:05 EST


On Thu, 26 Apr 2018 16:26:19 -0400 Pavel Tatashin <pasha.tatashin@xxxxxxxxxx> wrote:

> The following two bugs were reported by Fengguang Wu:
>
> kernel reboot-without-warning in early-boot stage, last printk:
> early console in setup code
>
> http://lkml.kernel.org/r/20180418135300.inazvpxjxowogyge@xxxxxxxxxxxxxxxxxxxxxx
>
> ...
>
> --- a/init/main.c
> +++ b/init/main.c
> @@ -585,8 +585,8 @@ asmlinkage __visible void __init start_kernel(void)
> setup_log_buf(0);
> vfs_caches_init_early();
> sort_main_extable();
> - trap_init();
> mm_init();
> + trap_init();
>
> ftrace_init();

Gulp. Let's hope that nothing in mm_init() requires that trap_init()
has been run. What happens if something goes wrong during mm_init()
and the architecture attempts to raise a software exception, hits a bus
error, div-by-zero, etc, etc? Might there be hard-to-discover
dependencies in such a case?