All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] powerpc/bpf: fix write protecting JIT code
@ 2021-10-25  5:56 ` Hari Bathini
  0 siblings, 0 replies; 16+ messages in thread
From: Hari Bathini @ 2021-10-25  5:56 UTC (permalink / raw)
  To: naveen.n.rao, jniethe5, christophe.leroy, mpe, ast, daniel
  Cc: paulus, andrii, kafai, songliubraving, yhs, john.fastabend,
	kpsingh, netdev, bpf, linuxppc-dev, Hari Bathini, stable

Running program with bpf-to-bpf function calls results in data access
exception (0x300) with the below call trace:

    [c000000000113f28] bpf_int_jit_compile+0x238/0x750 (unreliable)
    [c00000000037d2f8] bpf_check+0x2008/0x2710
    [c000000000360050] bpf_prog_load+0xb00/0x13a0
    [c000000000361d94] __sys_bpf+0x6f4/0x27c0
    [c000000000363f0c] sys_bpf+0x2c/0x40
    [c000000000032434] system_call_exception+0x164/0x330
    [c00000000000c1e8] system_call_vectored_common+0xe8/0x278

as bpf_int_jit_compile() tries writing to write protected JIT code
location during the extra pass.

Fix it by holding off write protection of JIT code until the extra
pass, where branch target addresses fixup happens.

Cc: stable@vger.kernel.org
Fixes: 62e3d4210ac9 ("powerpc/bpf: Write protect JIT code")
Signed-off-by: Hari Bathini <hbathini@linux.ibm.com>
---
 arch/powerpc/net/bpf_jit_comp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/net/bpf_jit_comp.c b/arch/powerpc/net/bpf_jit_comp.c
index fcbf7a917c56..90ce75f0f1e2 100644
--- a/arch/powerpc/net/bpf_jit_comp.c
+++ b/arch/powerpc/net/bpf_jit_comp.c
@@ -241,8 +241,8 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *fp)
 	fp->jited_len = alloclen;
 
 	bpf_flush_icache(bpf_hdr, (u8 *)bpf_hdr + (bpf_hdr->pages * PAGE_SIZE));
-	bpf_jit_binary_lock_ro(bpf_hdr);
 	if (!fp->is_func || extra_pass) {
+		bpf_jit_binary_lock_ro(bpf_hdr);
 		bpf_prog_fill_jited_linfo(fp, addrs);
 out_addrs:
 		kfree(addrs);
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2021-11-02 17:35 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-10-25  5:56 [PATCH] powerpc/bpf: fix write protecting JIT code Hari Bathini
2021-10-25  5:56 ` Hari Bathini
2021-10-25  6:15 ` Naveen N. Rao
2021-10-25  6:15   ` Naveen N. Rao
2021-10-25 22:54   ` Daniel Borkmann
2021-10-25 22:54     ` Daniel Borkmann
2021-10-29  1:50     ` Michael Ellerman
2021-10-29  1:50       ` Michael Ellerman
2021-11-02 11:59       ` Naveen N. Rao
2021-11-02 11:59         ` Naveen N. Rao
2021-11-02 13:48         ` Michael Ellerman
2021-11-02 13:48           ` Michael Ellerman
2021-11-02 17:34           ` Andrii Nakryiko
2021-11-02 17:34             ` Andrii Nakryiko
2021-11-02 10:12 ` Michael Ellerman
2021-11-02 10:12   ` Michael Ellerman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.