aboutsummaryrefslogtreecommitdiffstats
path: root/net/decnet/af_decnet.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/decnet/af_decnet.c')
-rw-r--r--net/decnet/af_decnet.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c
index 307c322d53bb..c4a2def5b7bd 100644
--- a/net/decnet/af_decnet.c
+++ b/net/decnet/af_decnet.c
@@ -909,6 +909,7 @@ static int __dn_connect(struct sock *sk, struct sockaddr_dn *addr, int addrlen,
909 struct dn_scp *scp = DN_SK(sk); 909 struct dn_scp *scp = DN_SK(sk);
910 int err = -EISCONN; 910 int err = -EISCONN;
911 struct flowidn fld; 911 struct flowidn fld;
912 struct dst_entry *dst;
912 913
913 if (sock->state == SS_CONNECTED) 914 if (sock->state == SS_CONNECTED)
914 goto out; 915 goto out;
@@ -955,10 +956,11 @@ static int __dn_connect(struct sock *sk, struct sockaddr_dn *addr, int addrlen,
955 fld.flowidn_proto = DNPROTO_NSP; 956 fld.flowidn_proto = DNPROTO_NSP;
956 if (dn_route_output_sock(&sk->sk_dst_cache, &fld, sk, flags) < 0) 957 if (dn_route_output_sock(&sk->sk_dst_cache, &fld, sk, flags) < 0)
957 goto out; 958 goto out;
958 sk->sk_route_caps = sk->sk_dst_cache->dev->features; 959 dst = __sk_dst_get(sk);
960 sk->sk_route_caps = dst->dev->features;
959 sock->state = SS_CONNECTING; 961 sock->state = SS_CONNECTING;
960 scp->state = DN_CI; 962 scp->state = DN_CI;
961 scp->segsize_loc = dst_metric_advmss(sk->sk_dst_cache); 963 scp->segsize_loc = dst_metric_advmss(dst);
962 964
963 dn_nsp_send_conninit(sk, NSP_CI); 965 dn_nsp_send_conninit(sk, NSP_CI);
964 err = -EINPROGRESS; 966 err = -EINPROGRESS;
@@ -2382,7 +2384,7 @@ static int __init decnet_init(void)
2382 dev_add_pack(&dn_dix_packet_type); 2384 dev_add_pack(&dn_dix_packet_type);
2383 register_netdevice_notifier(&dn_dev_notifier); 2385 register_netdevice_notifier(&dn_dev_notifier);
2384 2386
2385 proc_net_fops_create(&init_net, "decnet", S_IRUGO, &dn_socket_seq_fops); 2387 proc_create("decnet", S_IRUGO, init_net.proc_net, &dn_socket_seq_fops);
2386 dn_register_sysctl(); 2388 dn_register_sysctl();
2387out: 2389out:
2388 return rc; 2390 return rc;
@@ -2411,7 +2413,7 @@ static void __exit decnet_exit(void)
2411 dn_neigh_cleanup(); 2413 dn_neigh_cleanup();
2412 dn_fib_cleanup(); 2414 dn_fib_cleanup();
2413 2415
2414 proc_net_remove(&init_net, "decnet"); 2416 remove_proc_entry("decnet", init_net.proc_net);
2415 2417
2416 proto_unregister(&dn_proto); 2418 proto_unregister(&dn_proto);
2417 2419