Re: [RFC PATCH v3 20/20] x86: Add support for CONFIG_CFI_CLANG

From: Sami Tolvanen
Date: Mon Jul 25 2022 - 20:10:39 EST


On Sat, Jul 23, 2022 at 4:21 AM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>
> On Fri, Jun 10, 2022 at 04:35:13PM -0700, Sami Tolvanen wrote:
>
> > +#ifdef CONFIG_CFI_CLANG
> > +#define __CFI_TYPE(name) \
> > + .fill 7, 1, 0xCC ASM_NL \
> > + SYM_START(__cfi_##name, SYM_L_LOCAL, SYM_A_NONE) \
> > + int3 ASM_NL \
> > + int3 ASM_NL \
> > + mov __kcfi_typeid_##name, %eax ASM_NL \
> > + int3 ASM_NL \
> > + int3 ASM_NL \
> > + SYM_FUNC_END(__cfi_##name)
> > +#endif
>
> Like said on IRC yesterday, this doesn't generate the right mov
> encoding.
>
> .byte 0xb8 ; .long __kcfi_typeid_##name ; \
>
> works. Your LLVM tree already has the ZExt patch you gave me yesterday
> to fix up the linker fallout from this change.

Indeed, I updated my kernel tree and confirmed that this fixes the
issue. Thanks for pointing it out.

Sami