Re: kexec, x86/purgatory: Cleanup the unholy mess

From: Vivek Goyal
Date: Fri Mar 10 2017 - 10:05:47 EST


On Fri, Mar 10, 2017 at 03:58:20PM +0100, Thomas Gleixner wrote:
> On Fri, 10 Mar 2017, Vivek Goyal wrote:
> > I think we probably will have to initialize these global variables in
> > purgatory itself and that puts them in .data section and relocation
> > works.
> >
> > That's how the code was intially. I initialized value of
> > purgatory_sha256_digest in the code and then did "readelf -a purgatory.o"
> > and symbol section index changed from COM to 3.
> >
> > 13: 0000000000000000 32 OBJECT GLOBAL DEFAULT 3
> > purgatory_sha256_digest
> >
> > [ 3] .data PROGBITS 0000000000000000 00000120
> > 0000000000000020 0000000000000000 WA 0 0 32
>
> Yeah, and then instead of doing it proper you relied on compiler/link magic
> which is unreliable, undocumented and uncomprehensible. But that's just
> compatible to the rest of kexec. Works for me is never a good engineering
> principle.

Agreed. That was not a very good idea. Thanks for fixing this.

Vivek