From f1e9abe761959c69e900eed09e64d12ff48d86d9 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 5 May 2018 10:59:03 +0200 Subject: [PATCH 1/2] tools: Use architecture-agnostic PT_REGS_RC --- tools/old/bashreadline.py | 2 +- tools/old/tcpaccept.py | 2 +- tools/old/tcpconnect.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/old/bashreadline.py b/tools/old/bashreadline.py index 464dfda7fae9..571b6626c7e9 100755 --- a/tools/old/bashreadline.py +++ b/tools/old/bashreadline.py @@ -22,7 +22,7 @@ return 0; char str[80] = {}; - bpf_probe_read(&str, sizeof(str), (void *)ctx->ax); + bpf_probe_read(&str, sizeof(str), (void *)PT_REGS_RC(ctx)); bpf_trace_printk("%s\\n", &str); return 0; diff --git a/tools/old/tcpaccept.py b/tools/old/tcpaccept.py index 2fda8a78e1be..8125eaa3579c 100755 --- a/tools/old/tcpaccept.py +++ b/tools/old/tcpaccept.py @@ -47,7 +47,7 @@ int kretprobe__inet_csk_accept(struct pt_regs *ctx) { - struct sock *newsk = (struct sock *)ctx->ax; + struct sock *newsk = (struct sock *)PT_REGS_RC(ctx); u32 pid = bpf_get_current_pid_tgid(); if (newsk == NULL) diff --git a/tools/old/tcpconnect.py b/tools/old/tcpconnect.py index 2fb53073e77f..ed3b764d317c 100755 --- a/tools/old/tcpconnect.py +++ b/tools/old/tcpconnect.py @@ -55,7 +55,7 @@ static int trace_connect_return(struct pt_regs *ctx, short ipver) { - int ret = ctx->ax; + int ret = PT_REGS_RC(ctx); u32 pid = bpf_get_current_pid_tgid(); struct sock **skpp; From a1140168c6cb508f5265c9c9ac702032334d7bb5 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Sat, 5 May 2018 10:59:24 +0200 Subject: [PATCH 2/2] tcpconnect: Remove unnecessary bpf_probe_read calls --- tools/old/tcpconnect.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/tools/old/tcpconnect.py b/tools/old/tcpconnect.py index ed3b764d317c..579a85f917e5 100755 --- a/tools/old/tcpconnect.py +++ b/tools/old/tcpconnect.py @@ -75,12 +75,10 @@ struct sock *skp = *skpp; u32 saddr = 0, daddr = 0; u16 dport = 0; - bpf_probe_read(&dport, sizeof(dport), &skp->__sk_common.skc_dport); + dport = skp->__sk_common.skc_dport; if (ipver == 4) { - bpf_probe_read(&saddr, sizeof(saddr), - &skp->__sk_common.skc_rcv_saddr); - bpf_probe_read(&daddr, sizeof(daddr), - &skp->__sk_common.skc_daddr); + saddr = skp->__sk_common.skc_rcv_saddr; + daddr = skp->__sk_common.skc_daddr; // output bpf_trace_printk("4 %x %x %d\\n", saddr, daddr, ntohs(dport));