samples: bpf: syscall_nrs: use mmap2 if defined
authorIvan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Thu, 15 Aug 2019 12:13:56 +0000 (15:13 +0300)
committerDaniel Borkmann <daniel@iogearbox.net>
Wed, 21 Aug 2019 12:31:38 +0000 (14:31 +0200)
For arm32 xdp sockets mmap2 is preferred, so use it if it's defined.
Declaration of __NR_mmap can be skipped and it breaks build.

Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Acked-by: Jonathan Lemon <jonathan.lemon@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
samples/bpf/syscall_nrs.c
samples/bpf/tracex5_kern.c

index 516e255cbe8fe2f5ac67b34317bbbadfd69d1535..88f9400524509d85122967d694e142257abab315 100644 (file)
@@ -9,5 +9,11 @@ void syscall_defines(void)
        COMMENT("Linux system call numbers.");
        SYSNR(__NR_write);
        SYSNR(__NR_read);
+#ifdef __NR_mmap2
+       SYSNR(__NR_mmap2);
+#endif
+#ifdef __NR_mmap
        SYSNR(__NR_mmap);
+#endif
+
 }
index f57f4e1ea1ec3c97d4c9f405349e6c514b6bfaee..35cb0eed3be591c810235e1f6f623827f70097d1 100644 (file)
@@ -68,12 +68,25 @@ PROG(SYS__NR_read)(struct pt_regs *ctx)
        return 0;
 }
 
+#ifdef __NR_mmap2
+PROG(SYS__NR_mmap2)(struct pt_regs *ctx)
+{
+       char fmt[] = "mmap2\n";
+
+       bpf_trace_printk(fmt, sizeof(fmt));
+       return 0;
+}
+#endif
+
+#ifdef __NR_mmap
 PROG(SYS__NR_mmap)(struct pt_regs *ctx)
 {
        char fmt[] = "mmap\n";
+
        bpf_trace_printk(fmt, sizeof(fmt));
        return 0;
 }
+#endif
 
 char _license[] SEC("license") = "GPL";
 u32 _version SEC("version") = LINUX_VERSION_CODE;