aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/appletalk/ltpc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/appletalk/ltpc.c')
-rw-r--r--drivers/net/appletalk/ltpc.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/net/appletalk/ltpc.c b/drivers/net/appletalk/ltpc.c
index 2ea44ce49810..6a6cbd331a16 100644
--- a/drivers/net/appletalk/ltpc.c
+++ b/drivers/net/appletalk/ltpc.c
@@ -770,13 +770,13 @@ static int sendup_buffer (struct net_device *dev)
770 skb->data[0] = dnode; 770 skb->data[0] = dnode;
771 skb->data[1] = snode; 771 skb->data[1] = snode;
772 skb->data[2] = llaptype; 772 skb->data[2] = llaptype;
773 skb->mac.raw = skb->data; /* save pointer to llap header */ 773 skb_reset_mac_header(skb); /* save pointer to llap header */
774 skb_pull(skb,3); 774 skb_pull(skb,3);
775 775
776 /* copy ddp(s,e)hdr + contents */ 776 /* copy ddp(s,e)hdr + contents */
777 memcpy(skb->data,(void*)ltdmabuf,len); 777 skb_copy_to_linear_data(skb, ltdmabuf, len);
778 778
779 skb->h.raw = skb->data; 779 skb_reset_transport_header(skb);
780 780
781 stats->rx_packets++; 781 stats->rx_packets++;
782 stats->rx_bytes+=skb->len; 782 stats->rx_bytes+=skb->len;
@@ -917,13 +917,14 @@ static int ltpc_xmit(struct sk_buff *skb, struct net_device *dev)
917 917
918 int i; 918 int i;
919 struct lt_sendlap cbuf; 919 struct lt_sendlap cbuf;
920 unsigned char *hdr;
920 921
921 cbuf.command = LT_SENDLAP; 922 cbuf.command = LT_SENDLAP;
922 cbuf.dnode = skb->data[0]; 923 cbuf.dnode = skb->data[0];
923 cbuf.laptype = skb->data[2]; 924 cbuf.laptype = skb->data[2];
924 skb_pull(skb,3); /* skip past LLAP header */ 925 skb_pull(skb,3); /* skip past LLAP header */
925 cbuf.length = skb->len; /* this is host order */ 926 cbuf.length = skb->len; /* this is host order */
926 skb->h.raw=skb->data; 927 skb_reset_transport_header(skb);
927 928
928 if(debug & DEBUG_UPPER) { 929 if(debug & DEBUG_UPPER) {
929 printk("command "); 930 printk("command ");
@@ -932,11 +933,13 @@ static int ltpc_xmit(struct sk_buff *skb, struct net_device *dev)
932 printk("\n"); 933 printk("\n");
933 } 934 }
934 935
935 do_write(dev,&cbuf,sizeof(cbuf),skb->h.raw,skb->len); 936 hdr = skb_transport_header(skb);
937 do_write(dev, &cbuf, sizeof(cbuf), hdr, skb->len);
936 938
937 if(debug & DEBUG_UPPER) { 939 if(debug & DEBUG_UPPER) {
938 printk("sent %d ddp bytes\n",skb->len); 940 printk("sent %d ddp bytes\n",skb->len);
939 for(i=0;i<skb->len;i++) printk("%02x ",skb->h.raw[i]); 941 for (i = 0; i < skb->len; i++)
942 printk("%02x ", hdr[i]);
940 printk("\n"); 943 printk("\n");
941 } 944 }
942 945