From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexander Drozdov Subject: [PATCH 1/2] af_packet: make tpacket_rcv to not set status value before run_filter Date: Thu, 19 Mar 2015 11:01:41 +0300 Message-ID: <1426752102-12786-1-git-send-email-al.drozdov@gmail.com> Cc: Daniel Borkmann , Eric Dumazet , Al Viro , Willem de Bruijn , "Michael S. Tsirkin" , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Alexander Drozdov To: "David S. Miller" Return-path: Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org It is just an optimization. We don't need the value of status variable if the packet is filtered. Signed-off-by: Alexander Drozdov --- net/packet/af_packet.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index f8db706..6ecf8dd 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -1910,14 +1910,15 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev, } } - if (skb->ip_summed == CHECKSUM_PARTIAL) - status |= TP_STATUS_CSUMNOTREADY; - snaplen = skb->len; res = run_filter(skb, sk, snaplen); if (!res) goto drop_n_restore; + + if (skb->ip_summed == CHECKSUM_PARTIAL) + status |= TP_STATUS_CSUMNOTREADY; + if (snaplen > res) snaplen = res; -- 1.9.1