| From b9e705ef7cfaf22db0daab91ad3cd33b0fa32eb9 Mon Sep 17 00:00:00 2001 |
| From: David Woodhouse <dwmw@amazon.co.uk> |
| Date: Thu, 4 Jan 2018 14:37:05 +0000 |
| Subject: x86/alternatives: Add missing '\n' at end of ALTERNATIVE inline asm |
| |
| From: David Woodhouse <dwmw@amazon.co.uk> |
| |
| commit b9e705ef7cfaf22db0daab91ad3cd33b0fa32eb9 upstream. |
| |
| Where an ALTERNATIVE is used in the middle of an inline asm block, this |
| would otherwise lead to the following instruction being appended directly |
| to the trailing ".popsection", and a failed compile. |
| |
| Fixes: 9cebed423c84 ("x86, alternative: Use .pushsection/.popsection") |
| Signed-off-by: David Woodhouse <dwmw@amazon.co.uk> |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| Cc: gnomes@lxorguk.ukuu.org.uk |
| Cc: Rik van Riel <riel@redhat.com> |
| Cc: ak@linux.intel.com |
| Cc: Tim Chen <tim.c.chen@linux.intel.com> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Cc: Paul Turner <pjt@google.com> |
| Cc: Jiri Kosina <jikos@kernel.org> |
| Cc: Andy Lutomirski <luto@amacapital.net> |
| Cc: Dave Hansen <dave.hansen@intel.com> |
| Cc: Kees Cook <keescook@google.com> |
| Cc: Linus Torvalds <torvalds@linux-foundation.org> |
| Cc: Greg Kroah-Hartman <gregkh@linux-foundation.org> |
| Cc: stable@vger.kernel.org |
| Link: https://lkml.kernel.org/r/20180104143710.8961-8-dwmw@amazon.co.uk |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/x86/include/asm/alternative.h | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/arch/x86/include/asm/alternative.h |
| +++ b/arch/x86/include/asm/alternative.h |
| @@ -139,7 +139,7 @@ static inline int alternatives_text_rese |
| ".popsection\n" \ |
| ".pushsection .altinstr_replacement, \"ax\"\n" \ |
| ALTINSTR_REPLACEMENT(newinstr, feature, 1) \ |
| - ".popsection" |
| + ".popsection\n" |
| |
| #define ALTERNATIVE_2(oldinstr, newinstr1, feature1, newinstr2, feature2)\ |
| OLDINSTR_2(oldinstr, 1, 2) \ |
| @@ -150,7 +150,7 @@ static inline int alternatives_text_rese |
| ".pushsection .altinstr_replacement, \"ax\"\n" \ |
| ALTINSTR_REPLACEMENT(newinstr1, feature1, 1) \ |
| ALTINSTR_REPLACEMENT(newinstr2, feature2, 2) \ |
| - ".popsection" |
| + ".popsection\n" |
| |
| /* |
| * Alternative instructions for different CPU types or capabilities. |