[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20211210110102.707759-1-alexandr.lobakin@intel.com>
Date: Fri, 10 Dec 2021 12:01:02 +0100
From: Alexander Lobakin <alexandr.lobakin@...el.com>
To: Peter Zijlstra <peterz@...radead.org>
Cc: Alexander Lobakin <alexandr.lobakin@...el.com>,
linux-hardening@...r.kernel.org, x86@...nel.org,
Jesse Brandeburg <jesse.brandeburg@...el.com>,
Kristen Carlson Accardi <kristen@...ux.intel.com>,
Kees Cook <keescook@...omium.org>,
Miklos Szeredi <miklos@...redi.hu>,
Ard Biesheuvel <ardb@...nel.org>,
Tony Luck <tony.luck@...el.com>,
Bruce Schlobohm <bruce.schlobohm@...el.com>,
Jessica Yu <jeyu@...nel.org>,
kernel test robot <lkp@...el.com>,
Miroslav Benes <mbenes@...e.cz>,
Evgenii Shatokhin <eshatokhin@...tuozzo.com>,
Jonathan Corbet <corbet@....net>,
Masahiro Yamada <masahiroy@...nel.org>,
Michal Marek <michal.lkml@...kovi.net>,
"H . J . Lu" <hjl.tools@...il.com>,
Nicolas Pitre <nico@...xnic.net>,
Nick Desaulniers <ndesaulniers@...gle.com>,
Herbert Xu <herbert@...dor.apana.org.au>,
"David S. Miller" <davem@...emloft.net>,
Thomas Gleixner <tglx@...utronix.de>,
Will Deacon <will@...nel.org>, Ingo Molnar <mingo@...hat.com>,
Borislav Petkov <bp@...en8.de>,
Dave Hansen <dave.hansen@...ux.intel.com>,
"H. Peter Anvin" <hpa@...or.com>,
Andy Lutomirski <luto@...nel.org>,
Arnd Bergmann <arnd@...db.de>,
Josh Poimboeuf <jpoimboe@...hat.com>,
Nathan Chancellor <nathan@...nel.org>,
Masami Hiramatsu <mhiramat@...nel.org>,
Marios Pomonis <pomonis@...gle.com>,
Sami Tolvanen <samitolvanen@...gle.com>,
linux-kernel@...r.kernel.org, linux-kbuild@...r.kernel.org,
linux-arch@...r.kernel.org, live-patching@...r.kernel.org,
llvm@...ts.linux.dev
Subject: Re: [PATCH v8 05/14] x86: conditionally place regular ASM functions into separate sections
From: Peter Zijlstra <peterz@...radead.org>
Date: Fri, 3 Dec 2021 10:44:10 +0100
> On Thu, Dec 02, 2021 at 11:32:05PM +0100, Alexander Lobakin wrote:
> > Use the newly introduces macros to create unique separate sections
> > for (almost) every "regular" ASM function (i.e. for those which
> > aren't explicitly put into a specific one).
> > There should be no leftovers as input .text will be size-asserted
> > in the LD script generated for FG-KASLR.
>
> *groan*...
>
> Please, can't we do something like:
>
> #define SYM_PUSH_SECTION(name) \
> .if section == .text \
> .push_section .text.##name \
> .else \
> .push_section .text \
> .endif
This condition
.pushsection .text
.if section == .text
# do something
.endif
.popsection
doesn't really works. `do something` doesn't happen.
This works only when
.pushsection .text
.equ section, .text
but it's not really okayish I'd say to find all .{,push}section
occurences and replace them with a macro (which would also do .equ).
I don't really know how %S with --sectname-subst should help me as
.if %S == .text
# do something
.endif
doesn't work at all (syntax error) -- and it shouldn't, %S is
supposed to work only inside .{,push}section directives.
I could do unconditional
.pushsection %S.##name
^^^^^^ function name
but this would involve changing LDS scripts (and vmlinux.lds.h) to
let's say replace *(.noinstr.text) with *(.noinstr.text*).
So I hope there is a way to get current section name? If not, then
the last option is the least harmful I suppose.
At least not as harmful as current approach with alternative macros,
far from it lol.
>
> #define SYM_POP_SECTION() \
> .pop_section
>
> and wrap that inside the existing SYM_FUNC_START*() SYM_FUNC_END()
> macros.
Thanks,
Al
Powered by blists - more mailing lists