forked from Minki/linux
x86/alternatives: Add missing '\n' at end of ALTERNATIVE inline asm
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: 9cebed423c
("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
This commit is contained in:
parent
1e5476815f
commit
b9e705ef7c
@ -140,7 +140,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
|
|||||||
".popsection\n" \
|
".popsection\n" \
|
||||||
".pushsection .altinstr_replacement, \"ax\"\n" \
|
".pushsection .altinstr_replacement, \"ax\"\n" \
|
||||||
ALTINSTR_REPLACEMENT(newinstr, feature, 1) \
|
ALTINSTR_REPLACEMENT(newinstr, feature, 1) \
|
||||||
".popsection"
|
".popsection\n"
|
||||||
|
|
||||||
#define ALTERNATIVE_2(oldinstr, newinstr1, feature1, newinstr2, feature2)\
|
#define ALTERNATIVE_2(oldinstr, newinstr1, feature1, newinstr2, feature2)\
|
||||||
OLDINSTR_2(oldinstr, 1, 2) \
|
OLDINSTR_2(oldinstr, 1, 2) \
|
||||||
@ -151,7 +151,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
|
|||||||
".pushsection .altinstr_replacement, \"ax\"\n" \
|
".pushsection .altinstr_replacement, \"ax\"\n" \
|
||||||
ALTINSTR_REPLACEMENT(newinstr1, feature1, 1) \
|
ALTINSTR_REPLACEMENT(newinstr1, feature1, 1) \
|
||||||
ALTINSTR_REPLACEMENT(newinstr2, feature2, 2) \
|
ALTINSTR_REPLACEMENT(newinstr2, feature2, 2) \
|
||||||
".popsection"
|
".popsection\n"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Alternative instructions for different CPU types or capabilities.
|
* Alternative instructions for different CPU types or capabilities.
|
||||||
|
Loading…
Reference in New Issue
Block a user