From: Andy P. <at...@us...> - 2002-04-09 16:22:12
|
Update of /cvsroot/linux-vax/kernel-2.4/net/decnet In directory usw-pr-cvs1:/tmp/cvs-serv30993/decnet Modified Files: af_decnet.c dn_dev.c dn_nsp_in.c dn_route.c sysctl_net_decnet.c Log Message: synch 2.4.15 commit 19 Index: af_decnet.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/net/decnet/af_decnet.c,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- af_decnet.c 25 Feb 2001 23:14:56 -0000 1.1.1.2 +++ af_decnet.c 9 Apr 2002 16:22:03 -0000 1.2 @@ -1003,6 +1003,9 @@ if (DN_SK(newsk)->segsize_rem < 230) DN_SK(newsk)->segsize_rem = 230; + if ((DN_SK(newsk)->services_rem & NSP_FC_MASK) == NSP_FC_NONE) + DN_SK(newsk)->max_window = decnet_no_fc_max_cwnd; + newsk->state = TCP_LISTEN; newsk->zapped = 0; @@ -1072,7 +1075,9 @@ lock_sock(sk); if (peer) { - if (sock->state != SS_CONNECTED && scp->accept_mode == ACC_IMMED) + if ((sock->state != SS_CONNECTED && + sock->state != SS_CONNECTING) && + scp->accept_mode == ACC_IMMED) return -ENOTCONN; memcpy(sa, &scp->peer, sizeof(struct sockaddr_dn)); @@ -1431,10 +1436,13 @@ struct sock *sk = sock->sk; struct dn_scp *scp = DN_SK(sk); struct linkinfo_dn link; - int r_len = *optlen; + unsigned int r_len; void *r_data = NULL; - int val; + unsigned int val; + if(get_user(r_len , optlen)) + return -EFAULT; + switch(optname) { case DSO_CONDATA: if (r_len > sizeof(struct optdata_dn)) @@ -1485,7 +1493,11 @@ default: #ifdef CONFIG_NETFILTER { - int val, len = *optlen; + int val, len; + + if(get_user(len, optlen)) + return -EFAULT; + val = nf_getsockopt(sk, PF_DECnet, optname, optval, &len); if (val >= 0) @@ -2125,6 +2137,7 @@ sendmsg: dn_sendmsg, recvmsg: dn_recvmsg, mmap: sock_no_mmap, + sendpage: sock_no_sendpage, }; #ifdef CONFIG_SYSCTL @@ -2137,6 +2150,7 @@ EXPORT_NO_SYMBOLS; MODULE_DESCRIPTION("The Linux DECnet Network Protocol"); MODULE_AUTHOR("Linux DECnet Project Team"); +MODULE_LICENSE("GPL"); static int addr[2] = {0, 0}; @@ -2144,7 +2158,7 @@ MODULE_PARM_DESC(addr, "The DECnet address of this machine: area,node"); #endif -static char banner[] __initdata = KERN_INFO "NET4: DECnet for Linux: V.2.4.0-test12s (C) 1995-2000 Linux DECnet Project Team\n"; +static char banner[] __initdata = KERN_INFO "NET4: DECnet for Linux: V.2.4.9s (C) 1995-2001 Linux DECnet Project Team\n"; static int __init decnet_init(void) { Index: dn_dev.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/net/decnet/dn_dev.c,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- dn_dev.c 25 Feb 2001 23:14:56 -0000 1.1.1.2 +++ dn_dev.c 9 Apr 2002 16:22:03 -0000 1.2 @@ -68,106 +68,77 @@ static struct dn_dev_parms dn_dev_list[] = { { - ARPHRD_ETHER, /* Ethernet */ - DN_DEV_BCAST, - DN_DEV_S_RU, - 0, - 1498, - 1, - 10, - 0, - "ethernet", - NET_DECNET_CONF_ETHER, - dn_eth_up, - NULL, - dn_send_brd_hello, - NULL + type: ARPHRD_ETHER, /* Ethernet */ + mode: DN_DEV_BCAST, + state: DN_DEV_S_RU, + blksize: 1498, + t2: 1, + t3: 10, + name: "ethernet", + ctl_name: NET_DECNET_CONF_ETHER, + up: dn_eth_up, + timer3: dn_send_brd_hello, }, { - ARPHRD_IPGRE, /* DECnet tunneled over GRE in IP */ - DN_DEV_BCAST, - DN_DEV_S_RU, - 0, - 1400, - 1, - 10, - 0, - "ipgre", - NET_DECNET_CONF_GRE, - NULL, - NULL, - dn_send_brd_hello, - NULL + type: ARPHRD_IPGRE, /* DECnet tunneled over GRE in IP */ + mode: DN_DEV_BCAST, + state: DN_DEV_S_RU, + blksize: 1400, + t2: 1, + t3: 10, + name: "ipgre", + ctl_name: NET_DECNET_CONF_GRE, + timer3: dn_send_brd_hello, }, #if 0 { - ARPHRD_X25, /* Bog standard X.25 */ - DN_DEV_UCAST, - DN_DEV_S_DS, - 0, - 230, - 1, - 120, - 0, - "x25", - NET_DECNET_CONF_X25, - NULL, - NULL, - dn_send_ptp_hello, - NULL + type: ARPHRD_X25, /* Bog standard X.25 */ + mode: DN_DEV_UCAST, + state: DN_DEV_S_DS, + blksize: 230, + t2: 1, + t3: 120, + name: "x25", + ctl_name: NET_DECNET_CONF_X25, + timer3: dn_send_ptp_hello, }, #endif #if 0 { - ARPHRD_PPP, /* DECnet over PPP */ - DN_DEV_BCAST, - DN_DEV_S_RU, - 0, - 230, - 1, - 10, - 0, - "ppp", - NET_DECNET_CONF_PPP, - NULL, - NULL, - dn_send_brd_hello, - NULL + type: ARPHRD_PPP, /* DECnet over PPP */ + mode: DN_DEV_BCAST, + state: DN_DEV_S_RU, + blksize: 230, + t2: 1, + t3: 10, + name: "ppp", + ctl_name: NET_DECNET_CONF_PPP, + timer3: dn_send_brd_hello, }, #endif #if 0 { - ARPHRD_DDCMP, /* DECnet over DDCMP */ - DN_DEV_UCAST, - DN_DEV_S_DS, - 0, - 230, - 1, - 120, - 0, - "ddcmp", - NET_DECNET_CONF_DDCMP, - NULL, - NULL, - dn_send_ptp_hello, - NULL + type: ARPHRD_DDCMP, /* DECnet over DDCMP */ + mode: DN_DEV_UCAST, + state: DN_DEV_S_DS, + blksize: 230, + t2: 1, + t3: 120, + name: "ddcmp", + ctl_name: NET_DECNET_CONF_DDCMP, + timer3: dn_send_ptp_hello, }, #endif { - ARPHRD_LOOPBACK, /* Loopback interface - always last */ - DN_DEV_BCAST, - DN_DEV_S_RU, - 0, - 1498, - 1, - 10, - 0, - "loopback", - NET_DECNET_CONF_LOOPBACK, - NULL, - NULL, - dn_send_brd_hello, - NULL + type: ARPHRD_LOOPBACK, /* Loopback interface - always last */ + mode: DN_DEV_BCAST, + state: DN_DEV_S_RU, + blksize: 1498, + t2: 1, + t3: 10, + name: "loopback", + ctl_name: NET_DECNET_CONF_LOOPBACK, + timer3: dn_send_brd_hello, } }; @@ -182,7 +153,7 @@ static int min_t3[] = { 1 }; static int max_t3[] = { 8191 }; /* Must fit in 16 bits when multiplied by BCT3MULT or T3MULT */ -static int min_priority[] = { 0 }; +static int min_priority[1]; static int max_priority[] = { 127 }; /* From DECnet spec */ static int dn_forwarding_proc(ctl_table *, int, struct file *, @@ -344,7 +315,8 @@ if (newlen != sizeof(int)) return -EINVAL; - get_user(value, (int *)newval); + if (get_user(value, (int *)newval)) + return -EFAULT; if (value < 0) return -EINVAL; if (value > 2) Index: dn_nsp_in.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/net/decnet/dn_nsp_in.c,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- dn_nsp_in.c 25 Feb 2001 23:14:56 -0000 1.1.1.2 +++ dn_nsp_in.c 9 Apr 2002 16:22:03 -0000 1.2 @@ -355,6 +355,9 @@ scp->info_rem = cb->info; scp->segsize_rem = cb->segsize; + if ((scp->services_rem & NSP_FC_MASK) == NSP_FC_NONE) + scp->max_window = decnet_no_fc_max_cwnd; + if (skb->len > 0) { unsigned char dlen = *skb->data; if ((dlen <= 16) && (dlen <= skb->len)) { Index: dn_route.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/net/decnet/dn_route.c,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- dn_route.c 25 Feb 2001 23:14:56 -0000 1.1.1.2 +++ dn_route.c 9 Apr 2002 16:22:03 -0000 1.2 @@ -638,8 +638,8 @@ { struct dn_skb_cb *cb = DN_SKB_CB(skb); struct dst_entry *dst = skb->dst; - struct net_device *dev = skb->dev; struct neighbour *neigh; + struct net_device *dev = skb->dev; int err = -EINVAL; if ((neigh = dst->neighbour) == NULL) Index: sysctl_net_decnet.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/net/decnet/sysctl_net_decnet.c,v retrieving revision 1.1.1.2 retrieving revision 1.2 diff -u -r1.1.1.2 -r1.2 --- sysctl_net_decnet.c 25 Feb 2001 23:14:56 -0000 1.1.1.2 +++ sysctl_net_decnet.c 9 Apr 2002 16:22:03 -0000 1.2 @@ -27,12 +27,13 @@ #include <net/dn_route.h> -int decnet_debug_level = 0; +int decnet_debug_level; int decnet_time_wait = 30; int decnet_dn_count = 1; int decnet_di_count = 3; int decnet_dr_count = 3; int decnet_log_martians = 1; +int decnet_no_fc_max_cwnd = NSP_MIN_WINDOW; #ifdef CONFIG_SYSCTL extern int decnet_dst_gc_interval; @@ -42,6 +43,8 @@ static int max_state_count[] = { NSP_MAXRXTSHIFT }; static int min_decnet_dst_gc_interval[] = { 1 }; static int max_decnet_dst_gc_interval[] = { 60 }; +static int min_decnet_no_fc_max_cwnd[] = { NSP_MIN_WINDOW }; +static int max_decnet_no_fc_max_cwnd[] = { NSP_MAX_WINDOW }; static char node_name[7] = "???"; static struct ctl_table_header *dn_table_header = NULL; @@ -344,6 +347,10 @@ sizeof(int), 0644, NULL, &proc_dointvec_minmax, &sysctl_intvec, NULL, &min_decnet_dst_gc_interval, &max_decnet_dst_gc_interval}, + {NET_DECNET_NO_FC_MAX_CWND, "no_fc_max_cwnd", &decnet_no_fc_max_cwnd, + sizeof(int), 0644, + NULL, &proc_dointvec_minmax, &sysctl_intvec, NULL, + &min_decnet_no_fc_max_cwnd, &max_decnet_no_fc_max_cwnd}, {NET_DECNET_DEBUG_LEVEL, "debug", &decnet_debug_level, sizeof(int), 0644, NULL, &proc_dointvec, &sysctl_intvec, NULL, |