|
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,
|