net: mvpp2: Simplify MAC filtering function parameters
authorMaxime Chevallier <maxime.chevallier@bootlin.com>
Wed, 7 Mar 2018 14:18:03 +0000 (15:18 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 7 Mar 2018 20:53:39 +0000 (15:53 -0500)
The mvpp2_prs_mac_da_accept function takes into parameter both the
struct representing the controller and the port id. This is meaningful
when we want to create TCAM entries for non-initialized ports, but in
this case we expect the port to be initialized before starting adding or
removing MAC addresses to the per-port filter.

This commit changes the function so that it takes struct mvpp2_port as
a parameter instead.

Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/mvpp2.c

index 338c94d44aea62c7655346e298abea0c21e91eca..8796456c5556bc54795232244d857330aedb98a7 100644 (file)
@@ -3817,16 +3817,17 @@ mvpp2_prs_mac_da_range_find(struct mvpp2 *priv, int pmap, const u8 *da,
 }
 
 /* Update parser's mac da entry */
-static int mvpp2_prs_mac_da_accept(struct mvpp2 *priv, int port,
-                                  const u8 *da, bool add)
+static int mvpp2_prs_mac_da_accept(struct mvpp2_port *port, const u8 *da,
+                                  bool add)
 {
-       struct mvpp2_prs_entry *pe;
-       unsigned int pmap, len, ri;
        unsigned char mask[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
+       struct mvpp2 *priv = port->priv;
+       unsigned int pmap, len, ri;
+       struct mvpp2_prs_entry *pe;
        int tid;
 
        /* Scan TCAM and see if entry with this <MAC DA, port> already exist */
-       pe = mvpp2_prs_mac_da_range_find(priv, (1 << port), da, mask,
+       pe = mvpp2_prs_mac_da_range_find(priv, BIT(port->id), da, mask,
                                         MVPP2_PRS_UDF_MAC_DEF);
 
        /* No such entry */
@@ -3861,7 +3862,7 @@ static int mvpp2_prs_mac_da_accept(struct mvpp2 *priv, int port,
        }
 
        /* Update port mask */
-       mvpp2_prs_tcam_port_set(pe, port, add);
+       mvpp2_prs_tcam_port_set(pe, port->id, add);
 
        /* Invalidate the entry if no ports are left enabled */
        pmap = mvpp2_prs_tcam_port_map_get(pe);
@@ -3917,13 +3918,12 @@ static int mvpp2_prs_update_mac_da(struct net_device *dev, const u8 *da)
        int err;
 
        /* Remove old parser entry */
-       err = mvpp2_prs_mac_da_accept(port->priv, port->id, dev->dev_addr,
-                                     false);
+       err = mvpp2_prs_mac_da_accept(port, dev->dev_addr, false);
        if (err)
                return err;
 
        /* Add new parser entry */
-       err = mvpp2_prs_mac_da_accept(port->priv, port->id, da, true);
+       err = mvpp2_prs_mac_da_accept(port, da, true);
        if (err)
                return err;
 
@@ -3959,7 +3959,8 @@ static void mvpp2_prs_mcast_del_all(struct mvpp2 *priv, int port)
 
                if (is_multicast_ether_addr(da) && !is_broadcast_ether_addr(da))
                        /* Delete this entry */
-                       mvpp2_prs_mac_da_accept(priv, port, da, false);
+                       mvpp2_prs_mac_da_accept(priv->port_list[port], da,
+                                               false);
        }
 }
 
@@ -7380,15 +7381,14 @@ static int mvpp2_open(struct net_device *dev)
                        0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
        int err;
 
-       err = mvpp2_prs_mac_da_accept(port->priv, port->id, mac_bcast, true);
+       err = mvpp2_prs_mac_da_accept(port, mac_bcast, true);
        if (err) {
                netdev_err(dev, "mvpp2_prs_mac_da_accept BC failed\n");
                return err;
        }
-       err = mvpp2_prs_mac_da_accept(port->priv, port->id,
-                                     dev->dev_addr, true);
+       err = mvpp2_prs_mac_da_accept(port, dev->dev_addr, true);
        if (err) {
-               netdev_err(dev, "mvpp2_prs_mac_da_accept MC failed\n");
+               netdev_err(dev, "mvpp2_prs_mac_da_accept own addr failed\n");
                return err;
        }
        err = mvpp2_prs_tag_mode_set(port->priv, port->id, MVPP2_TAG_TYPE_MH);
@@ -7520,7 +7520,7 @@ retry:
 
        if (!allmulti) {
                netdev_for_each_mc_addr(ha, dev) {
-                       if (mvpp2_prs_mac_da_accept(priv, id, ha->addr, true)) {
+                       if (mvpp2_prs_mac_da_accept(port, ha->addr, true)) {
                                allmulti = true;
                                goto retry;
                        }