On Tue, 28 Feb 2012 09:51:30 +0900 Simon Horman <horms at verge.net.au> wrote: > On Mon, Feb 27, 2012 at 04:26:31PM -0800, Andrew Morton wrote: > > On Tue, 28 Feb 2012 09:19:28 +0900 > > Simon Horman <horms at verge.net.au> wrote: > > > > > > > --- a/kernel/kexec.c > > > > > +++ b/kernel/kexec.c > > > > > @@ -1462,7 +1462,9 @@ static int __init crash_save_vmcoreinfo_init(void) > > > > > > > > > > VMCOREINFO_SYMBOL(init_uts_ns); > > > > > VMCOREINFO_SYMBOL(node_online_map); > > > > > +#ifdef CONFIG_MMU > > > > > VMCOREINFO_SYMBOL(swapper_pg_dir); > > > > > +#endif > > > > > VMCOREINFO_SYMBOL(_stext); > > > > > VMCOREINFO_SYMBOL(vmlist); > > > > > > > > Well, what might be the effects of this patch? nommu crashfiles will > > > > no longer have the swapper_pg_dir string? What are the chances that > > > > someone's (badly written!) downstream tool will crash and burn if this > > > > is absent? > > > > > > My understanding is that up until this patch creating a dump > > > for nonmmu platform wouldn't work. > > > > Surprised. From reading the code I expect it would have emitted > > > > SYMBOL(swapper_pg_dir)=0 > > Hi Andrew, > > My understanding from discussion with Will earlier in this thread is that if > CONFIG_MMU is not defined then swapper_pg_dir is NULL and the current code > doesn't compile. > > <quote> > The only case where it's interesting is when you have CONFIG_MMU > enabled - otherwise it's always NULL. If it's #defined as NULL, the > current code will fail at build time so simply omitting it from the > dump seems like the best bet to me (the alternative being to add a > NULL entry explicitly, but I don't see what the gains us). > </quote> OK. That's because everything is all screwed up ;) swapper_pg_dir is normally an array. But on nommu it is a pointer. VMCOREINFO_SYMBOL() wants to take its address (unnecessary on an array) and this blows up when fed a pointer. Still, you didn't answer my question! What effect will the absence of SYMBOL(swapper_pg_dir)= have upon downstream tools? If "none" then sure, let's remove it. If "explosion" then we should emit a dummy SYMBOL(swapper_pg_dir)=0 if CONFIG_NOMMU.