]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/bridge/br_fdb.c
net: Do not call ndo_dflt_fdb_dump if ndo_fdb_dump is defined
[karo-tx-linux.git] / net / bridge / br_fdb.c
index cc36e59db7d75203d89017e8d458b72370df33da..e6e0372bc3cd2fffd89d9bdb59450605f76b5c07 100644 (file)
@@ -686,6 +686,9 @@ int br_fdb_dump(struct sk_buff *skb,
        if (!(dev->priv_flags & IFF_EBRIDGE))
                goto out;
 
+       if (!filter_dev)
+               idx = ndo_dflt_fdb_dump(skb, cb, dev, NULL, idx);
+
        for (i = 0; i < BR_HASH_SIZE; i++) {
                struct net_bridge_fdb_entry *f;
 
@@ -697,7 +700,7 @@ int br_fdb_dump(struct sk_buff *skb,
                            (!f->dst || f->dst->dev != filter_dev)) {
                                if (filter_dev != dev)
                                        goto skip;
-                               /* !f->dst is a speacial case for bridge
+                               /* !f->dst is a special case for bridge
                                 * It means the MAC belongs to the bridge
                                 * Therefore need a little more filtering
                                 * we only want to dump the !f->dst case
@@ -705,6 +708,8 @@ int br_fdb_dump(struct sk_buff *skb,
                                if (f->dst)
                                        goto skip;
                        }
+                       if (!filter_dev && f->dst)
+                               goto skip;
 
                        if (fdb_fill_info(skb, br, f,
                                          NETLINK_CB(cb->skb).portid,