Message ID | 20190815121356.8848-4-ivan.khoronzhuk@linaro.org |
---|---|
State | Accepted |
Delegated to: | BPF Maintainers |
Headers | show |
Series | xdpsock: allow mmap2 usage for 32bits | expand |
On 15 Aug 2019, at 5:13, Ivan Khoronzhuk wrote: > 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> > --- > samples/bpf/syscall_nrs.c | 6 ++++++ > samples/bpf/tracex5_kern.c | 13 +++++++++++++ > 2 files changed, 19 insertions(+) > > diff --git a/samples/bpf/syscall_nrs.c b/samples/bpf/syscall_nrs.c > index 516e255cbe8f..88f940052450 100644 > --- a/samples/bpf/syscall_nrs.c > +++ b/samples/bpf/syscall_nrs.c > @@ -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 > + > } > diff --git a/samples/bpf/tracex5_kern.c b/samples/bpf/tracex5_kern.c > index f57f4e1ea1ec..35cb0eed3be5 100644 > --- a/samples/bpf/tracex5_kern.c > +++ b/samples/bpf/tracex5_kern.c > @@ -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; > -- > 2.17.1
diff --git a/samples/bpf/syscall_nrs.c b/samples/bpf/syscall_nrs.c index 516e255cbe8f..88f940052450 100644 --- a/samples/bpf/syscall_nrs.c +++ b/samples/bpf/syscall_nrs.c @@ -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 + } diff --git a/samples/bpf/tracex5_kern.c b/samples/bpf/tracex5_kern.c index f57f4e1ea1ec..35cb0eed3be5 100644 --- a/samples/bpf/tracex5_kern.c +++ b/samples/bpf/tracex5_kern.c @@ -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;
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> --- samples/bpf/syscall_nrs.c | 6 ++++++ samples/bpf/tracex5_kern.c | 13 +++++++++++++ 2 files changed, 19 insertions(+)