net: systemport: don't use bitmap_weight() in bcm_sysport_rule_set()
authorYury Norov <yury.norov@gmail.com>
Sun, 23 Jan 2022 18:38:33 +0000 (10:38 -0800)
committerYury Norov <yury.norov@gmail.com>
Mon, 2 May 2022 13:30:39 +0000 (06:30 -0700)
Don't call bitmap_weight() if the following code can get by
without it.

Signed-off-by: Yury Norov <yury.norov@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
drivers/net/ethernet/broadcom/bcmsysport.c

index 60dde29..5284a5c 100644 (file)
@@ -2180,13 +2180,9 @@ static int bcm_sysport_rule_set(struct bcm_sysport_priv *priv,
        if (nfc->fs.ring_cookie != RX_CLS_FLOW_WAKE)
                return -EOPNOTSUPP;
 
-       /* All filters are already in use, we cannot match more rules */
-       if (bitmap_weight(priv->filters, RXCHK_BRCM_TAG_MAX) ==
-           RXCHK_BRCM_TAG_MAX)
-               return -ENOSPC;
-
        index = find_first_zero_bit(priv->filters, RXCHK_BRCM_TAG_MAX);
        if (index >= RXCHK_BRCM_TAG_MAX)
+               /* All filters are already in use, we cannot match more rules */
                return -ENOSPC;
 
        /* Location is the classification ID, and index is the position