diff options
Diffstat (limited to 'drivers/net/dsa/mt7530.c')
-rw-r--r-- | drivers/net/dsa/mt7530.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index f92aae8947e6..12700710f26d 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c | |||
@@ -834,8 +834,7 @@ mt7530_port_fdb_del(struct dsa_switch *ds, int port, | |||
834 | 834 | ||
835 | static int | 835 | static int |
836 | mt7530_port_fdb_dump(struct dsa_switch *ds, int port, | 836 | mt7530_port_fdb_dump(struct dsa_switch *ds, int port, |
837 | struct switchdev_obj_port_fdb *fdb, | 837 | dsa_fdb_dump_cb_t *cb, void *data) |
838 | switchdev_obj_dump_cb_t *cb) | ||
839 | { | 838 | { |
840 | struct mt7530_priv *priv = ds->priv; | 839 | struct mt7530_priv *priv = ds->priv; |
841 | struct mt7530_fdb _fdb = { 0 }; | 840 | struct mt7530_fdb _fdb = { 0 }; |
@@ -853,11 +852,8 @@ mt7530_port_fdb_dump(struct dsa_switch *ds, int port, | |||
853 | if (rsp & ATC_SRCH_HIT) { | 852 | if (rsp & ATC_SRCH_HIT) { |
854 | mt7530_fdb_read(priv, &_fdb); | 853 | mt7530_fdb_read(priv, &_fdb); |
855 | if (_fdb.port_mask & BIT(port)) { | 854 | if (_fdb.port_mask & BIT(port)) { |
856 | ether_addr_copy(fdb->addr, _fdb.mac); | 855 | ret = cb(_fdb.mac, _fdb.vid, _fdb.noarp, |
857 | fdb->vid = _fdb.vid; | 856 | data); |
858 | fdb->ndm_state = _fdb.noarp ? | ||
859 | NUD_NOARP : NUD_REACHABLE; | ||
860 | ret = cb(&fdb->obj); | ||
861 | if (ret < 0) | 857 | if (ret < 0) |
862 | break; | 858 | break; |
863 | } | 859 | } |