From: Stephen Rothwell <hidden> Date: 2021-03-22 03:38:39
Hi all,
After merging the tip tree, today's linux-next build (x86_64 allmodconfig)
failed like this:
arch/x86/net/bpf_jit_comp.c: In function 'arch_prepare_bpf_trampoline':
arch/x86/net/bpf_jit_comp.c:2015:16: error: 'ideal_nops' undeclared (first use in this function)
2015 | memcpy(prog, ideal_nops[NOP_ATOMIC5], X86_PATCH_SIZE);
| ^~~~~~~~~~
arch/x86/net/bpf_jit_comp.c:2015:16: note: each undeclared identifier is reported only once for each function it appears in
arch/x86/net/bpf_jit_comp.c:2015:27: error: 'NOP_ATOMIC5' undeclared (first use in this function); did you mean 'GFP_ATOMIC'?
2015 | memcpy(prog, ideal_nops[NOP_ATOMIC5], X86_PATCH_SIZE);
| ^~~~~~~~~~~
| GFP_ATOMIC
Caused by commit
a89dfde3dc3c ("x86: Remove dynamic NOP selection")
interacting with commit
b90829704780 ("bpf: Use NOP_ATOMIC5 instead of emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG")
from the net tree.
I have applied the following merge fix patch.
From: Stephen Rothwell <redacted>
Date: Mon, 22 Mar 2021 14:30:37 +1100
Subject: [PATCH] x86: fix up for "bpf: Use NOP_ATOMIC5 instead of
emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG"
Signed-off-by: Stephen Rothwell <redacted>
---
arch/x86/net/bpf_jit_comp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -2012,7 +2012,7 @@ int arch_prepare_bpf_trampoline(struct bpf_tramp_image *im, void *image, void *i/* remember return value in a stack for bpf prog to access */emit_stx(&prog,BPF_DW,BPF_REG_FP,BPF_REG_0,-8);im->ip_after_call=prog;-memcpy(prog,ideal_nops[NOP_ATOMIC5],X86_PATCH_SIZE);+memcpy(prog,x86_nops[5],X86_PATCH_SIZE);prog+=X86_PATCH_SIZE;}
On Mon, Mar 22, 2021 at 02:37:14PM +1100, Stephen Rothwell wrote:
quoted hunk
Hi all,
After merging the tip tree, today's linux-next build (x86_64 allmodconfig)
failed like this:
arch/x86/net/bpf_jit_comp.c: In function 'arch_prepare_bpf_trampoline':
arch/x86/net/bpf_jit_comp.c:2015:16: error: 'ideal_nops' undeclared (first use in this function)
2015 | memcpy(prog, ideal_nops[NOP_ATOMIC5], X86_PATCH_SIZE);
| ^~~~~~~~~~
arch/x86/net/bpf_jit_comp.c:2015:16: note: each undeclared identifier is reported only once for each function it appears in
arch/x86/net/bpf_jit_comp.c:2015:27: error: 'NOP_ATOMIC5' undeclared (first use in this function); did you mean 'GFP_ATOMIC'?
2015 | memcpy(prog, ideal_nops[NOP_ATOMIC5], X86_PATCH_SIZE);
| ^~~~~~~~~~~
| GFP_ATOMIC
Caused by commit
a89dfde3dc3c ("x86: Remove dynamic NOP selection")
interacting with commit
b90829704780 ("bpf: Use NOP_ATOMIC5 instead of emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG")
from the net tree.
I have applied the following merge fix patch.
From: Stephen Rothwell <redacted>
Date: Mon, 22 Mar 2021 14:30:37 +1100
Subject: [PATCH] x86: fix up for "bpf: Use NOP_ATOMIC5 instead of
emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG"
Signed-off-by: Stephen Rothwell <redacted>
---
arch/x86/net/bpf_jit_comp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -2012,7 +2012,7 @@ int arch_prepare_bpf_trampoline(struct bpf_tramp_image *im, void *image, void *i/* remember return value in a stack for bpf prog to access */emit_stx(&prog,BPF_DW,BPF_REG_FP,BPF_REG_0,-8);im->ip_after_call=prog;-memcpy(prog,ideal_nops[NOP_ATOMIC5],X86_PATCH_SIZE);+memcpy(prog,x86_nops[5],X86_PATCH_SIZE);prog+=X86_PATCH_SIZE;}
--
I guess we can do the same as with the hyperv tree - the folks who send the
respective branches to Linus in the next merge window should point to this patch
of yours which Linus can apply after merging the second branch in order.
Thx.
--
Regards/Gruss,
Boris.
SUSE Software Solutions Germany GmbH, GF: Felix Imendörffer, HRB 36809, AG Nürnberg
On Mon, Mar 22, 2021 at 4:39 AM Stephen Rothwell [off-list ref] wrote:
Hi all,
After merging the tip tree, today's linux-next build (x86_64 allmodconfig)
failed like this:
arch/x86/net/bpf_jit_comp.c: In function 'arch_prepare_bpf_trampoline':
arch/x86/net/bpf_jit_comp.c:2015:16: error: 'ideal_nops' undeclared (first use in this function)
2015 | memcpy(prog, ideal_nops[NOP_ATOMIC5], X86_PATCH_SIZE);
| ^~~~~~~~~~
arch/x86/net/bpf_jit_comp.c:2015:16: note: each undeclared identifier is reported only once for each function it appears in
arch/x86/net/bpf_jit_comp.c:2015:27: error: 'NOP_ATOMIC5' undeclared (first use in this function); did you mean 'GFP_ATOMIC'?
2015 | memcpy(prog, ideal_nops[NOP_ATOMIC5], X86_PATCH_SIZE);
| ^~~~~~~~~~~
| GFP_ATOMIC
Caused by commit
a89dfde3dc3c ("x86: Remove dynamic NOP selection")
interacting with commit
b90829704780 ("bpf: Use NOP_ATOMIC5 instead of emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG")
from the net tree.
I have applied the following merge fix patch.
From: Stephen Rothwell <redacted>
Date: Mon, 22 Mar 2021 14:30:37 +1100
Subject: [PATCH] x86: fix up for "bpf: Use NOP_ATOMIC5 instead of
emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG"
Signed-off-by: Stephen Rothwell <redacted>
@@ -2012,7 +2012,7 @@ int arch_prepare_bpf_trampoline(struct bpf_tramp_image *im, void *image, void *i/* remember return value in a stack for bpf prog to access */emit_stx(&prog,BPF_DW,BPF_REG_FP,BPF_REG_0,-8);im->ip_after_call=prog;-memcpy(prog,ideal_nops[NOP_ATOMIC5],X86_PATCH_SIZE);+memcpy(prog,x86_nops[5],X86_PATCH_SIZE);prog+=X86_PATCH_SIZE;}--
On Mon, Mar 22, 2021 at 10:02 AM Borislav Petkov [off-list ref] wrote:
On Mon, Mar 22, 2021 at 02:37:14PM +1100, Stephen Rothwell wrote:
quoted
Hi all,
After merging the tip tree, today's linux-next build (x86_64 allmodconfig)
failed like this:
arch/x86/net/bpf_jit_comp.c: In function 'arch_prepare_bpf_trampoline':
arch/x86/net/bpf_jit_comp.c:2015:16: error: 'ideal_nops' undeclared (first use in this function)
2015 | memcpy(prog, ideal_nops[NOP_ATOMIC5], X86_PATCH_SIZE);
| ^~~~~~~~~~
arch/x86/net/bpf_jit_comp.c:2015:16: note: each undeclared identifier is reported only once for each function it appears in
arch/x86/net/bpf_jit_comp.c:2015:27: error: 'NOP_ATOMIC5' undeclared (first use in this function); did you mean 'GFP_ATOMIC'?
2015 | memcpy(prog, ideal_nops[NOP_ATOMIC5], X86_PATCH_SIZE);
| ^~~~~~~~~~~
| GFP_ATOMIC
Caused by commit
a89dfde3dc3c ("x86: Remove dynamic NOP selection")
interacting with commit
b90829704780 ("bpf: Use NOP_ATOMIC5 instead of emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG")
from the net tree.
I have applied the following merge fix patch.
From: Stephen Rothwell <redacted>
Date: Mon, 22 Mar 2021 14:30:37 +1100
Subject: [PATCH] x86: fix up for "bpf: Use NOP_ATOMIC5 instead of
emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG"
Signed-off-by: Stephen Rothwell <redacted>
---
arch/x86/net/bpf_jit_comp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -2012,7 +2012,7 @@ int arch_prepare_bpf_trampoline(struct bpf_tramp_image *im, void *image, void *i/* remember return value in a stack for bpf prog to access */emit_stx(&prog,BPF_DW,BPF_REG_FP,BPF_REG_0,-8);im->ip_after_call=prog;-memcpy(prog,ideal_nops[NOP_ATOMIC5],X86_PATCH_SIZE);+memcpy(prog,x86_nops[5],X86_PATCH_SIZE);prog+=X86_PATCH_SIZE;}--
I guess we can do the same as with the hyperv tree - the folks who send the
respective branches to Linus in the next merge window should point to this patch
of yours which Linus can apply after merging the second branch in order.
Thx.
The commit b90829704780 "bpf: Use NOP_ATOMIC5 instead of
emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG" is now in Linus Git
(see [1]).
Where will Stephen's fixup-patch be carried?
Linux-next?
net-next?
<tip.git#x86/cpu>?
Thanks.
- Sedat -
[1] https://git.kernel.org/linus/b9082970478009b778aa9b22d5561eef35b53b63
On Fri, Mar 26, 2021 at 09:57:43AM +0100, Sedat Dilek wrote:
The commit b90829704780 "bpf: Use NOP_ATOMIC5 instead of
emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG" is now in Linus Git
(see [1]).
Where will Stephen's fixup-patch be carried?
Linux-next?
net-next?
<tip.git#x86/cpu>?
I guess we'll resolve it on our end and pick up sfr's patch, most
likely.
Thanks for letting me know.
--
Regards/Gruss,
Boris.
SUSE Software Solutions Germany GmbH, GF: Felix Imendörffer, HRB 36809, AG Nürnberg
On Fri, Mar 26, 2021 at 2:11 PM Borislav Petkov [off-list ref] wrote:
On Fri, Mar 26, 2021 at 09:57:43AM +0100, Sedat Dilek wrote:
quoted
The commit b90829704780 "bpf: Use NOP_ATOMIC5 instead of
emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG" is now in Linus Git
(see [1]).
Where will Stephen's fixup-patch be carried?
Linux-next?
net-next?
<tip.git#x86/cpu>?
I guess we'll resolve it on our end and pick up sfr's patch, most
likely.
Thanks for letting me know.
Sounds good to me.
So you need:
$ grep CONFIG_BPF_JIT= .config
1795:CONFIG_BPF_JIT=y
$ git grep CONFIG_BPF_JIT arch/x86/net/Makefile
arch/x86/net/Makefile: obj-$(CONFIG_BPF_JIT) += bpf_jit_comp32.o
arch/x86/net/Makefile: obj-$(CONFIG_BPF_JIT) += bpf_jit_comp.o
I wonder why Stephen's fixup-patch was not carried in recent
Linux-next releases.
Wild speculation - no random-config with x86(-64) plus CONFIG_BPF_JIT=y?
Anyway, I integrated Stephen's fixup-patch into my custom patchset.
$ git log --oneline --author="Stephen Rothwell" v5.12-rc4..
600417efac59 (for-5.12/x86-cpu-20210315-net-bpf-sfr) x86: fix up for
"bpf: Use NOP_ATOMIC5 instead of emit_nops(&prog, 5) for
BPF_TRAMP_F_CALL_ORIG"
Feel free to add my:
Tested-by: Sedat Dilek <redacted> # LLVM/Clang v12.0.0-rc3 (x86-64)
- Sedat -