diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2010-05-10 05:59:37 -0400 |
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2010-05-10 08:20:42 -0400 |
| commit | dbb6be6d5e974c42bbecd183effaa0df69e1dd8b (patch) | |
| tree | 5735cb47e70853d057a9881dd0ce44b83e88fa63 /net/dccp/proto.c | |
| parent | 6a867a395558a7f882d041783e4cdea6744ca2bf (diff) | |
| parent | b57f95a38233a2e73b679bea4a5453a1cc2a1cc9 (diff) | |
Merge branch 'linus' into timers/core
Reason: Further posix_cpu_timer patches depend on mainline changes
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'net/dccp/proto.c')
| -rw-r--r-- | net/dccp/proto.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/net/dccp/proto.c b/net/dccp/proto.c index 0ef7061920c0..a0e38d8018f5 100644 --- a/net/dccp/proto.c +++ b/net/dccp/proto.c | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | #include <linux/if_arp.h> | 20 | #include <linux/if_arp.h> |
| 21 | #include <linux/init.h> | 21 | #include <linux/init.h> |
| 22 | #include <linux/random.h> | 22 | #include <linux/random.h> |
| 23 | #include <linux/slab.h> | ||
| 23 | #include <net/checksum.h> | 24 | #include <net/checksum.h> |
| 24 | 25 | ||
| 25 | #include <net/inet_sock.h> | 26 | #include <net/inet_sock.h> |
| @@ -1036,7 +1037,7 @@ static int __init dccp_init(void) | |||
| 1036 | FIELD_SIZEOF(struct sk_buff, cb)); | 1037 | FIELD_SIZEOF(struct sk_buff, cb)); |
| 1037 | rc = percpu_counter_init(&dccp_orphan_count, 0); | 1038 | rc = percpu_counter_init(&dccp_orphan_count, 0); |
| 1038 | if (rc) | 1039 | if (rc) |
| 1039 | goto out; | 1040 | goto out_fail; |
| 1040 | rc = -ENOBUFS; | 1041 | rc = -ENOBUFS; |
| 1041 | inet_hashinfo_init(&dccp_hashinfo); | 1042 | inet_hashinfo_init(&dccp_hashinfo); |
| 1042 | dccp_hashinfo.bind_bucket_cachep = | 1043 | dccp_hashinfo.bind_bucket_cachep = |
| @@ -1125,8 +1126,9 @@ static int __init dccp_init(void) | |||
| 1125 | goto out_sysctl_exit; | 1126 | goto out_sysctl_exit; |
| 1126 | 1127 | ||
| 1127 | dccp_timestamping_init(); | 1128 | dccp_timestamping_init(); |
| 1128 | out: | 1129 | |
| 1129 | return rc; | 1130 | return 0; |
| 1131 | |||
| 1130 | out_sysctl_exit: | 1132 | out_sysctl_exit: |
| 1131 | dccp_sysctl_exit(); | 1133 | dccp_sysctl_exit(); |
| 1132 | out_ackvec_exit: | 1134 | out_ackvec_exit: |
| @@ -1135,18 +1137,19 @@ out_free_dccp_mib: | |||
| 1135 | dccp_mib_exit(); | 1137 | dccp_mib_exit(); |
| 1136 | out_free_dccp_bhash: | 1138 | out_free_dccp_bhash: |
| 1137 | free_pages((unsigned long)dccp_hashinfo.bhash, bhash_order); | 1139 | free_pages((unsigned long)dccp_hashinfo.bhash, bhash_order); |
| 1138 | dccp_hashinfo.bhash = NULL; | ||
| 1139 | out_free_dccp_locks: | 1140 | out_free_dccp_locks: |
| 1140 | inet_ehash_locks_free(&dccp_hashinfo); | 1141 | inet_ehash_locks_free(&dccp_hashinfo); |
| 1141 | out_free_dccp_ehash: | 1142 | out_free_dccp_ehash: |
| 1142 | free_pages((unsigned long)dccp_hashinfo.ehash, ehash_order); | 1143 | free_pages((unsigned long)dccp_hashinfo.ehash, ehash_order); |
| 1143 | dccp_hashinfo.ehash = NULL; | ||
| 1144 | out_free_bind_bucket_cachep: | 1144 | out_free_bind_bucket_cachep: |
| 1145 | kmem_cache_destroy(dccp_hashinfo.bind_bucket_cachep); | 1145 | kmem_cache_destroy(dccp_hashinfo.bind_bucket_cachep); |
| 1146 | dccp_hashinfo.bind_bucket_cachep = NULL; | ||
| 1147 | out_free_percpu: | 1146 | out_free_percpu: |
| 1148 | percpu_counter_destroy(&dccp_orphan_count); | 1147 | percpu_counter_destroy(&dccp_orphan_count); |
| 1149 | goto out; | 1148 | out_fail: |
| 1149 | dccp_hashinfo.bhash = NULL; | ||
| 1150 | dccp_hashinfo.ehash = NULL; | ||
| 1151 | dccp_hashinfo.bind_bucket_cachep = NULL; | ||
| 1152 | return rc; | ||
| 1150 | } | 1153 | } |
| 1151 | 1154 | ||
| 1152 | static void __exit dccp_fini(void) | 1155 | static void __exit dccp_fini(void) |
