From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Matthias Kaehlcke <mka@chromium.org>
Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
Andrey Ryabinin <aryabinin@virtuozzo.com>,
Josh Poimboeuf <jpoimboe@redhat.com>,
Andy Lutomirski <luto@kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Peter Zijlstra <peterz@infradead.org>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@kernel.org>,
David Woodhouse <dwmw@amazon.co.ku>,
Razvan Ghitulete <rga@amazon.de>,
Guenter Roeck <groeck@chromium.org>,
Nick Desaulniers <ndesaulniers@google.com>,
Greg Hackmann <ghackmann@google.com>
Subject: Re: [PATCH 4.4 05/53] x86/asm: Use register variable to get stack pointer value
Date: Tue, 6 Feb 2018 14:52:43 -0800 [thread overview]
Message-ID: <20180206225243.GA7743@kroah.com> (raw)
In-Reply-To: <20180206224845.GA116483@google.com>
On Tue, Feb 06, 2018 at 02:48:45PM -0800, Matthias Kaehlcke wrote:
> El Tue, Feb 06, 2018 at 02:37:06PM -0800 Greg Kroah-Hartman ha dit:
>
> > On Tue, Feb 06, 2018 at 01:59:41PM -0800, Matthias Kaehlcke wrote:
> > > Hi Greg,
> > >
> > > El Mon, Jan 22, 2018 at 09:39:57AM +0100 Greg Kroah-Hartman ha dit:
> > >
> > > > 4.4-stable review patch. If anyone has any objections, please let me know.
> > > >
> > > > ------------------
> > > >
> > > > From: Andrey Ryabinin <aryabinin@virtuozzo.com>
> > > >
> > > > commit 196bd485ee4f03ce4c690bfcf38138abfcd0a4bc upstream.
> > > >
> > > > Currently we use current_stack_pointer() function to get the value
> > > > of the stack pointer register. Since commit:
> > > >
> > > > f5caf621ee35 ("x86/asm: Fix inline asm call constraints for Clang")
> > > >
> > > > ... we have a stack register variable declared. It can be used instead of
> > > > current_stack_pointer() function which allows to optimize away some
> > > > excessive "mov %rsp, %<dst>" instructions:
> > > >
> > > > -mov %rsp,%rdx
> > > > -sub %rdx,%rax
> > > > -cmp $0x3fff,%rax
> > > > -ja ffffffff810722fd <ist_begin_non_atomic+0x2d>
> > > >
> > > > +sub %rsp,%rax
> > > > +cmp $0x3fff,%rax
> > > > +ja ffffffff810722fa <ist_begin_non_atomic+0x2a>
> > > >
> > > > Remove current_stack_pointer(), rename __asm_call_sp to current_stack_pointer
> > > > and use it instead of the removed function.
> > > >
> > > > Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
> > > > Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
> > > > Cc: Andy Lutomirski <luto@kernel.org>
> > > > Cc: Linus Torvalds <torvalds@linux-foundation.org>
> > > > Cc: Peter Zijlstra <peterz@infradead.org>
> > > > Cc: Thomas Gleixner <tglx@linutronix.de>
> > > > Link: http://lkml.kernel.org/r/20170929141537.29167-1-aryabinin@virtuozzo.com
> > > > Signed-off-by: Ingo Molnar <mingo@kernel.org>
> > > > [dwmw2: We want ASM_CALL_CONSTRAINT for retpoline]
> > > > Signed-off-by: David Woodhouse <dwmw@amazon.co.ku>
> > > > Signed-off-by: Razvan Ghitulete <rga@amazon.de>
> > > > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > >
> > > We recently merged this patch to the Chrome OS kernel tree and it
> > > broke our x86 builds with clang:
> > >
> > > arch/x86/include/asm/asm.h:116:50: error: register 'rsp' unsuitable for global register variables on this target
> > > register unsigned long current_stack_pointer asm(_ASM_SP);
> > > ^
> > > arch/x86/include/asm/asm.h:41:18: note: expanded from macro '_ASM_SP'
> > > #define _ASM_SP __ASM_REG(sp)
> > > ^
> > > arch/x86/include/asm/asm.h:24:32: note: expanded from macro '__ASM_REG'
> > > #define __ASM_REG(reg) __ASM_SEL_RAW(e##reg, r##reg)
> > > ^
> > > arch/x86/include/asm/asm.h:19:29: note: expanded from macro '__ASM_SEL_RAW'
> > > # define __ASM_SEL_RAW(a,b) __ASM_FORM_RAW(b)
> > > ^
> > > arch/x86/include/asm/asm.h:10:32: note: expanded from macro '__ASM_FORM_RAW'
> > > # define __ASM_FORM_RAW(x) #x
> > > ^
> > > <scratch space>:4:1: note: expanded from here
> > > "rsp"
> > > ^
> > > 1 error generated.
> > >
> > >
> > > This can be fixed by also integrating the following patch:
> > >
> > > commit 520a13c530aeb5f63e011d668c42db1af19ed349
> > > Author: Josh Poimboeuf <jpoimboe@redhat.com>
> > > Date: Thu Sep 28 16:58:26 2017 -0500
> > >
> > > x86/asm: Fix inline asm call constraints for GCC 4.4
> > >
> > >
> > > Admittedly a v4.4 kernel built with clang + LTS merges is a very
> > > special case and we can fix this in Chrome OS by integrating the above
> > > patch locally. Still it would be good to get it into stable to avoid
> > > others from running into this, especially since the fix is very
> > > simple.
> > >
> > > Actually I just noticed that the patch also isn't in v4.9, which could
> > > extend the number of affected 'users' significantly, so I think we
> > > almost certainly want Josh's patch in stable.
> >
> > That patch doesn't apply cleanly to the 4.4.y or 4.9.y trees anymore.
> > It seems that only one hunk of it is really needed, the #ifndef change,
> > right? If so, I'll be glad to apply that portion.
>
> Indeed, only the #ifndef change is needed.
Great, thanks for verifying, now queued up.
greg k-h
next prev parent reply other threads:[~2018-02-06 22:52 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-22 8:39 [PATCH 4.4 00/53] 4.4.113-stable review Greg Kroah-Hartman
2018-01-22 8:39 ` [PATCH 4.4 01/53] gcov: disable for COMPILE_TEST Greg Kroah-Hartman
2018-01-22 8:39 ` [PATCH 4.4 02/53] x86/cpu/AMD: Make LFENCE a serializing instruction Greg Kroah-Hartman
2018-01-22 8:39 ` [PATCH 4.4 03/53] x86/cpu/AMD: Use LFENCE_RDTSC in preference to MFENCE_RDTSC Greg Kroah-Hartman
2018-01-22 8:39 ` [PATCH 4.4 04/53] x86/mm/32: Move setup_clear_cpu_cap(X86_FEATURE_PCID) earlier Greg Kroah-Hartman
2018-01-22 8:39 ` [PATCH 4.4 05/53] x86/asm: Use register variable to get stack pointer value Greg Kroah-Hartman
2018-02-06 21:59 ` Matthias Kaehlcke
2018-02-06 22:37 ` Greg Kroah-Hartman
2018-02-06 22:48 ` Matthias Kaehlcke
2018-02-06 22:52 ` Greg Kroah-Hartman [this message]
2018-01-22 8:39 ` [PATCH 4.4 06/53] x86/kbuild: enable modversions for symbols exported from asm Greg Kroah-Hartman
2018-01-22 8:39 ` [PATCH 4.4 07/53] x86/asm: Make asm/alternative.h safe from assembly Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 08/53] EXPORT_SYMBOL() for asm Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 09/53] kconfig.h: use __is_defined() to check if MODULE is defined Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 10/53] x86/retpoline: Add initial retpoline support Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 11/53] x86/spectre: Add boot time option to select Spectre v2 mitigation Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 12/53] x86/retpoline/crypto: Convert crypto assembler indirect jumps Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 13/53] x86/retpoline/entry: Convert entry " Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 14/53] x86/retpoline/ftrace: Convert ftrace " Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 15/53] x86/retpoline/hyperv: Convert " Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 16/53] x86/retpoline/xen: Convert Xen hypercall " Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 17/53] x86/retpoline/checksum32: Convert assembler " Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 18/53] x86/retpoline/irq32: " Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 19/53] x86/retpoline: Fill return stack buffer on vmexit Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 20/53] x86/retpoline: Remove compile time warning Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 21/53] scsi: sg: disable SET_FORCE_LOW_DMA Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 22/53] futex: Prevent overflow by strengthen input validation Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 23/53] ALSA: pcm: Remove yet superfluous WARN_ON() Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 24/53] ALSA: hda - Apply headphone noise quirk for another Dell XPS 13 variant Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 25/53] ALSA: hda - Apply the existing quirk to iMac 14,1 Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 26/53] af_key: fix buffer overread in verify_address_len() Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 27/53] af_key: fix buffer overread in parse_exthdrs() Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 28/53] scsi: hpsa: fix volume offline state Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 29/53] sched/deadline: Zero out positive runtime after throttling constrained tasks Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 30/53] x86/retpoline: Add LFENCE to the retpoline/RSB filling RSB macros Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 31/53] module: Add retpoline tag to VERMAGIC Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 32/53] pipe: avoid round_pipe_size() nr_pages overflow on 32-bit Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 33/53] x86/apic/vector: Fix off by one in error path Greg Kroah-Hartman
2018-02-16 20:57 ` Ben Hutchings
2018-02-17 13:34 ` Thomas Gleixner
2018-02-28 16:49 ` Thomas Gleixner
2018-01-22 8:40 ` [PATCH 4.4 34/53] Input: 88pm860x-ts - fix child-node lookup Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 35/53] Input: twl6040-vibra - fix DT node memory management Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 36/53] Input: twl6040-vibra - fix child-node lookup Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 37/53] Input: twl4030-vibra - fix sibling-node lookup Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 38/53] tracing: Fix converting enums from the map in trace_event_eval_update() Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 39/53] phy: work around phys references to usb-nop-xceiv devices Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 40/53] ARM: dts: kirkwood: fix pin-muxing of MPP7 on OpenBlocks A7 Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 41/53] can: peak: fix potential bug in packet fragmentation Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 42/53] libata: apply MAX_SEC_1024 to all LITEON EP1 series devices Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 43/53] dm btree: fix serious bug in btree_split_beneath() Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 44/53] dm thin metadata: THIN_MAX_CONCURRENT_LOCKS should be 6 Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 45/53] arm64: KVM: Fix SMCCC handling of unimplemented SMC/HVC calls Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 46/53] x86/cpu, x86/pti: Do not enable PTI on AMD processors Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 47/53] kbuild: modversions for EXPORT_SYMBOL() for asm Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 48/53] x86/mce: Make machine check speculation protected Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 49/53] retpoline: Introduce start/end markers of indirect thunk Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 50/53] kprobes/x86: Blacklist indirect thunk functions for kprobes Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 51/53] kprobes/x86: Disable optimizing on the function jumps to indirect thunk Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 52/53] x86/pti: Document fix wrong index Greg Kroah-Hartman
2018-01-22 8:40 ` [PATCH 4.4 53/53] x86/retpoline: Optimize inline assembler for vmexit_fill_RSB Greg Kroah-Hartman
2018-01-22 13:09 ` [PATCH 4.4 00/53] 4.4.113-stable review Nathan Chancellor
2018-01-22 14:20 ` Greg Kroah-Hartman
2018-01-22 19:08 ` Guenter Roeck
2018-01-22 19:49 ` Naresh Kamboju
2018-01-23 6:39 ` Greg Kroah-Hartman
2018-01-23 6:55 ` Sumit Semwal
2018-01-22 20:07 ` Shuah Khan
2018-01-23 6:37 ` Greg Kroah-Hartman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180206225243.GA7743@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=aryabinin@virtuozzo.com \
--cc=dwmw@amazon.co.ku \
--cc=ghackmann@google.com \
--cc=groeck@chromium.org \
--cc=jpoimboe@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mingo@kernel.org \
--cc=mka@chromium.org \
--cc=ndesaulniers@google.com \
--cc=peterz@infradead.org \
--cc=rga@amazon.de \
--cc=stable@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).