diff options
Diffstat (limited to 'net/sctp/protocol.c')
| -rw-r--r-- | net/sctp/protocol.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c index 612dc878e05c..a3c8988758b1 100644 --- a/net/sctp/protocol.c +++ b/net/sctp/protocol.c | |||
| @@ -205,14 +205,14 @@ static void sctp_get_local_addr_list(void) | |||
| 205 | struct list_head *pos; | 205 | struct list_head *pos; |
| 206 | struct sctp_af *af; | 206 | struct sctp_af *af; |
| 207 | 207 | ||
| 208 | read_lock(&dev_base_lock); | 208 | rcu_read_lock(); |
| 209 | for_each_netdev(&init_net, dev) { | 209 | for_each_netdev_rcu(&init_net, dev) { |
| 210 | __list_for_each(pos, &sctp_address_families) { | 210 | __list_for_each(pos, &sctp_address_families) { |
| 211 | af = list_entry(pos, struct sctp_af, list); | 211 | af = list_entry(pos, struct sctp_af, list); |
| 212 | af->copy_addrlist(&sctp_local_addr_list, dev); | 212 | af->copy_addrlist(&sctp_local_addr_list, dev); |
| 213 | } | 213 | } |
| 214 | } | 214 | } |
| 215 | read_unlock(&dev_base_lock); | 215 | rcu_read_unlock(); |
| 216 | } | 216 | } |
| 217 | 217 | ||
| 218 | /* Free the existing local addresses. */ | 218 | /* Free the existing local addresses. */ |
| @@ -296,19 +296,19 @@ static void sctp_v4_from_sk(union sctp_addr *addr, struct sock *sk) | |||
| 296 | { | 296 | { |
| 297 | addr->v4.sin_family = AF_INET; | 297 | addr->v4.sin_family = AF_INET; |
| 298 | addr->v4.sin_port = 0; | 298 | addr->v4.sin_port = 0; |
| 299 | addr->v4.sin_addr.s_addr = inet_sk(sk)->rcv_saddr; | 299 | addr->v4.sin_addr.s_addr = inet_sk(sk)->inet_rcv_saddr; |
| 300 | } | 300 | } |
| 301 | 301 | ||
| 302 | /* Initialize sk->sk_rcv_saddr from sctp_addr. */ | 302 | /* Initialize sk->sk_rcv_saddr from sctp_addr. */ |
| 303 | static void sctp_v4_to_sk_saddr(union sctp_addr *addr, struct sock *sk) | 303 | static void sctp_v4_to_sk_saddr(union sctp_addr *addr, struct sock *sk) |
| 304 | { | 304 | { |
| 305 | inet_sk(sk)->rcv_saddr = addr->v4.sin_addr.s_addr; | 305 | inet_sk(sk)->inet_rcv_saddr = addr->v4.sin_addr.s_addr; |
| 306 | } | 306 | } |
| 307 | 307 | ||
| 308 | /* Initialize sk->sk_daddr from sctp_addr. */ | 308 | /* Initialize sk->sk_daddr from sctp_addr. */ |
| 309 | static void sctp_v4_to_sk_daddr(union sctp_addr *addr, struct sock *sk) | 309 | static void sctp_v4_to_sk_daddr(union sctp_addr *addr, struct sock *sk) |
| 310 | { | 310 | { |
| 311 | inet_sk(sk)->daddr = addr->v4.sin_addr.s_addr; | 311 | inet_sk(sk)->inet_daddr = addr->v4.sin_addr.s_addr; |
| 312 | } | 312 | } |
| 313 | 313 | ||
| 314 | /* Initialize a sctp_addr from an address parameter. */ | 314 | /* Initialize a sctp_addr from an address parameter. */ |
| @@ -598,7 +598,7 @@ static struct sock *sctp_v4_create_accept_sk(struct sock *sk, | |||
| 598 | 598 | ||
| 599 | newinet = inet_sk(newsk); | 599 | newinet = inet_sk(newsk); |
| 600 | 600 | ||
| 601 | newinet->daddr = asoc->peer.primary_addr.v4.sin_addr.s_addr; | 601 | newinet->inet_daddr = asoc->peer.primary_addr.v4.sin_addr.s_addr; |
| 602 | 602 | ||
| 603 | sk_refcnt_debug_inc(newsk); | 603 | sk_refcnt_debug_inc(newsk); |
| 604 | 604 | ||
| @@ -909,7 +909,6 @@ static struct inet_protosw sctp_seqpacket_protosw = { | |||
| 909 | .protocol = IPPROTO_SCTP, | 909 | .protocol = IPPROTO_SCTP, |
| 910 | .prot = &sctp_prot, | 910 | .prot = &sctp_prot, |
| 911 | .ops = &inet_seqpacket_ops, | 911 | .ops = &inet_seqpacket_ops, |
| 912 | .capability = -1, | ||
| 913 | .no_check = 0, | 912 | .no_check = 0, |
| 914 | .flags = SCTP_PROTOSW_FLAG | 913 | .flags = SCTP_PROTOSW_FLAG |
| 915 | }; | 914 | }; |
| @@ -918,7 +917,6 @@ static struct inet_protosw sctp_stream_protosw = { | |||
| 918 | .protocol = IPPROTO_SCTP, | 917 | .protocol = IPPROTO_SCTP, |
| 919 | .prot = &sctp_prot, | 918 | .prot = &sctp_prot, |
| 920 | .ops = &inet_seqpacket_ops, | 919 | .ops = &inet_seqpacket_ops, |
| 921 | .capability = -1, | ||
| 922 | .no_check = 0, | 920 | .no_check = 0, |
| 923 | .flags = SCTP_PROTOSW_FLAG | 921 | .flags = SCTP_PROTOSW_FLAG |
| 924 | }; | 922 | }; |
| @@ -1260,6 +1258,9 @@ SCTP_STATIC __init int sctp_init(void) | |||
| 1260 | /* Set SCOPE policy to enabled */ | 1258 | /* Set SCOPE policy to enabled */ |
| 1261 | sctp_scope_policy = SCTP_SCOPE_POLICY_ENABLE; | 1259 | sctp_scope_policy = SCTP_SCOPE_POLICY_ENABLE; |
| 1262 | 1260 | ||
| 1261 | /* Set the default rwnd update threshold */ | ||
| 1262 | sctp_rwnd_upd_shift = SCTP_DEFAULT_RWND_SHIFT; | ||
| 1263 | |||
| 1263 | sctp_sysctl_register(); | 1264 | sctp_sysctl_register(); |
| 1264 | 1265 | ||
| 1265 | INIT_LIST_HEAD(&sctp_address_families); | 1266 | INIT_LIST_HEAD(&sctp_address_families); |
