From mboxrd@z Thu Jan 1 00:00:00 1970 From: Florian Fainelli Subject: Re: [PATCH net] net: dsa: bcm_sf2: Fix RX_CLS_LOC_ANY overwrite for last rule Date: Fri, 11 May 2018 16:38:02 -0700 Message-ID: References: <20180511232459.15980-1-f.fainelli@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: Andrew Lunn , Vivien Didelot , open list To: netdev@vger.kernel.org, "David S. Miller" Return-path: In-Reply-To: <20180511232459.15980-1-f.fainelli@gmail.com> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org On 05/11/2018 04:24 PM, Florian Fainelli wrote: > When we let the kernel pick up a rule location with RX_CLS_LOC_ANY, we > would be able to overwrite the last rules because of a number of issues: > > - the IPv4 code path would not be checking that rule_index is within > bounds, the IPv6 code path would only be checking the second index and > not the first one > > - find_first_zero_bit() needs to operate on the full bitmap size > (priv->num_cfp_rules) otherwise it would be off by one in the results > it returns and the checks against bcm_sf2_cfp_rule_size() would be non > functioning > > Fixes: 3306145866b6 ("net: dsa: bcm_sf2: Move IPv4 CFP processing to specific functions") > Fixes: ba0696c22e7c ("net: dsa: bcm_sf2: Add support for IPv6 CFP rules") > Signed-off-by: Florian Fainelli David, please discard that for now, the IPv4 part is correct, but I am not fixing the bug correctly for the IPv6 part. v2 coming some time next week. Thank you! -- Florian