From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Dumazet Subject: Re: [bpf-next, v4 1/5] flow_dissector: implements flow dissector BPF hook Date: Tue, 18 Sep 2018 11:07:10 -0700 Message-ID: <57de8ffd-e832-27b8-dede-f9ef76306470@gmail.com> References: <20180914144622.16436-1-peterpenkov96@gmail.com> <20180914144622.16436-2-peterpenkov96@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: davem@davemloft.net, ast@kernel.org, daniel@iogearbox.net, simon.horman@netronome.com, ecree@solarflare.com, songliubraving@fb.com, tom@herbertland.com, Petar Penkov , Willem de Bruijn To: Petar Penkov , netdev@vger.kernel.org Return-path: Received: from mail-lf1-f65.google.com ([209.85.167.65]:35365 "EHLO mail-lf1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729695AbeIRXlD (ORCPT ); Tue, 18 Sep 2018 19:41:03 -0400 Received: by mail-lf1-f65.google.com with SMTP id x20-v6so2713305lfg.2 for ; Tue, 18 Sep 2018 11:07:17 -0700 (PDT) In-Reply-To: <20180914144622.16436-2-peterpenkov96@gmail.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: On 09/14/2018 07:46 AM, Petar Penkov wrote: > From: Petar Penkov > > 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 per-network namespace ... > > + rcu_read_lock(); > + attached = skb ? rcu_dereference(dev_net(skb->dev)->flow_dissector_prog) > + : NULL; Some skbs have a NULL skb->dev, so we are going to crash here. (AF_UNIX generates skbs) > + if (attached) { > + /* Note that even though the const qualifier is discarded > + * throughout the execution of the BPF program, all changes(the > + * control block) are reverted after the BPF program returns. > + * Therefore, __skb_flow_dissect does not alter the skb. > + */