Re: [PATCH v2 net-next 1/2] bpf: allow extended BPF programs access skb fields

From: Alexei Starovoitov
Date: Sat Mar 14 2015 - 11:55:25 EST


On 3/14/15 2:35 AM, Daniel Borkmann wrote:
On 03/14/2015 05:59 AM, Alexei Starovoitov wrote:
also note that this case and twsk_build_assert are different.
twsk_build_assert has no other choice then to have one function
that covers logic in the whole file, whereas in this patch:
+ BUILD_BUG_ON(FIELD_SIZEOF(struct sk_buff, mark) != 4);
+ *insn++ = BPF_LDX_MEM(BPF_W, dst_reg, src_reg,
+ offsetof(struct sk_buff, mark));

the build_bug_on protect the line directly below.
Separating them just doesn't make sense at all.

I also like the above approach better, I only suggested that as a
possible alternative since you were saying earlier in this thread:

I thought about it, but didn't add it, since we already have them
in the same file several lines above this spot. I think one build
error per .c file should be enough to attract attention. Though
I'll add a comment to convert_bpf_extensions() that build_bug_on
errors should be addressed in two places.

and to that you replied:
"My concern would be that in case the code gets changed, this spot
could easily be overlooked by someone possibly unfamiliar with the
code, since no build error triggers there."

so from there I saw two options: either copy paste all
build_bug_on and have the same *insn=... and build_bug_on in
two places or consolidate them in single helper function.
Obviously single helper function is a preferred method.
I'm not sure what are you still arguing about.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/