On Thu, Aug 16, 2018 at 2:51 PM Edward Cree <ec...@solarflare.com> wrote:
>
> On 16/08/18 17:44, Petar Penkov wrote:
> > From: Petar Penkov <ppen...@google.com>
> >
> > Adds a hook for programs of type BPF_PROG_TYPE_FLOW_DISSECTOR and
> > attach type BPF_FLOW_DISSECTOR that is executed in the flow dissector
> > path. The BPF program is kept as a global variable so it is
> > accessible to all flow dissectors.
> >
> > Signed-off-by: Petar Penkov <ppen...@google.com>
> > Signed-off-by: Willem de Bruijn <will...@google.com>
> > ---
>
> This looks really great.
>
> > +int skb_flow_dissector_bpf_prog_detach(const union bpf_attr *attr)
> > +{
> > +     struct bpf_prog *attached;
> > +
> > +     mutex_lock(&flow_dissector_mutex);
> > +     attached = rcu_dereference_protected(flow_dissector_prog,
> > +                                          
> > lockdep_is_held(&flow_dissector_mutex));
> > +     if (!flow_dissector_prog) {
> > +             mutex_unlock(&flow_dissector_mutex);
> > +             return -EINVAL;
> Wouldn't -ENOENT be more usual here (as the counterpart to -EEXIST in
>  the skb_flow_dissector_bpf_prog_attach() version just above)?

Absolutely. That better matches bpf_detach behavior, too.

Reply via email to