]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/sctp/protocol.c
netns: Add an explicit rcu_barrier to unregister_pernet_{device|subsys}
[karo-tx-linux.git] / net / sctp / protocol.c
index 612dc878e05c9aaab9970d322e5ba2798f91bd6a..a3c8988758b1bf35204b3043c247859a8e8d77b2 100644 (file)
@@ -205,14 +205,14 @@ static void sctp_get_local_addr_list(void)
        struct list_head *pos;
        struct sctp_af *af;
 
-       read_lock(&dev_base_lock);
-       for_each_netdev(&init_net, dev) {
+       rcu_read_lock();
+       for_each_netdev_rcu(&init_net, dev) {
                __list_for_each(pos, &sctp_address_families) {
                        af = list_entry(pos, struct sctp_af, list);
                        af->copy_addrlist(&sctp_local_addr_list, dev);
                }
        }
-       read_unlock(&dev_base_lock);
+       rcu_read_unlock();
 }
 
 /* Free the existing local addresses.  */
@@ -296,19 +296,19 @@ static void sctp_v4_from_sk(union sctp_addr *addr, struct sock *sk)
 {
        addr->v4.sin_family = AF_INET;
        addr->v4.sin_port = 0;
-       addr->v4.sin_addr.s_addr = inet_sk(sk)->rcv_saddr;
+       addr->v4.sin_addr.s_addr = inet_sk(sk)->inet_rcv_saddr;
 }
 
 /* Initialize sk->sk_rcv_saddr from sctp_addr. */
 static void sctp_v4_to_sk_saddr(union sctp_addr *addr, struct sock *sk)
 {
-       inet_sk(sk)->rcv_saddr = addr->v4.sin_addr.s_addr;
+       inet_sk(sk)->inet_rcv_saddr = addr->v4.sin_addr.s_addr;
 }
 
 /* Initialize sk->sk_daddr from sctp_addr. */
 static void sctp_v4_to_sk_daddr(union sctp_addr *addr, struct sock *sk)
 {
-       inet_sk(sk)->daddr = addr->v4.sin_addr.s_addr;
+       inet_sk(sk)->inet_daddr = addr->v4.sin_addr.s_addr;
 }
 
 /* Initialize a sctp_addr from an address parameter. */
@@ -598,7 +598,7 @@ static struct sock *sctp_v4_create_accept_sk(struct sock *sk,
 
        newinet = inet_sk(newsk);
 
-       newinet->daddr = asoc->peer.primary_addr.v4.sin_addr.s_addr;
+       newinet->inet_daddr = asoc->peer.primary_addr.v4.sin_addr.s_addr;
 
        sk_refcnt_debug_inc(newsk);
 
@@ -909,7 +909,6 @@ static struct inet_protosw sctp_seqpacket_protosw = {
        .protocol   = IPPROTO_SCTP,
        .prot       = &sctp_prot,
        .ops        = &inet_seqpacket_ops,
-       .capability = -1,
        .no_check   = 0,
        .flags      = SCTP_PROTOSW_FLAG
 };
@@ -918,7 +917,6 @@ static struct inet_protosw sctp_stream_protosw = {
        .protocol   = IPPROTO_SCTP,
        .prot       = &sctp_prot,
        .ops        = &inet_seqpacket_ops,
-       .capability = -1,
        .no_check   = 0,
        .flags      = SCTP_PROTOSW_FLAG
 };
@@ -1260,6 +1258,9 @@ SCTP_STATIC __init int sctp_init(void)
        /* Set SCOPE policy to enabled */
        sctp_scope_policy = SCTP_SCOPE_POLICY_ENABLE;
 
+       /* Set the default rwnd update threshold */
+       sctp_rwnd_upd_shift             = SCTP_DEFAULT_RWND_SHIFT;
+
        sctp_sysctl_register();
 
        INIT_LIST_HEAD(&sctp_address_families);