patch-2.1.15 linux/drivers/net/arcnet.c

Next file: linux/drivers/net/bpqether.c
Previous file: linux/drivers/net/Space.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.14/linux/drivers/net/arcnet.c linux/drivers/net/arcnet.c
@@ -613,8 +613,7 @@
 
 int arcnetA_header(struct sk_buff *skb,struct device *dev,
 		unsigned short type,void *daddr,void *saddr,unsigned len);
-int arcnetA_rebuild_header(void *eth,struct device *dev,unsigned long raddr,
-		struct sk_buff *skb);
+int arcnetA_rebuild_header(struct sk_buff *skb);
 unsigned short arcnetA_type_trans(struct sk_buff *skb,struct device *dev);
 
 #ifdef CONFIG_ARCNET_ETH
@@ -635,8 +634,7 @@
 	int length,u_char saddr, u_char daddr);
 int arcnetS_header(struct sk_buff *skb,struct device *dev,
 		unsigned short type,void *daddr,void *saddr,unsigned len);
-int arcnetS_rebuild_header(void *eth,struct device *dev,unsigned long raddr,
-		struct sk_buff *skb);
+int arcnetS_rebuild_header(struct sk_buff *skb);
 unsigned short arcnetS_type_trans(struct sk_buff *skb,struct device *dev);
 #endif
 
@@ -2481,11 +2479,6 @@
                 		return;
                 	}
 	                		
-	                /* I don't know what this is for, but it DOES avoid
-	                 * warnings...
-	                 */
-	                skb->free=1;
-	                
                 	soft=(struct ClientData *)skb->data;
                 	
                 	skb->len=sizeof(struct ClientData);
@@ -2692,15 +2685,17 @@
  * (or in future other address resolution) has completed on this
  * sk_buff. We now let ARP fill in the other fields.
  */
-int arcnetA_rebuild_header(void *buff,struct device *dev,unsigned long dst,
-		struct sk_buff *skb)
+int arcnetA_rebuild_header(struct sk_buff *skb)
 {
-	struct ClientData *head = (struct ClientData *)buff;
+	struct ClientData *head = (struct ClientData *)skb->data;
+	struct device *dev=skb->dev;
 	struct arcnet_local *lp=(struct arcnet_local *)(dev->priv);
 	int status;
 
 	/*
 	 * Only ARP and IP are currently supported
+	 *
+	 * FIXME: Anyone want to spec IPv6 over ARCnet ?
 	 */
 	 
 	if(head->protocol_id != ARC_P_IP) 
@@ -2720,7 +2715,7 @@
 #ifdef CONFIG_INET	 
 	BUGMSG(D_DURING,"rebuild header from %d to %d; protocol %Xh\n",
 			head->saddr,head->daddr,head->protocol_id);
-	status=arp_find(&(head->daddr), dst, dev, dev->pa_addr, skb)? 1 : 0;
+	status=arp_find(&(head->daddr),skb)? 1 : 0;
 	BUGMSG(D_DURING," rebuilt: from %d to %d; protocol %Xh\n",
 			head->saddr,head->daddr,head->protocol_id);
 	return status;
@@ -3163,10 +3158,10 @@
  * (or in future other address resolution) has completed on this
  * sk_buff. We now let ARP fill in the other fields.
  */
-int arcnetS_rebuild_header(void *buff,struct device *dev,unsigned long dst,
-		struct sk_buff *skb)
+int arcnetS_rebuild_header(struct sk_buff *skb)
 {
-	struct S_ClientData *head = (struct S_ClientData *)buff;
+	struct device *dev=skb->dev;
+	struct S_ClientData *head = (struct S_ClientData *)skb->data;
 	struct arcnet_local *lp=(struct arcnet_local *)(dev->priv);
 
 	/*
@@ -3188,7 +3183,7 @@
 	 * Try to get ARP to resolve the header.
 	 */
 #ifdef CONFIG_INET	 
-	return arp_find(&(head->daddr), dst, dev, dev->pa_addr, skb)? 1 : 0;
+	return arp_find(&(head->daddr),skb)? 1 : 0;
 #else
 	return 0;	
 #endif	

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov