diff options
Diffstat (limited to 'net/bridge/br.c')
| -rw-r--r-- | net/bridge/br.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/net/bridge/br.c b/net/bridge/br.c index 188cc1ac49eb..22d806cf40ca 100644 --- a/net/bridge/br.c +++ b/net/bridge/br.c | |||
| @@ -19,13 +19,23 @@ | |||
| 19 | #include <linux/netdevice.h> | 19 | #include <linux/netdevice.h> |
| 20 | #include <linux/etherdevice.h> | 20 | #include <linux/etherdevice.h> |
| 21 | #include <linux/init.h> | 21 | #include <linux/init.h> |
| 22 | #include <linux/llc.h> | ||
| 23 | #include <net/llc.h> | ||
| 22 | 24 | ||
| 23 | #include "br_private.h" | 25 | #include "br_private.h" |
| 24 | 26 | ||
| 25 | int (*br_should_route_hook) (struct sk_buff **pskb) = NULL; | 27 | int (*br_should_route_hook) (struct sk_buff **pskb) = NULL; |
| 26 | 28 | ||
| 29 | static struct llc_sap *br_stp_sap; | ||
| 30 | |||
| 27 | static int __init br_init(void) | 31 | static int __init br_init(void) |
| 28 | { | 32 | { |
| 33 | br_stp_sap = llc_sap_open(LLC_SAP_BSPAN, br_stp_rcv); | ||
| 34 | if (!br_stp_sap) { | ||
| 35 | printk(KERN_ERR "bridge: can't register sap for STP\n"); | ||
| 36 | return -EBUSY; | ||
| 37 | } | ||
| 38 | |||
| 29 | br_fdb_init(); | 39 | br_fdb_init(); |
| 30 | 40 | ||
| 31 | #ifdef CONFIG_BRIDGE_NETFILTER | 41 | #ifdef CONFIG_BRIDGE_NETFILTER |
| @@ -45,6 +55,8 @@ static int __init br_init(void) | |||
| 45 | 55 | ||
| 46 | static void __exit br_deinit(void) | 56 | static void __exit br_deinit(void) |
| 47 | { | 57 | { |
| 58 | llc_sap_close(br_stp_sap); | ||
| 59 | |||
| 48 | #ifdef CONFIG_BRIDGE_NETFILTER | 60 | #ifdef CONFIG_BRIDGE_NETFILTER |
| 49 | br_netfilter_fini(); | 61 | br_netfilter_fini(); |
| 50 | #endif | 62 | #endif |
