]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/net/dsa/mv88e6xxx/chip.c
dsa: mv88e6xxx: Optimise atu_get
[karo-tx-linux.git] / drivers / net / dsa / mv88e6xxx / chip.c
index b5f0e1ec864d838f7c5dacb0d08e82861927efb5..676b0e2ad221faeab93ee5f49d6d7f137287aee8 100644 (file)
@@ -2023,7 +2023,8 @@ static int mv88e6xxx_atu_get(struct mv88e6xxx_chip *chip, int fid,
        struct mv88e6xxx_atu_entry next;
        int err;
 
-       eth_broadcast_addr(next.mac);
+       memcpy(next.mac, addr, ETH_ALEN);
+       eth_addr_dec(next.mac);
 
        err = _mv88e6xxx_atu_mac_write(chip, next.mac);
        if (err)
@@ -2041,7 +2042,7 @@ static int mv88e6xxx_atu_get(struct mv88e6xxx_chip *chip, int fid,
                        *entry = next;
                        return 0;
                }
-       } while (!is_broadcast_ether_addr(next.mac));
+       } while (ether_addr_greater(addr, next.mac));
 
        memset(entry, 0, sizeof(*entry));
        entry->fid = fid;