patch-1.3.96 linux/net/core/dev.c
Next file: linux/net/core/iovec.c
Previous file: linux/net/bridge/br.c
Back to the patch index
Back to the overall index
-  Lines: 35
 -  Date:
Fri Apr 26 10:42:05 1996
 -  Orig file: 
v1.3.95/linux/net/core/dev.c
 -  Orig date: 
Wed Apr 10 17:02:27 1996
 
diff -u --recursive --new-file v1.3.95/linux/net/core/dev.c linux/net/core/dev.c
@@ -605,9 +605,21 @@
 		 
 		if (br_stats.flags & BR_UP)
 		{
+			/*
+			 *	We pass the bridge a complete frame. This means
+			 *	recovering the MAC header first.
+			 */
+			 
+			int offset=skb->data-skb->mac.raw;
 			cli();
+			skb_push(skb,offset);	/* Put header back on for bridge */
 			if(br_receive_frame(skb))
 				continue;
+			/*
+			 *	Pull the MAC header off for the copy going to
+			 *	the upper layers.
+			 */
+			skb_pull(skb,offset);
 			sti();
 		}
 #endif
@@ -621,9 +633,9 @@
 
 		skb->h.raw = skb->data;
 
-	       /*
-		* 	Fetch the packet protocol ID. 
-		*/
+		/*
+		 * 	Fetch the packet protocol ID. 
+		 */
 		
 		type = skb->protocol;
 
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov
with Sam's (original) version of this