Re: [RFC PATCH v3 23/37] bpf tools: Introduce bpf_load_program() to bpf.c

Arnaldo Carvalho de Melo
2015-05-18T20:37:50Z

Em Mon, May 18, 2015 at 11:52:59AM -0700, Alexei Starovoitov escreveu:
> On 5/17/15 3:56 AM, Wang Nan wrote:
> >bpf_load_program() can be used to load bpf program into kernel. To make
> >loading faster, first try to load without logbuf. Try again with logbuf
> >if the first try failed.
> >
> >Signed-off-by: Wang Nan <wangnan0@huawei.com>
> ...
> >+ attr.insn_cnt = (__u32)insns_cnt;
> >+ attr.insns = ptr_to_u64((void *) insns);
> >+ attr.license = ptr_to_u64((void *) license);
>
> unnecessary casts?

And inconsistent at that, we don't need a space before the casted
variable.

> >+ attr.log_buf = ptr_to_u64(NULL);
> >+ attr.log_size = 0;
> >+ attr.log_level = 0;
> >+ attr.kern_version = kern_version;
> >+
> >+ fd = sys_bpf(BPF_PROG_LOAD, &attr, sizeof(attr));
> >+ if ((fd >= 0) || !log_buf || !log_buf_sz)
>
> unnecessary ()
>
> >+ return fd;
> >+
> >+ /* Try again with log */
> >+ attr.log_buf = ptr_to_u64(log_buf);
> >+ attr.log_size = log_buf_sz;
> >+ attr.log_level = 1;
> >+ log_buf[0] = 0;
> >+ return sys_bpf(BPF_PROG_LOAD, &attr, sizeof(attr));
>
> this part looks good. thank you for addressing the feedback from v1.