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>
This commit is contained in:

کامیت شده توسط
Alexei Starovoitov

والد
ab99e7a8f7
کامیت
f682752627
@@ -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;
|
||||
|
مرجع در شماره جدید
Block a user