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

From: Andrew Morton
Date: Mon Apr 30 2018 - 20:01:53 EST


On Mon, 30 Apr 2018 19:58:58 -0400 Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

> On Mon, 30 Apr 2018 16:26:58 -0700
> Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> > 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?
>
> I mentioned the same thing.
>

I guess the same concern applies to all the code which we've always run
before trap_init(), and that's quite a lot of stuff. So we should be
OK. But don't quote me ;)