diff options
author | Ivan Vecera <ivecera@redhat.com> | 2019-03-15 23:04:14 +0300 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2019-03-22 05:37:30 +0300 |
commit | f6827526279d75f0b1c1605b1bf560024bd7696f (patch) | |
tree | 917817cc87e4a43f3450a55df9e16bfa48de61a6 /tools/testing/selftests/bpf/urandom_read.c | |
parent | ab99e7a8f7fe190f8669e32d1b8732d18f42e249 (diff) | |
download | linux-f6827526279d75f0b1c1605b1bf560024bd7696f.tar.xz |
selftests: bpf: modify urandom_read and link it non-statically
After some experiences I found that urandom_read does not need to be
linked statically. When the 'read' syscall call is moved to separate
non-inlined function then bpf_get_stackid() is able to find
the executable in stack trace and extract its build_id from it.
Signed-off-by: Ivan Vecera <ivecera@redhat.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'tools/testing/selftests/bpf/urandom_read.c')
-rw-r--r-- | tools/testing/selftests/bpf/urandom_read.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/tools/testing/selftests/bpf/urandom_read.c b/tools/testing/selftests/bpf/urandom_read.c index 9de8b7cb4e6d..db781052758d 100644 --- a/tools/testing/selftests/bpf/urandom_read.c +++ b/tools/testing/selftests/bpf/urandom_read.c @@ -7,11 +7,19 @@ #define BUF_SIZE 256 +static __attribute__((noinline)) +void urandom_read(int fd, int count) +{ + char buf[BUF_SIZE]; + int i; + + for (i = 0; i < count; ++i) + read(fd, buf, BUF_SIZE); +} + int main(int argc, char *argv[]) { int fd = open("/dev/urandom", O_RDONLY); - int i; - char buf[BUF_SIZE]; int count = 4; if (fd < 0) @@ -20,8 +28,7 @@ int main(int argc, char *argv[]) if (argc == 2) count = atoi(argv[1]); - for (i = 0; i < count; ++i) - read(fd, buf, BUF_SIZE); + urandom_read(fd, count); close(fd); return 0; |