Re: [PATCH net] net: dsa: bcm_sf2: Fix RX_CLS_LOC_ANY overwrite for last rule

From: Florian Fainelli
Date: Fri May 11 2018 - 19:38:19 EST


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 <f.fainelli@xxxxxxxxx>

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