Commit abfbf8a0b25e779d0e3533a7d99843982755d61e

Authored by Arkadi Sharshevsky
Committed by David S. Miller
1 parent 403caa7afc

rocker: Remove support bridge bypass FDB

The FDB add/delete are now done through the notification chain. The FDBs
are synced with the bridge and there is no need for extra dumping.

Signed-off-by: Arkadi Sharshevsky <arkadis@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 3 changed files with 0 additions and 106 deletions Side-by-side Diff

drivers/net/ethernet/rocker/rocker.h
... ... @@ -126,9 +126,6 @@
126 126 u16 vid, const unsigned char *addr);
127 127 int (*port_obj_fdb_del)(struct rocker_port *rocker_port,
128 128 u16 vid, const unsigned char *addr);
129   - int (*port_obj_fdb_dump)(const struct rocker_port *rocker_port,
130   - struct switchdev_obj_port_fdb *fdb,
131   - switchdev_obj_dump_cb_t *cb);
132 129 int (*port_master_linked)(struct rocker_port *rocker_port,
133 130 struct net_device *master);
134 131 int (*port_master_unlinked)(struct rocker_port *rocker_port,
drivers/net/ethernet/rocker/rocker_main.c
... ... @@ -1652,33 +1652,6 @@
1652 1652 }
1653 1653  
1654 1654 static int
1655   -rocker_world_port_obj_fdb_add(struct rocker_port *rocker_port,
1656   - const struct switchdev_obj_port_fdb *fdb,
1657   - struct switchdev_trans *trans)
1658   -{
1659   - struct rocker_world_ops *wops = rocker_port->rocker->wops;
1660   -
1661   - if (!wops->port_obj_fdb_add)
1662   - return -EOPNOTSUPP;
1663   -
1664   - if (switchdev_trans_ph_prepare(trans))
1665   - return 0;
1666   -
1667   - return wops->port_obj_fdb_add(rocker_port, fdb->vid, fdb->addr);
1668   -}
1669   -
1670   -static int
1671   -rocker_world_port_obj_fdb_del(struct rocker_port *rocker_port,
1672   - const struct switchdev_obj_port_fdb *fdb)
1673   -{
1674   - struct rocker_world_ops *wops = rocker_port->rocker->wops;
1675   -
1676   - if (!wops->port_obj_fdb_del)
1677   - return -EOPNOTSUPP;
1678   - return wops->port_obj_fdb_del(rocker_port, fdb->vid, fdb->addr);
1679   -}
1680   -
1681   -static int
1682 1655 rocker_world_port_fdb_add(struct rocker_port *rocker_port,
1683 1656 struct switchdev_notifier_fdb_info *info)
1684 1657 {
... ... @@ -1701,18 +1674,6 @@
1701 1674 return wops->port_obj_fdb_del(rocker_port, info->vid, info->addr);
1702 1675 }
1703 1676  
1704   -static int
1705   -rocker_world_port_obj_fdb_dump(const struct rocker_port *rocker_port,
1706   - struct switchdev_obj_port_fdb *fdb,
1707   - switchdev_obj_dump_cb_t *cb)
1708   -{
1709   - struct rocker_world_ops *wops = rocker_port->rocker->wops;
1710   -
1711   - if (!wops->port_obj_fdb_dump)
1712   - return -EOPNOTSUPP;
1713   - return wops->port_obj_fdb_dump(rocker_port, fdb, cb);
1714   -}
1715   -
1716 1677 static int rocker_world_port_master_linked(struct rocker_port *rocker_port,
1717 1678 struct net_device *master)
1718 1679 {
... ... @@ -2067,9 +2028,6 @@
2067 2028 .ndo_start_xmit = rocker_port_xmit,
2068 2029 .ndo_set_mac_address = rocker_port_set_mac_address,
2069 2030 .ndo_change_mtu = rocker_port_change_mtu,
2070   - .ndo_fdb_add = switchdev_port_fdb_add,
2071   - .ndo_fdb_del = switchdev_port_fdb_del,
2072   - .ndo_fdb_dump = switchdev_port_fdb_dump,
2073 2031 .ndo_get_phys_port_name = rocker_port_get_phys_port_name,
2074 2032 .ndo_change_proto_down = rocker_port_change_proto_down,
2075 2033 .ndo_neigh_destroy = rocker_port_neigh_destroy,
... ... @@ -2150,11 +2108,6 @@
2150 2108 SWITCHDEV_OBJ_PORT_VLAN(obj),
2151 2109 trans);
2152 2110 break;
2153   - case SWITCHDEV_OBJ_ID_PORT_FDB:
2154   - err = rocker_world_port_obj_fdb_add(rocker_port,
2155   - SWITCHDEV_OBJ_PORT_FDB(obj),
2156   - trans);
2157   - break;
2158 2111 default:
2159 2112 err = -EOPNOTSUPP;
2160 2113 break;
... ... @@ -2174,10 +2127,6 @@
2174 2127 err = rocker_world_port_obj_vlan_del(rocker_port,
2175 2128 SWITCHDEV_OBJ_PORT_VLAN(obj));
2176 2129 break;
2177   - case SWITCHDEV_OBJ_ID_PORT_FDB:
2178   - err = rocker_world_port_obj_fdb_del(rocker_port,
2179   - SWITCHDEV_OBJ_PORT_FDB(obj));
2180   - break;
2181 2130 default:
2182 2131 err = -EOPNOTSUPP;
2183 2132 break;
2184 2133  
... ... @@ -2186,33 +2135,11 @@
2186 2135 return err;
2187 2136 }
2188 2137  
2189   -static int rocker_port_obj_dump(struct net_device *dev,
2190   - struct switchdev_obj *obj,
2191   - switchdev_obj_dump_cb_t *cb)
2192   -{
2193   - const struct rocker_port *rocker_port = netdev_priv(dev);
2194   - int err = 0;
2195   -
2196   - switch (obj->id) {
2197   - case SWITCHDEV_OBJ_ID_PORT_FDB:
2198   - err = rocker_world_port_obj_fdb_dump(rocker_port,
2199   - SWITCHDEV_OBJ_PORT_FDB(obj),
2200   - cb);
2201   - break;
2202   - default:
2203   - err = -EOPNOTSUPP;
2204   - break;
2205   - }
2206   -
2207   - return err;
2208   -}
2209   -
2210 2138 static const struct switchdev_ops rocker_port_switchdev_ops = {
2211 2139 .switchdev_port_attr_get = rocker_port_attr_get,
2212 2140 .switchdev_port_attr_set = rocker_port_attr_set,
2213 2141 .switchdev_port_obj_add = rocker_port_obj_add,
2214 2142 .switchdev_port_obj_del = rocker_port_obj_del,
2215   - .switchdev_port_obj_dump = rocker_port_obj_dump,
2216 2143 };
2217 2144  
2218 2145 struct rocker_fib_event_work {
drivers/net/ethernet/rocker/rocker_ofdpa.c
... ... @@ -2608,35 +2608,6 @@
2608 2608 return ofdpa_port_fdb(ofdpa_port, addr, vlan_id, flags);
2609 2609 }
2610 2610  
2611   -static int ofdpa_port_obj_fdb_dump(const struct rocker_port *rocker_port,
2612   - struct switchdev_obj_port_fdb *fdb,
2613   - switchdev_obj_dump_cb_t *cb)
2614   -{
2615   - const struct ofdpa_port *ofdpa_port = rocker_port->wpriv;
2616   - struct ofdpa *ofdpa = ofdpa_port->ofdpa;
2617   - struct ofdpa_fdb_tbl_entry *found;
2618   - struct hlist_node *tmp;
2619   - unsigned long lock_flags;
2620   - int bkt;
2621   - int err = 0;
2622   -
2623   - spin_lock_irqsave(&ofdpa->fdb_tbl_lock, lock_flags);
2624   - hash_for_each_safe(ofdpa->fdb_tbl, bkt, tmp, found, entry) {
2625   - if (found->key.ofdpa_port != ofdpa_port)
2626   - continue;
2627   - ether_addr_copy(fdb->addr, found->key.addr);
2628   - fdb->ndm_state = NUD_REACHABLE;
2629   - fdb->vid = ofdpa_port_vlan_to_vid(ofdpa_port,
2630   - found->key.vlan_id);
2631   - err = cb(&fdb->obj);
2632   - if (err)
2633   - break;
2634   - }
2635   - spin_unlock_irqrestore(&ofdpa->fdb_tbl_lock, lock_flags);
2636   -
2637   - return err;
2638   -}
2639   -
2640 2611 static int ofdpa_port_bridge_join(struct ofdpa_port *ofdpa_port,
2641 2612 struct net_device *bridge)
2642 2613 {
... ... @@ -2861,7 +2832,6 @@
2861 2832 .port_obj_vlan_del = ofdpa_port_obj_vlan_del,
2862 2833 .port_obj_fdb_add = ofdpa_port_obj_fdb_add,
2863 2834 .port_obj_fdb_del = ofdpa_port_obj_fdb_del,
2864   - .port_obj_fdb_dump = ofdpa_port_obj_fdb_dump,
2865 2835 .port_master_linked = ofdpa_port_master_linked,
2866 2836 .port_master_unlinked = ofdpa_port_master_unlinked,
2867 2837 .port_neigh_update = ofdpa_port_neigh_update,