Commit abfbf8a0b25e779d0e3533a7d99843982755d61e
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, |