]> git.baikalelectronics.ru Git - kernel.git/commit
x86/ibt: Suppress spurious ENDBR
authorPeter Zijlstra <peterz@infradead.org>
Wed, 2 Aug 2023 10:55:46 +0000 (12:55 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 23 Sep 2023 09:11:09 +0000 (11:11 +0200)
commite9b8e266105a6ef495ddc817b5d924c5915d8017
treecb992fd766ec6abdc3d3d0cffc2c833e3c0b2b9d
parent03425393f41ccbfd8831321317bfe6a6ded64bf3
x86/ibt: Suppress spurious ENDBR

[ Upstream commit 25e73b7e3f72a25aa30cbb2eecb49036e0acf066 ]

It was reported that under certain circumstances GCC emits ENDBR
instructions for _THIS_IP_ usage. Specifically, when it appears at the
start of a basic block -- but not elsewhere.

Since _THIS_IP_ is never used for control flow, these ENDBR
instructions are completely superfluous. Override the _THIS_IP_
definition for x86_64 to avoid this.

Less ENDBR instructions is better.

Fixes: 156ff4a544ae ("x86/ibt: Base IBT bits")
Reported-by: David Kaplan <David.Kaplan@amd.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20230802110323.016197440@infradead.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/x86/include/asm/linkage.h
include/linux/instruction_pointer.h