[BUG] powerpc: test_progs -t for_each faults kernel

Jiri Olsa jolsa at redhat.com
Mon Jan 3 09:07:39 AEDT 2022


hi,
when running 'test_progs -t for_each' on powerpc we are getting
the fault below

it seems that for some reason the function callback address passed
to bpf_for_each_array_elem is wrong.. I wonder it's the powerpc
function pointers magic ;-)

it's the latest bpf-next/master, I can send .config if needed

thanks,
jirka


---
[  114.362271] kernel tried to execute user page (100000000) - exploit attempt? (uid: 0)
[  114.362284] BUG: Unable to handle kernel instruction fetch
[  114.362288] Faulting instruction address: 0x100000000
[  114.362294] Oops: Kernel access of bad area, sig: 11 [#1]
[  114.362299] LE PAGE_SIZE=64K MMU=Hash SMP NR_CPUS=2048 NUMA pSeries
[  114.362309] Modules linked in: bpf_testmod(OE) bonding tls rfkill pseries_rng ibmveth crct10dif_vpmsum drm fuse i2c_core drm_panel_orientation_quirks zram ip_tables ibmvscsi scsi_transport_srp vmx_crypto crc32c_vpmsum
[  114.362339] CPU: 5 PID: 935 Comm: test_progs Tainted: G           OE     5.16.0-rc7+ #3
[  114.362345] NIP:  0000000100000000 LR: c000000000378a24 CTR: 0000000100000001
[  114.362350] REGS: c000000015ef36e0 TRAP: 0400   Tainted: G           OE      (5.16.0-rc7+)
[  114.362355] MSR:  800000004280b033 <SF,VEC,VSX,EE,FP,ME,IR,DR,RI,LE>  CR: 88008248  XER: 20040000
[  114.362371] CFAR: c000000000378a20 IRQMASK: 0 
               GPR00: c0000000003789bc c000000015ef3980 c000000002890900 c00000000cbb0200 
               GPR04: c000000015ef39ec c00000000cbb0310 c000000015ef3a48 0000000000000000 
               GPR08: 00000001fd9a0000 0000000000000003 0000000000000000 0000000000002000 
               GPR12: 0000000100000001 c00000001ecab080 0000000000000000 0000000000000000 
               GPR16: 0000000000000000 0000000000000000 0000000000000000 c000000017a48400 
               GPR20: 0000000000000001 0000000000000000 c000000015ef3ac0 c000000015ef3b7c 
               GPR24: c000000015ef3b78 c008000002e40000 c008000002e40048 c000000015ef3a48 
               GPR28: c00000000cbb0310 0000000100000001 c00000000cbb0200 0000000000000001 
[  114.362431] NIP [0000000100000000] 0x100000000
[  114.362436] LR [c000000000378a24] bpf_for_each_array_elem+0xc4/0x1c0
[  114.362443] Call Trace:
[  114.362445] [c000000015ef3980] [c0000000003789bc] bpf_for_each_array_elem+0x5c/0x1c0 (unreliable)
[  114.362454] [c000000015ef3a20] [c0080000032267dc] bpf_prog_21bfb2cd0ec79d94_F+0xac/0x98d0
[  114.362461] [c000000015ef3a90] [c000000000f54308] bpf_test_run+0x208/0x420
[  114.362469] [c000000015ef3b50] [c000000000f551b8] bpf_prog_test_run_skb+0x368/0x7a0
[  114.362478] [c000000015ef3bf0] [c00000000034bf40] __sys_bpf+0xc20/0x2e20
[  114.362486] [c000000015ef3d90] [c00000000034e1dc] sys_bpf+0x2c/0x40
[  114.362495] [c000000015ef3db0] [c00000000002d478] system_call_exception+0x188/0x360
[  114.362505] [c000000015ef3e10] [c00000000000bfe8] system_call_vectored_common+0xe8/0x278
[  114.362514] --- interrupt: 3000 at 0x7fff813dc9fc
[  114.362520] NIP:  00007fff813dc9fc LR: 0000000000000000 CTR: 0000000000000000
[  114.362526] REGS: c000000015ef3e80 TRAP: 3000   Tainted: G           OE      (5.16.0-rc7+)
[  114.362532] MSR:  800000000280f033 <SF,VEC,VSX,EE,PR,FP,ME,IR,DR,RI,LE>  CR: 48002848  XER: 00000000
[  114.362552] IRQMASK: 0 
               GPR00: 0000000000000169 00007fffe3429c10 00007fff814e6f00 000000000000000a 
               GPR04: 00007fffe3429cb8 0000000000000090 0000000000000000 0000000000000008 
               GPR08: 000000000000000a 0000000000000000 0000000000000000 0000000000000000 
               GPR12: 0000000000000000 00007fff8164b7d0 0000000000000000 0000000000000000 
               GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 
               GPR20: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 
               GPR24: 00000000101baa4c 00007fffe342a520 000000001056f5d8 00007fff8163eb68 
               GPR28: 00007fffe342a6a8 00007fffe342a4f8 0000000000000004 00007fffe3429c10 
[  114.362626] NIP [00007fff813dc9fc] 0x7fff813dc9fc
[  114.362631] LR [0000000000000000] 0x0
[  114.362636] --- interrupt: 3000
[  114.362640] Instruction dump:
[  114.362646] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 
[  114.362661] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 
[  114.362675] ---[ end trace c044e1b381f36402 ]---



More information about the Linuxppc-dev mailing list