diff --git a/tools/lib/bpf/bpf.c b/tools/lib/bpf/bpf.c index 13e08c0d8b1a3084bb64f4c71c1b78e0d7aadbeb..fa6dbd5aec3dc007a2a000dbf9a771082dfebb86 100644 --- a/tools/lib/bpf/bpf.c +++ b/tools/lib/bpf/bpf.c @@ -67,11 +67,12 @@ static inline int sys_bpf(enum bpf_cmd cmd, union bpf_attr *attr, static inline int sys_bpf_prog_load(union bpf_attr *attr, unsigned int size) { + int retries = 5; int fd; do { fd = sys_bpf(BPF_PROG_LOAD, attr, size); - } while (fd < 0 && errno == EAGAIN); + } while (fd < 0 && errno == EAGAIN && retries-- > 0); return fd; }