[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAMe9rOrVyzvaTyURc4RJJTHUXGG6uAC9KyQomxQFzWzrAN4nrg@mail.gmail.com>
Date: Thu, 30 Jan 2020 09:51:38 -0800
From: "H.J. Lu" <hjl.tools@...il.com>
To: Kees Cook <keescook@...omium.org>
Cc: LKML <linux-kernel@...r.kernel.org>,
Andy Lutomirski <luto@...nel.org>,
Thomas Gleixner <tglx@...utronix.de>,
Thomas Lendacky <Thomas.Lendacky@....com>,
Sami Tolvanen <samitolvanen@...gle.com>,
Heiko Carstens <heiko.carstens@...ibm.com>,
Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>,
"H . Peter Anvin" <hpa@...or.com>,
"the arch/x86 maintainers" <x86@...nel.org>,
Yu-cheng Yu <yu-cheng.yu@...el.com>
Subject: Re: [PATCH 2/2] x86: Discard .note.gnu.property sections in vmlinux
On Mon, Jan 27, 2020 at 3:34 PM Kees Cook <keescook@...omium.org> wrote:
>
> On Fri, Jan 24, 2020 at 10:18:19AM -0800, H.J. Lu wrote:
> > With the command-line option, -mx86-used-note=yes, the x86 assembler
> > in binutils 2.32 and above generates a program property note in a note
> > section, .note.gnu.property, to encode used x86 ISAs and features.
> > But x86 kernel linker script only contains a signle NOTE segment:
> >
> > PHDRS {
> > text PT_LOAD FLAGS(5);
> > data PT_LOAD FLAGS(6);
> > percpu PT_LOAD FLAGS(6);
> > init PT_LOAD FLAGS(7);
> > note PT_NOTE FLAGS(0);
> > }
> > SECTIONS
> > {
> > ...
> > .notes : AT(ADDR(.notes) - 0xffffffff80000000) { __start_notes = .; KEEP(*(.not
> > e.*)) __stop_notes = .; } :text :note
> > ...
> > }
> >
> > which may not be incompatible with note.gnu.property sections. Since
> > note.gnu.property section in kernel image is unused, this patch discards
> > .note.gnu.property sections in kernel linker script by adding
> >
> > /DISCARD/ : {
> > *(.note.gnu.property)
> > }
>
> I think this is happening in the wrong place? Shouldn't this be in the
> DISCARDS macro in include/asm-generic/vmlinux.lds.h instead?
Please read my commit message closely. We can't discard .note.gnu.property
sections by adding .note.gnu.property to default discarded sections
since default
discarded sections are placed AFTER .notes sections in x86 kernel
linker scripts.
> > before .notes sections. Since .exit.text and .exit.data sections are
> > discarded at runtime, it undefines EXIT_TEXT and EXIT_DATA to exclude
> > .exit.text and .exit.data sections from default discarded sections.
>
> This looks like a separate issue (though maybe related to DISCARDS)?
Here is the updated patch without EXIT_TEXT and EXIT_DATA change.
I will submit a separate patch for it.
Thanks.
--
H.J.
View attachment "0002-x86-Discard-.note.gnu.property-sections-in-vmlinux.patch" of type "text/x-patch" (1814 bytes)
Powered by blists - more mailing lists