[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.21.1903272337250.1789@nanos.tec.linutronix.de>
Date: Wed, 27 Mar 2019 23:50:37 +0100 (CET)
From: Thomas Gleixner <tglx@...utronix.de>
To: Andi Kleen <ak@...ux.intel.com>
cc: Andi Kleen <andi@...stfloor.org>, x86@...nel.org,
Andrew Morton <akpm@...ux-foundation.org>,
LKML <linux-kernel@...r.kernel.org>,
Josh Poimboeuf <jpoimboe@...hat.com>
Subject: Re: [PATCH 02/17] x86, lto: Mark all top level asm statements as
.text
On Wed, 27 Mar 2019, Andi Kleen wrote:
> > > I checked the code general and with the .globl in NATIVE_LABEL the
> >
> > With or without? I removed that as well.
>
> With.
>
> LTO would still need the .globls because the variable and the asm
> statement can end up in different assembler files, and resolution
> would rely on the linker.
This really sucks. As this is a constant source of trouble, we might better
bite the bullet and get rid of this fancy macro completely. It's not that
we add these patch patterns every other day.
So a good old:
/* xor %eax %ex */
static const unsigend char patch_qspinlock[] = { 0x31, 0xc0 };
and then in the patch code:
return paravirt_patch_insns(ibuf, len, patch_qspinlock,
patch_qspinlock + ARRAY_SIZE(patch_qspinlock));
might be less trouble than dealing with that clever inline assembly
forever.
Thanks,
tglx
Powered by blists - more mailing lists