Re: [PATCH] x86/vmlinux: Fix linker fill bytes for ld.lld

From: Song Liu
Date: Wed Sep 06 2023 - 16:03:31 EST


On Wed, Sep 6, 2023 at 12:58 PM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>
> On Wed, Sep 06, 2023 at 10:52:15AM -0700, Song Liu wrote:
> > With ":text =0xcccc", ld.lld fills unused text area with 0xcccc0000.
> > Example objdump -D output:
> >
> > ffffffff82b04203: 00 00 add %al,(%rax)
> > ffffffff82b04205: cc int3
> > ffffffff82b04206: cc int3
> > ffffffff82b04207: 00 00 add %al,(%rax)
> > ffffffff82b04209: cc int3
> > ffffffff82b0420a: cc int3
> >
> > Replace it with ":text =0xcccccccc", so we get the following instead:
> >
> > ffffffff82b04203: cc int3
> > ffffffff82b04204: cc int3
> > ffffffff82b04205: cc int3
> > ffffffff82b04206: cc int3
> > ffffffff82b04207: cc int3
> > ffffffff82b04208: cc int3
> >
> > gcc/ld doesn't seem to have the same issue. The generated code stays the
> > same for gcc/ld.
> >
> > Cc: Kees Cook <keescook@xxxxxxxxxxxx>
> > Cc: x86@xxxxxxxxxx
> > Signed-off-by: Song Liu <song@xxxxxxxxxx>
>
> Please provide a Fixes tag, I'm thinking this (otherwise trivial commit)
> wants to be backported for sanity.

I guess we need:

Fixes: 7705dc855797 ("x86/vmlinux: Use INT3 instead of NOP for linker
fill bytes")

Thanks,
Song

>
> Acked-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>