Subject: PATCH: [SKBUFF] introduce x25_type_trans

From: Arnaldo Carvalho de Melo <[email-masked]>
Date: Sun, 03 Oct 2004 23:07:40 -0300

Hi David,

	Please consider pulling from:

bk://kernel.bkbits.net/acme/sk_buff-2.6

	Now there are six outstanding changesets in this tree.

Regards,

- Arnaldo
You can import this changeset into BK by piping this whole message to:
'| bk receive [path to repository]' or apply the patch as usual.

===================================================================

[email-masked], 2004-10-03 23:01:56-03:00, [email-masked]
  [SKBUFF] introduce x25_type_trans
  
  Signed-off-by: Arnaldo Carvalho de Melo <[email-masked]>
  Signet-off-by: David S. Miller <[email-masked]>

 drivers/isdn/i4l/isdn_x25iface.c |   16 ++++------------
 drivers/net/wan/cycx_x25.c       |    8 +++-----
 drivers/net/wan/hdlc_x25.c       |   14 ++++----------
 drivers/net/wan/lapbether.c      |   20 +++++---------------
 drivers/net/wan/x25_asy.c        |   18 +++++-------------
 include/net/x25device.h          |   17 +++++++++++++++++
 6 files changed, 38 insertions(+), 55 deletions(-)

diff -Nru a/drivers/isdn/i4l/isdn_x25iface.c b/drivers/isdn/i4l/isdn_x25iface.c
--- a/drivers/isdn/i4l/isdn_x25iface.c	2004-10-03 23:02:38 -03:00
+++ b/drivers/isdn/i4l/isdn_x25iface.c	2004-10-03 23:02:38 -03:00
@@ -21,6 +21,7 @@
 #include <linux/netdevice.h>
 #include <linux/concap.h>
 #include <linux/wanrouter.h>
+#include <net/x25device.h>
 #include "isdn_x25iface.h"
 
 /* for debugging messages not to cause an oops when device pointer is NULL*/
@@ -191,12 +192,9 @@
   	IX25DEBUG( "isdn_x25iface_receive %s \n", MY_DEVNAME(cprot->net_dev) );
 	if ( ( (ix25_pdata_t*) (cprot->proto_data) ) 
 	     -> state == WAN_CONNECTED ){
-		skb -> dev = cprot -> net_dev;
-		skb -> protocol = htons(ETH_P_X25);
-		skb -> pkt_type = PACKET_HOST;
 		if( skb_push(skb, 1)){
 			skb -> data[0]=0x00;
-			skb -> mac.raw = skb -> data;
+			skb->protocol = x25_type_trans(skb, cprot->net_dev);
 			netif_rx(skb);
 			return 0;
 		}
@@ -224,10 +222,7 @@
 	*state_p = WAN_CONNECTED;
 	if( skb ){
 		*( skb_put(skb, 1) ) = 0x01;
-		skb -> mac.raw = skb -> data;
-		skb -> dev  = cprot -> net_dev;
-		skb -> protocol = htons(ETH_P_X25);
-		skb -> pkt_type = PACKET_HOST;
+		skb->protocol = x25_type_trans(skb, cprot->net_dev);
 		netif_rx(skb);
 		return 0;
 	} else {
@@ -256,10 +251,7 @@
 	skb = dev_alloc_skb(1);
 	if( skb ){
 		*( skb_put(skb, 1) ) = 0x02;
-		skb -> mac.raw = skb -> data;
-		skb -> dev  = cprot -> net_dev;
-		skb -> protocol = htons(ETH_P_X25);
-		skb -> pkt_type = PACKET_HOST;
+		skb->protocol = x25_type_trans(skb, cprot->net_dev);
 		netif_rx(skb);
 		return 0;
 	} else {
diff -Nru a/drivers/net/wan/cycx_x25.c b/drivers/net/wan/cycx_x25.c
--- a/drivers/net/wan/cycx_x25.c	2004-10-03 23:02:38 -03:00
+++ b/drivers/net/wan/cycx_x25.c	2004-10-03 23:02:38 -03:00
@@ -92,6 +92,8 @@
 #include <linux/cyclomx.h>	/* Cyclom 2X common user API definitions */
 #include <linux/cycx_x25.h>	/* X.25 firmware API definitions */
 
+#include <net/x25device.h>
+
 /* Defines & Macros */
 #define CYCX_X25_MAX_CMD_RETRY 5
 #define CYCX_X25_CHAN_MTU 2048	/* unfragmented logical channel MTU */
@@ -1486,11 +1488,7 @@
 	ptr  = skb_put(skb, 1);
 	*ptr = event;
 
-	skb->dev = dev;
-	skb->protocol = htons(ETH_P_X25);
-	skb->mac.raw = skb->data;
-	skb->pkt_type = PACKET_HOST;
-
+	skb->protocol = x25_type_trans(skb, dev);
 	netif_rx(skb);
 	dev->last_rx = jiffies;		/* timestamp */
 }
diff -Nru a/drivers/net/wan/hdlc_x25.c b/drivers/net/wan/hdlc_x25.c
--- a/drivers/net/wan/hdlc_x25.c	2004-10-03 23:02:38 -03:00
+++ b/drivers/net/wan/hdlc_x25.c	2004-10-03 23:02:38 -03:00
@@ -23,6 +23,8 @@
 #include <linux/rtnetlink.h>
 #include <linux/hdlc.h>
 
+#include <net/x25device.h>
+
 /* These functions are callbacks called by LAPB layer */
 
 static void x25_connect_disconnect(struct net_device *dev, int reason, int code)
@@ -38,11 +40,7 @@
 	ptr = skb_put(skb, 1);
 	*ptr = code;
 
-	skb->dev = dev;
-	skb->protocol = htons(ETH_P_X25);
-	skb->mac.raw = skb->data;
-	skb->pkt_type = PACKET_HOST;
-
+	skb->protocol = x25_type_trans(skb, dev);
 	netif_rx(skb);
 }
 
@@ -74,11 +72,7 @@
 	ptr  = skb->data;
 	*ptr = 0;
 
-	skb->dev = dev;
-	skb->protocol = htons(ETH_P_X25);
-	skb->mac.raw = skb->data;
-	skb->pkt_type = PACKET_HOST;
-
+	skb->protocol = x25_type_trans(skb, dev);
 	return netif_rx(skb);
 }
 
diff -Nru a/drivers/net/wan/lapbether.c b/drivers/net/wan/lapbether.c
--- a/drivers/net/wan/lapbether.c	2004-10-03 23:02:38 -03:00
+++ b/drivers/net/wan/lapbether.c	2004-10-03 23:02:38 -03:00
@@ -43,6 +43,8 @@
 #include <linux/lapb.h>
 #include <linux/init.h>
 
+#include <net/x25device.h>
+
 static char bcast_addr[6] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
 
 /* If this number is made larger, check that the temporary string buffer
@@ -137,11 +139,7 @@
 	ptr  = skb->data;
 	*ptr = 0x00;
 
-	skb->dev      = dev;
-	skb->protocol = htons(ETH_P_X25);
-	skb->mac.raw  = skb->data;
-	skb->pkt_type = PACKET_HOST;
-
+	skb->protocol = x25_type_trans(skb, dev);
 	skb->dev->last_rx = jiffies;
 	return netif_rx(skb);
 }
@@ -233,11 +231,7 @@
 	ptr  = skb_put(skb, 1);
 	*ptr = 0x01;
 
-	skb->dev      = dev;
-	skb->protocol = htons(ETH_P_X25);
-	skb->mac.raw  = skb->data;
-	skb->pkt_type = PACKET_HOST;
-
+	skb->protocol = x25_type_trans(skb, dev);
 	skb->dev->last_rx = jiffies;
 	netif_rx(skb);
 }
@@ -255,11 +249,7 @@
 	ptr  = skb_put(skb, 1);
 	*ptr = 0x02;
 
-	skb->dev      = dev;
-	skb->protocol = htons(ETH_P_X25);
-	skb->mac.raw  = skb->data;
-	skb->pkt_type = PACKET_HOST;
-
+	skb->protocol = x25_type_trans(skb, dev);
 	skb->dev->last_rx = jiffies;
 	netif_rx(skb);
 }
diff -Nru a/drivers/net/wan/x25_asy.c b/drivers/net/wan/x25_asy.c
--- a/drivers/net/wan/x25_asy.c	2004-10-03 23:02:38 -03:00
+++ b/drivers/net/wan/x25_asy.c	2004-10-03 23:02:38 -03:00
@@ -34,6 +34,8 @@
 #include <linux/init.h>
 #include "x25_asy.h"
 
+#include <net/x25device.h>
+
 static struct net_device **x25_asy_devs;
 static int x25_asy_maxdev = SL_NRUNIT;
 
@@ -209,10 +211,8 @@
 		return;
 	}
 	skb_push(skb,1);	/* LAPB internal control */
-	skb->dev = sl->dev;
 	memcpy(skb_put(skb,count), sl->rbuff, count);
-	skb->mac.raw=skb->data;
-	skb->protocol=htons(ETH_P_X25);
+	skb->protocol = x25_type_trans(skb, sl->dev);
 	if((err=lapb_data_received(skb->dev, skb))!=LAPB_OK)
 	{
 		kfree_skb(skb);
@@ -419,11 +419,7 @@
 	ptr  = skb_put(skb, 1);
 	*ptr = 0x01;
 
-	skb->dev      = sl->dev;
-	skb->protocol = htons(ETH_P_X25);
-	skb->mac.raw  = skb->data;
-	skb->pkt_type = PACKET_HOST;
-
+	skb->protocol = x25_type_trans(skb, sl->dev);
 	netif_rx(skb);
 	sl->dev->last_rx = jiffies;
 }
@@ -442,11 +438,7 @@
 	ptr  = skb_put(skb, 1);
 	*ptr = 0x02;
 
-	skb->dev      = sl->dev;
-	skb->protocol = htons(ETH_P_X25);
-	skb->mac.raw  = skb->data;
-	skb->pkt_type = PACKET_HOST;
-
+	skb->protocol = x25_type_trans(skb, sl->dev);
 	netif_rx(skb);
 	sl->dev->last_rx = jiffies;
 }
diff -Nru a/include/net/x25device.h b/include/net/x25device.h
--- /dev/null	Wed Dec 31 16:00:00 196900
+++ b/include/net/x25device.h	2004-10-03 23:02:38 -03:00
@@ -0,0 +1,17 @@
+#ifndef _X25DEVICE_H
+#define _X25DEVICE_H
+
+#include <linux/if_ether.h>
+#include <linux/if_packet.h>
+#include <linux/skbuff.h>
+
+static inline unsigned short x25_type_trans(struct sk_buff *skb,
+					    struct net_device *dev)
+{
+	skb->mac.raw = skb->data;
+	skb->input_dev = skb->dev = dev;
+	skb->pkt_type = PACKET_HOST;
+	
+	return htons(ETH_P_X25);
+}
+#endif

===================================================================

This BitKeeper patch contains the following changesets:
1.2035
## Wrapped with gzip_uu ##

J(!BK-R#,V60P^+<9+/SV@V?_#U(#K8;%9+3C!$01+R#H/VGJ1_J&&@