net: dsa: Remove support for vlan dump from DSA's drivers
authorArkadi Sharshevsky <arkadis@mellanox.com>
Sun, 6 Aug 2017 13:15:45 +0000 (16:15 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 7 Aug 2017 21:48:48 +0000 (14:48 -0700)
This is done as a preparation before removing support for vlan dump from
DSA core. The vlans are synced with the bridge and thus there is no
need for special dump operation support.

Signed-off-by: Arkadi Sharshevsky <arkadis@mellanox.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/b53/b53_common.c
drivers/net/dsa/b53/b53_priv.h
drivers/net/dsa/bcm_sf2.c
drivers/net/dsa/dsa_loop.c
drivers/net/dsa/microchip/ksz_common.c
drivers/net/dsa/mv88e6xxx/chip.c

index 3cf4f0a0445301f18a07a53966559ccba69f98db..0176d80873446078922b0b117e12baa209fb2879 100644 (file)
@@ -1053,49 +1053,6 @@ int b53_vlan_del(struct dsa_switch *ds, int port,
 }
 EXPORT_SYMBOL(b53_vlan_del);
 
-int b53_vlan_dump(struct dsa_switch *ds, int port,
-                 struct switchdev_obj_port_vlan *vlan,
-                 switchdev_obj_dump_cb_t *cb)
-{
-       struct b53_device *dev = ds->priv;
-       u16 vid, vid_start = 0, pvid;
-       struct b53_vlan *vl;
-       int err = 0;
-
-       if (is5325(dev) || is5365(dev))
-               vid_start = 1;
-
-       b53_read16(dev, B53_VLAN_PAGE, B53_VLAN_PORT_DEF_TAG(port), &pvid);
-
-       /* Use our software cache for dumps, since we do not have any HW
-        * operation returning only the used/valid VLANs
-        */
-       for (vid = vid_start; vid < dev->num_vlans; vid++) {
-               vl = &dev->vlans[vid];
-
-               if (!vl->valid)
-                       continue;
-
-               if (!(vl->members & BIT(port)))
-                       continue;
-
-               vlan->vid_begin = vlan->vid_end = vid;
-               vlan->flags = 0;
-
-               if (vl->untag & BIT(port))
-                       vlan->flags |= BRIDGE_VLAN_INFO_UNTAGGED;
-               if (pvid == vid)
-                       vlan->flags |= BRIDGE_VLAN_INFO_PVID;
-
-               err = cb(&vlan->obj);
-               if (err)
-                       break;
-       }
-
-       return err;
-}
-EXPORT_SYMBOL(b53_vlan_dump);
-
 /* Address Resolution Logic routines */
 static int b53_arl_op_wait(struct b53_device *dev)
 {
@@ -1552,7 +1509,6 @@ static const struct dsa_switch_ops b53_switch_ops = {
        .port_vlan_prepare      = b53_vlan_prepare,
        .port_vlan_add          = b53_vlan_add,
        .port_vlan_del          = b53_vlan_del,
-       .port_vlan_dump         = b53_vlan_dump,
        .port_fdb_dump          = b53_fdb_dump,
        .port_fdb_add           = b53_fdb_add,
        .port_fdb_del           = b53_fdb_del,
index f29c892efa6bf12b77677d59180aef3bf114bbb6..af5d6c166bffd9d76daf97dd7118b272fa65c7aa 100644 (file)
@@ -393,9 +393,6 @@ void b53_vlan_add(struct dsa_switch *ds, int port,
                  struct switchdev_trans *trans);
 int b53_vlan_del(struct dsa_switch *ds, int port,
                 const struct switchdev_obj_port_vlan *vlan);
-int b53_vlan_dump(struct dsa_switch *ds, int port,
-                 struct switchdev_obj_port_vlan *vlan,
-                 switchdev_obj_dump_cb_t *cb);
 int b53_fdb_add(struct dsa_switch *ds, int port,
                const unsigned char *addr, u16 vid);
 int b53_fdb_del(struct dsa_switch *ds, int port,
index 1907b27297c3fbead0acbf7754e8c2dd780ea960..bbcb4053e04eeb0cd2f3b4e9c6bfffb6cb0275d5 100644 (file)
@@ -1021,7 +1021,6 @@ static const struct dsa_switch_ops bcm_sf2_ops = {
        .port_vlan_prepare      = b53_vlan_prepare,
        .port_vlan_add          = b53_vlan_add,
        .port_vlan_del          = b53_vlan_del,
-       .port_vlan_dump         = b53_vlan_dump,
        .port_fdb_dump          = b53_fdb_dump,
        .port_fdb_add           = b53_fdb_add,
        .port_fdb_del           = b53_fdb_del,
index fdd8f38721021253f367b44ac3577429b017bf49..76d66604a34e0edd3152e3e5ddf630974ca52165 100644 (file)
@@ -257,43 +257,6 @@ static int dsa_loop_port_vlan_del(struct dsa_switch *ds, int port,
        return 0;
 }
 
-static int dsa_loop_port_vlan_dump(struct dsa_switch *ds, int port,
-                                  struct switchdev_obj_port_vlan *vlan,
-                                  switchdev_obj_dump_cb_t *cb)
-{
-       struct dsa_loop_priv *ps = ds->priv;
-       struct mii_bus *bus = ps->bus;
-       struct dsa_loop_vlan *vl;
-       u16 vid, vid_start = 0;
-       int err = 0;
-
-       dev_dbg(ds->dev, "%s\n", __func__);
-
-       /* Just do a sleeping operation to make lockdep checks effective */
-       mdiobus_read(bus, ps->port_base + port, MII_BMSR);
-
-       for (vid = vid_start; vid < DSA_LOOP_VLANS; vid++) {
-               vl = &ps->vlans[vid];
-
-               if (!(vl->members & BIT(port)))
-                       continue;
-
-               vlan->vid_begin = vlan->vid_end = vid;
-               vlan->flags = 0;
-
-               if (vl->untagged & BIT(port))
-                       vlan->flags |= BRIDGE_VLAN_INFO_UNTAGGED;
-               if (ps->pvid == vid)
-                       vlan->flags |= BRIDGE_VLAN_INFO_PVID;
-
-               err = cb(&vlan->obj);
-               if (err)
-                       break;
-       }
-
-       return err;
-}
-
 static struct dsa_switch_ops dsa_loop_driver = {
        .get_tag_protocol       = dsa_loop_get_protocol,
        .setup                  = dsa_loop_setup,
@@ -310,7 +273,6 @@ static struct dsa_switch_ops dsa_loop_driver = {
        .port_vlan_prepare      = dsa_loop_port_vlan_prepare,
        .port_vlan_add          = dsa_loop_port_vlan_add,
        .port_vlan_del          = dsa_loop_port_vlan_del,
-       .port_vlan_dump         = dsa_loop_port_vlan_dump,
 };
 
 static int dsa_loop_drv_probe(struct mdio_device *mdiodev)
index b55f3649ff933189aa8ce34d9dbcd782cb05c078..a53ce59e0442d5f1d5e97b5f63fe23810244f187 100644 (file)
@@ -638,46 +638,6 @@ static int ksz_port_vlan_del(struct dsa_switch *ds, int port,
        return 0;
 }
 
-static int ksz_port_vlan_dump(struct dsa_switch *ds, int port,
-                             struct switchdev_obj_port_vlan *vlan,
-                             switchdev_obj_dump_cb_t *cb)
-{
-       struct ksz_device *dev = ds->priv;
-       u16 vid;
-       u16 data;
-       struct vlan_table *vlan_cache;
-       int err = 0;
-
-       mutex_lock(&dev->vlan_mutex);
-
-       /* use dev->vlan_cache due to lack of searching valid vlan entry */
-       for (vid = vlan->vid_begin; vid < dev->num_vlans; vid++) {
-               vlan_cache = &dev->vlan_cache[vid];
-
-               if (!(vlan_cache->table[0] & VLAN_VALID))
-                       continue;
-
-               vlan->vid_begin = vid;
-               vlan->vid_end = vid;
-               vlan->flags = 0;
-               if (vlan_cache->table[2] & BIT(port)) {
-                       if (vlan_cache->table[1] & BIT(port))
-                               vlan->flags |= BRIDGE_VLAN_INFO_UNTAGGED;
-                       ksz_pread16(dev, port, REG_PORT_DEFAULT_VID, &data);
-                       if (vid == (data & 0xFFFFF))
-                               vlan->flags |= BRIDGE_VLAN_INFO_PVID;
-
-                       err = cb(&vlan->obj);
-                       if (err)
-                               break;
-               }
-       }
-
-       mutex_unlock(&dev->vlan_mutex);
-
-       return err;
-}
-
 struct alu_struct {
        /* entry 1 */
        u8      is_static:1;
@@ -1124,7 +1084,6 @@ static const struct dsa_switch_ops ksz_switch_ops = {
        .port_vlan_prepare      = ksz_port_vlan_prepare,
        .port_vlan_add          = ksz_port_vlan_add,
        .port_vlan_del          = ksz_port_vlan_del,
-       .port_vlan_dump         = ksz_port_vlan_dump,
        .port_fdb_dump          = ksz_port_fdb_dump,
        .port_fdb_add           = ksz_port_fdb_add,
        .port_fdb_del           = ksz_port_fdb_del,
index 68cc1f6fb75efefeddea1113cf710eb864bbdfb6..5bb1138818ef40e9e18cde80ed75adc87cece614 100644 (file)
@@ -1011,61 +1011,6 @@ static int mv88e6xxx_vtu_loadpurge(struct mv88e6xxx_chip *chip,
        return chip->info->ops->vtu_loadpurge(chip, entry);
 }
 
-static int mv88e6xxx_port_vlan_dump(struct dsa_switch *ds, int port,
-                                   struct switchdev_obj_port_vlan *vlan,
-                                   switchdev_obj_dump_cb_t *cb)
-{
-       struct mv88e6xxx_chip *chip = ds->priv;
-       struct mv88e6xxx_vtu_entry next = {
-               .vid = chip->info->max_vid,
-       };
-       u16 pvid;
-       int err;
-
-       if (!chip->info->max_vid)
-               return -EOPNOTSUPP;
-
-       mutex_lock(&chip->reg_lock);
-
-       err = mv88e6xxx_port_get_pvid(chip, port, &pvid);
-       if (err)
-               goto unlock;
-
-       do {
-               err = mv88e6xxx_vtu_getnext(chip, &next);
-               if (err)
-                       break;
-
-               if (!next.valid)
-                       break;
-
-               if (next.member[port] ==
-                   MV88E6XXX_G1_VTU_DATA_MEMBER_TAG_NON_MEMBER)
-                       continue;
-
-               /* reinit and dump this VLAN obj */
-               vlan->vid_begin = next.vid;
-               vlan->vid_end = next.vid;
-               vlan->flags = 0;
-
-               if (next.member[port] ==
-                   MV88E6XXX_G1_VTU_DATA_MEMBER_TAG_UNTAGGED)
-                       vlan->flags |= BRIDGE_VLAN_INFO_UNTAGGED;
-
-               if (next.vid == pvid)
-                       vlan->flags |= BRIDGE_VLAN_INFO_PVID;
-
-               err = cb(&vlan->obj);
-               if (err)
-                       break;
-       } while (next.vid < chip->info->max_vid);
-
-unlock:
-       mutex_unlock(&chip->reg_lock);
-
-       return err;
-}
-
 static int mv88e6xxx_atu_new(struct mv88e6xxx_chip *chip, u16 *fid)
 {
        DECLARE_BITMAP(fid_bitmap, MV88E6XXX_N_FID);
@@ -3896,7 +3841,6 @@ static const struct dsa_switch_ops mv88e6xxx_switch_ops = {
        .port_vlan_prepare      = mv88e6xxx_port_vlan_prepare,
        .port_vlan_add          = mv88e6xxx_port_vlan_add,
        .port_vlan_del          = mv88e6xxx_port_vlan_del,
-       .port_vlan_dump         = mv88e6xxx_port_vlan_dump,
        .port_fdb_add           = mv88e6xxx_port_fdb_add,
        .port_fdb_del           = mv88e6xxx_port_fdb_del,
        .port_fdb_dump          = mv88e6xxx_port_fdb_dump,