|
From: Andy P. <at...@us...> - 2002-04-09 16:20:50
|
Update of /cvsroot/linux-vax/kernel-2.4/net/ax25
In directory usw-pr-cvs1:/tmp/cvs-serv30559/ax25
Modified Files:
af_ax25.c ax25_in.c ax25_ip.c ax25_subr.c
Log Message:
synch 2.4.15 commit 18
Index: af_ax25.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/net/ax25/af_ax25.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- af_ax25.c 25 Feb 2001 23:14:55 -0000 1.1.1.2
+++ af_ax25.c 9 Apr 2002 16:20:45 -0000 1.2
@@ -751,7 +751,7 @@
return -EFAULT;
valptr = (void *) &val;
- length = min(maxlen, sizeof(int));
+ length = min_t(unsigned int, maxlen, sizeof(int));
switch (optname) {
case AX25_WINDOW:
@@ -803,7 +803,7 @@
if (ax25_dev != NULL && ax25_dev->dev != NULL) {
strncpy(devname, ax25_dev->dev->name, IFNAMSIZ);
- length = min(strlen(ax25_dev->dev->name)+1, maxlen);
+ length = min_t(unsigned int, strlen(ax25_dev->dev->name)+1, maxlen);
devname[length-1] = '\0';
} else {
*devname = '\0';
@@ -1451,7 +1451,7 @@
/* Assume the worst case */
size = len + 3 + ax25_addr_size(dp) + AX25_BPQ_HEADER_LEN;
- if ((skb = sock_alloc_send_skb(sk, size, 0, msg->msg_flags & MSG_DONTWAIT, &err)) == NULL)
+ if ((skb = sock_alloc_send_skb(sk, size, msg->msg_flags & MSG_DONTWAIT, &err)) == NULL)
return err;
skb_reserve(skb, size - len);
@@ -1805,6 +1805,7 @@
sendmsg: ax25_sendmsg,
recvmsg: ax25_recvmsg,
mmap: sock_no_mmap,
+ sendpage: sock_no_sendpage,
};
#include <linux/smp_lock.h>
@@ -1840,7 +1841,7 @@
EXPORT_SYMBOL(null_ax25_address);
EXPORT_SYMBOL(ax25_display_timer);
-static const char banner[] __initdata = KERN_INFO "NET4: G4KLX/GW4PTS AX.25 for Linux. Version 0.37 for Linux NET4.0\n";
+static char banner[] __initdata = KERN_INFO "NET4: G4KLX/GW4PTS AX.25 for Linux. Version 0.37 for Linux NET4.0\n";
static int __init ax25_init(void)
{
Index: ax25_in.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/net/ax25/ax25_in.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -u -r1.1.1.2 -r1.2
--- ax25_in.c 25 Feb 2001 23:14:55 -0000 1.1.1.2
+++ ax25_in.c 9 Apr 2002 16:20:45 -0000 1.2
@@ -83,9 +83,11 @@
/* Last fragment received ? */
if (ax25->fragno == 0) {
- if ((skbn = alloc_skb(AX25_MAX_HEADER_LEN + ax25->fraglen, GFP_ATOMIC)) == NULL) {
- while ((skbo = skb_dequeue(&ax25->frag_queue)) != NULL)
- kfree_skb(skbo);
+ skbn = alloc_skb(AX25_MAX_HEADER_LEN +
+ ax25->fraglen,
+ GFP_ATOMIC);
+ if (!skbn) {
+ skb_queue_purge(&ax25->frag_queue);
return 1;
}
@@ -113,8 +115,7 @@
} else {
/* First fragment received */
if (*skb->data & AX25_SEG_FIRST) {
- while ((skbo = skb_dequeue(&ax25->frag_queue)) != NULL)
- kfree_skb(skbo);
+ skb_queue_purge(&ax25->frag_queue);
ax25->fragno = *skb->data & AX25_SEG_REM;
skb_pull(skb, 1); /* skip fragno */
ax25->fraglen = skb->len;
@@ -416,7 +417,8 @@
/*
* Sort out any digipeated paths.
*/
- if (dp.ndigi != 0 && ax25->digipeat == NULL && (ax25->digipeat = kmalloc(sizeof(ax25_digi), GFP_ATOMIC)) == NULL) {
+ if (dp.ndigi && !ax25->digipeat &&
+ (ax25->digipeat = kmalloc(sizeof(ax25_digi), GFP_ATOMIC)) == NULL) {
kfree_skb(skb);
ax25_destroy_socket(ax25);
return 0;
@@ -429,7 +431,7 @@
}
} else {
/* Reverse the source SABM's path */
- memcpy(&ax25->digipeat, &reverse_dp, sizeof(ax25_digi));
+ memcpy(ax25->digipeat, &reverse_dp, sizeof(ax25_digi));
}
if ((*skb->data & ~AX25_PF) == AX25_SABME) {
@@ -468,7 +470,8 @@
/*
* Receive an AX.25 frame via a SLIP interface.
*/
-int ax25_kiss_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *ptype)
+int ax25_kiss_rcv(struct sk_buff *skb, struct net_device *dev,
+ struct packet_type *ptype)
{
skb->sk = NULL; /* Initially we don't know who it's for */
skb->destructor = NULL; /* Who initializes this, dammit?! */
Index: ax25_ip.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/net/ax25/ax25_ip.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- ax25_ip.c 14 Jan 2001 17:08:08 -0000 1.1.1.1
+++ ax25_ip.c 9 Apr 2002 16:20:45 -0000 1.2
@@ -56,9 +56,14 @@
int ax25_encapsulate(struct sk_buff *skb, struct net_device *dev, unsigned short type, void *daddr, void *saddr, unsigned len)
{
- /* header is an AX.25 UI frame from us to them */
- unsigned char *buff = skb_push(skb, AX25_HEADER_LEN);
+ unsigned char *buff;
+
+ /* they sometimes come back to us... */
+ if (type == ETH_P_AX25)
+ return 0;
+ /* header is an AX.25 UI frame from us to them */
+ buff = skb_push(skb, AX25_HEADER_LEN);
*buff++ = 0x00; /* KISS DATA */
if (daddr != NULL)
@@ -90,7 +95,7 @@
*buff++ = AX25_P_ARP;
break;
default:
- printk(KERN_ERR "AX.25: ax25_encapsulate - wrong protocol type 0x%x2.2\n", type);
+ printk(KERN_ERR "AX.25: ax25_encapsulate - wrong protocol type 0x%2.2x\n", type);
*buff++ = 0;
break;
}
@@ -160,7 +165,7 @@
dst_c = *dst;
skb_pull(ourskb, AX25_HEADER_LEN - 1); /* Keep PID */
- skb->nh.raw = skb->data;
+ ourskb->nh.raw = ourskb->data;
ax25_send_frame(ourskb, ax25_dev->values[AX25_VALUES_PACLEN], &src_c,
&dst_c, route->digipeat, dev);
Index: ax25_subr.c
===================================================================
RCS file: /cvsroot/linux-vax/kernel-2.4/net/ax25/ax25_subr.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- ax25_subr.c 14 Jan 2001 17:08:01 -0000 1.1.1.1
+++ ax25_subr.c 9 Apr 2002 16:20:45 -0000 1.2
@@ -59,19 +59,10 @@
*/
void ax25_clear_queues(ax25_cb *ax25)
{
- struct sk_buff *skb;
-
- while ((skb = skb_dequeue(&ax25->write_queue)) != NULL)
- kfree_skb(skb);
-
- while ((skb = skb_dequeue(&ax25->ack_queue)) != NULL)
- kfree_skb(skb);
-
- while ((skb = skb_dequeue(&ax25->reseq_queue)) != NULL)
- kfree_skb(skb);
-
- while ((skb = skb_dequeue(&ax25->frag_queue)) != NULL)
- kfree_skb(skb);
+ skb_queue_purge(&ax25->write_queue);
+ skb_queue_purge(&ax25->ack_queue);
+ skb_queue_purge(&ax25->reseq_queue);
+ skb_queue_purge(&ax25->frag_queue);
}
/*
|