Thread (26 messages) flat view 26 messages, 5 authors, 2021-03-17

Re: [PATCH v23 6/9] x86/entry: Introduce ENDBR macro

From: Yu, Yu-cheng <hidden>
Date: 2021-03-16 20:27:42
Also in: linux-arch, linux-doc, linux-mm, lkml

On 3/16/2021 1:15 PM, Peter Zijlstra wrote:
On Tue, Mar 16, 2021 at 01:05:30PM -0700, Yu, Yu-cheng wrote:
quoted
On 3/16/2021 12:57 PM, Peter Zijlstra wrote:
quoted
On Tue, Mar 16, 2021 at 10:12:39AM -0700, Yu, Yu-cheng wrote:
quoted
Alternatively, there is another compiler-defined macro _CET_ENDBR that can
be used.  We can put the following in calling.h:

#ifdef __CET__
#include <cet.h>
#else
#define _CET_ENDBR
#endif

and then use _CET_ENDBR in other files.  How is that?

In the future, in case we have kernel-mode IBT, ENDBR macros are also needed
for other assembly files.
Can we please call it IBT_ENDBR or just ENDBR. CET is a horrible name,
seeing how it is not specific.
_CET_ENDBR is from the compiler and we cannot change it.  We can do:

#define ENDBR _CET_ENDBR

How is that?
Do we really want to include compiler headers? AFAICT it's not a
built-in. Also what about clang?

This thing seems trivial enough to build our own, it's a single damn
instruction. That also means we don't have to worry about changes to
header files we don't control.
Then, what about moving what I had earlier to vdso.h?
If we don't want __i386__ either, then make it two macros.

+.macro ENDBR
+#ifdef CONFIG_X86_CET
+#ifdef __i386__
+	endbr32
+#else
+	endbr64
+#endif
+#endif
+.endm
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help