Skip to content

Commit efdc152

Browse files
iii-ikernel-patches-bot
authored andcommitted
s390 uses socketcall multiplexer instead of individual socket syscalls.
Therefore, "kprobe/" SYSCALL(sys_connect) does not trigger and test_map_in_map fails. Fix by using "kprobe/__sys_connect" instead. Signed-off-by: Ilya Leoshkevich <[email protected]> --- Previous discussion: https://lore.kernel.org/bpf/[email protected] samples/bpf/test_map_in_map_kern.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
1 parent 56a99b2 commit efdc152

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

samples/bpf/test_map_in_map_kern.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,19 +103,18 @@ static __always_inline int do_inline_hash_lookup(void *inner_map, u32 port)
103103
return result ? *result : -ENOENT;
104104
}
105105

106-
SEC("kprobe/" SYSCALL(sys_connect))
106+
SEC("kprobe/__sys_connect")
107107
int trace_sys_connect(struct pt_regs *ctx)
108108
{
109-
struct pt_regs *real_regs = (struct pt_regs *)PT_REGS_PARM1_CORE(ctx);
110109
struct sockaddr_in6 *in6;
111110
u16 test_case, port, dst6[8];
112111
int addrlen, ret, inline_ret, ret_key = 0;
113112
u32 port_key;
114113
void *outer_map, *inner_map;
115114
bool inline_hash = false;
116115

117-
in6 = (struct sockaddr_in6 *)PT_REGS_PARM2_CORE(real_regs);
118-
addrlen = (int)PT_REGS_PARM3_CORE(real_regs);
116+
in6 = (struct sockaddr_in6 *)PT_REGS_PARM2_CORE(ctx);
117+
addrlen = (int)PT_REGS_PARM3_CORE(ctx);
119118

120119
if (addrlen != sizeof(*in6))
121120
return 0;

0 commit comments

Comments
 (0)