|
@@ -589,16 +589,14 @@ void br_fdb_update(struct net_bridge *br, struct net_bridge_port *source,
|
|
|
if (unlikely(source != fdb->dst)) {
|
|
if (unlikely(source != fdb->dst)) {
|
|
|
fdb->dst = source;
|
|
fdb->dst = source;
|
|
|
fdb_modified = true;
|
|
fdb_modified = true;
|
|
|
|
|
+ /* Take over HW learned entry */
|
|
|
|
|
+ if (unlikely(fdb->added_by_external_learn))
|
|
|
|
|
+ fdb->added_by_external_learn = 0;
|
|
|
}
|
|
}
|
|
|
if (now != fdb->updated)
|
|
if (now != fdb->updated)
|
|
|
fdb->updated = now;
|
|
fdb->updated = now;
|
|
|
if (unlikely(added_by_user))
|
|
if (unlikely(added_by_user))
|
|
|
fdb->added_by_user = 1;
|
|
fdb->added_by_user = 1;
|
|
|
- /* Take over HW learned entry */
|
|
|
|
|
- if (unlikely(fdb->added_by_external_learn)) {
|
|
|
|
|
- fdb->added_by_external_learn = 0;
|
|
|
|
|
- fdb_modified = true;
|
|
|
|
|
- }
|
|
|
|
|
if (unlikely(fdb_modified))
|
|
if (unlikely(fdb_modified))
|
|
|
fdb_notify(br, fdb, RTM_NEWNEIGH);
|
|
fdb_notify(br, fdb, RTM_NEWNEIGH);
|
|
|
}
|
|
}
|