Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757719AbcJXQGu (ORCPT ); Mon, 24 Oct 2016 12:06:50 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:50701 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757596AbcJXQGt (ORCPT ); Mon, 24 Oct 2016 12:06:49 -0400 From: Arnd Bergmann To: Jiri Pirko Cc: Tom Herbert , "David S. Miller" , Alexander Duyck , Jiri Pirko , Hadar Hen Zion , Gao Feng , Amir Vadai , Linux Kernel Network Developers , LKML , Linus Torvalds Subject: Re: [PATCH net-next] flow_dissector: fix vlan tag handling Date: Mon, 24 Oct 2016 18:00:32 +0200 Message-ID: <28288577.YZfdMibjpz@wuerfel> User-Agent: KMail/5.1.3 (Linux/4.4.0-34-generic; KDE/5.18.0; x86_64; ; ) In-Reply-To: <20161024081736.GB2781@nanopsycho> References: <20161021155626.4020344-1-arnd@arndb.de> <3590200.oN5tv3ZPpc@wuerfel> <20161024081736.GB2781@nanopsycho> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:2ekHbd6QwnCfHFVUOP1Fke0t+HoB010rBJAmxlwfJTl0LRh9EsT /xS01N39WzssMIgmbYFyMFVNWIHKFbr3436H19DdTW9NU1SeAVwTPVF7nol+xLx26iXjClk MLNe8ERyxJs9NKbz4/wIW6Px1QLcWmikIR6TGRfQHecdp3+402foCOohRh9nJBq3HL8fZmb TjJ/PbyITJC2H1qDO911w== X-UI-Out-Filterresults: notjunk:1;V01:K0:mkjxBbW2PP4=:zD8RIGumeGQpbEMw1YKvlK G9dOOT24xIV2vlAEqvsVejq0GVfJ9SI67LjuS0lB/EY9k7xEulcQxRrBwu/6h1XbwRjN4s+ja ykShX+2RKbXH9Ob9C+UMeLSHFBqtoo47p+vrMqUm29HodkJ/AHCwBTBvKts4tC9z9Y8WSyBOj 6Fv8M8H82PUSz/Rt8GwgvkKArWgmONqZ2Rard010u646b9xpT9EKNknz5KQ1S0BhdOpu6m0ER uKjycq7od5yqyq5m+DNKfrhQMBs8V7oMAjRTfyA5cDObKiQJz6671v18UESkRKnRGev4JPW7T SVj9iWyPZqvso69Uc/tGAn2XGr/26SB3k3hxj+aL9WoM/trAnqMum0874kS65psx4fo+zpMxU r/3kJVvMTCpjK8Ky2PsmMq+Ho0Pg3CZ9Tg3zSwIQpOP6MDnYPxEAttAFt1ADH4X4dPozwRrTR p7nnnt+qkni27q9DwO2mBZ5tyoG/+dbrNbTQ0UxRSXRigskYWsITG+JEC1MK9hsZwkG7+4KGI SSpeqFS5Mx48wgLQRKDwrehtqv/MHUdifb+bbHd/ldOD5w5pS99xQugAeyZ0w46xjL1TCuWxs Bb3r95ebwRwvOuvGIVM+5JumCJKlsLKYV8Nb+dIG1fBIVK+3NeitoY3wbH1u4zTeSaERkcFZi S2ZxN0dntDGzmovC2Wh27W2jsrEDH38JFOpdcwLA5tP6AU89twre8dmrk/WhuyTeyw7wbNDYS Wx7cdi7x55BcGjzE Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 951 Lines: 30 On Monday, October 24, 2016 10:17:36 AM CEST Jiri Pirko wrote: > Sat, Oct 22, 2016 at 10:30:08PM CEST, arnd@arndb.de wrote: > >diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c > >index 44e6ba9d3a6b..17be1b66cc41 100644 > >--- a/net/core/flow_dissector.c > >+++ b/net/core/flow_dissector.c > >@@ -246,13 +246,10 @@ bool __skb_flow_dissect(const struct sk_buff *skb, > > case htons(ETH_P_8021AD): > > case htons(ETH_P_8021Q): { > > const struct vlan_hdr *vlan; > >+ struct vlan_hdr _vlan; > >+ bool vlan_tag_present = (skb && skb_vlan_tag_present(skb)); > > Drop the unnecessary "()" ok > > > >- if (skb && skb_vlan_tag_present(skb)) > >- proto = skb->protocol; > > This does not look correct. I believe that you need to set proto for > further processing. > Ah, of course. I only looked at the usage in this 'case' statement, but the variable is also used after the 'goto again' and at the end of the function. Arnd