diff options
Diffstat (limited to 'net/bridge')
-rw-r--r-- | net/bridge/br.c | 2 | ||||
-rw-r--r-- | net/bridge/br_if.c | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/net/bridge/br.c b/net/bridge/br.c index a90182873120..8f3c58e5f7a5 100644 --- a/net/bridge/br.c +++ b/net/bridge/br.c | |||
@@ -76,7 +76,6 @@ static void __exit br_deinit(void) | |||
76 | rcu_assign_pointer(br_stp_sap->rcv_func, NULL); | 76 | rcu_assign_pointer(br_stp_sap->rcv_func, NULL); |
77 | 77 | ||
78 | br_netlink_fini(); | 78 | br_netlink_fini(); |
79 | br_netfilter_fini(); | ||
80 | unregister_netdevice_notifier(&br_device_notifier); | 79 | unregister_netdevice_notifier(&br_device_notifier); |
81 | brioctl_set(NULL); | 80 | brioctl_set(NULL); |
82 | 81 | ||
@@ -84,6 +83,7 @@ static void __exit br_deinit(void) | |||
84 | 83 | ||
85 | synchronize_net(); | 84 | synchronize_net(); |
86 | 85 | ||
86 | br_netfilter_fini(); | ||
87 | llc_sap_put(br_stp_sap); | 87 | llc_sap_put(br_stp_sap); |
88 | br_fdb_get_hook = NULL; | 88 | br_fdb_get_hook = NULL; |
89 | br_fdb_put_hook = NULL; | 89 | br_fdb_put_hook = NULL; |
diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c index 298e0f463c56..77a981a1ee52 100644 --- a/net/bridge/br_if.c +++ b/net/bridge/br_if.c | |||
@@ -411,9 +411,12 @@ err2: | |||
411 | br_fdb_delete_by_port(br, p, 1); | 411 | br_fdb_delete_by_port(br, p, 1); |
412 | err1: | 412 | err1: |
413 | kobject_del(&p->kobj); | 413 | kobject_del(&p->kobj); |
414 | return err; | 414 | goto put_back; |
415 | err0: | 415 | err0: |
416 | kobject_put(&p->kobj); | 416 | kobject_put(&p->kobj); |
417 | |||
418 | put_back: | ||
419 | dev_put(dev); | ||
417 | return err; | 420 | return err; |
418 | } | 421 | } |
419 | 422 | ||