projects
/
project
/
netifd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
release devices only after flushing ip state
[project/netifd.git]
/
bridge.c
diff --git
a/bridge.c
b/bridge.c
index
d3b2867
..
da07d9c
100644
(file)
--- a/
bridge.c
+++ b/
bridge.c
@@
-132,11
+132,12
@@
bridge_remove_member(struct bridge_member *bm)
if (!bm->present)
return;
if (!bm->present)
return;
- bm->present = false;
- bm->bst->n_present--;
if (bst->dev.active)
bridge_disable_member(bm);
if (bst->dev.active)
bridge_disable_member(bm);
+ bm->present = false;
+ bm->bst->n_present--;
+
bst->force_active = false;
if (bst->n_present == 0)
device_set_present(&bst->dev, false);
bst->force_active = false;
if (bst->n_present == 0)
device_set_present(&bst->dev, false);
@@
-342,7
+343,6
@@
bridge_free(struct device *dev)
{
struct bridge_state *bst;
{
struct bridge_state *bst;
- device_cleanup(dev);
bst = container_of(dev, struct bridge_state, dev);
vlist_flush_all(&bst->members);
free(bst);
bst = container_of(dev, struct bridge_state, dev);
vlist_flush_all(&bst->members);
free(bst);
@@
-392,8
+392,8
@@
bridge_apply_settings(struct bridge_state *bst, struct blob_attr **tb)
struct blob_attr *cur;
/* defaults */
struct blob_attr *cur;
/* defaults */
- cfg->stp =
tru
e;
- cfg->forward_delay =
1
;
+ cfg->stp =
fals
e;
+ cfg->forward_delay =
2
;
cfg->igmp_snoop = true;
if ((cur = tb[BRIDGE_ATTR_STP]))
cfg->igmp_snoop = true;
if ((cur = tb[BRIDGE_ATTR_STP]))