summarylogtreecommitdiffstats
path: root/rt3290sta_fix_64bit_3.8.patch
blob: 75d2ccdf7fbb9f4aa663eee072f78d93b3efd597 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
diff -rupN a/include/os/rt_linux.h b/include/os/rt_linux.h
--- a/include/os/rt_linux.h	2012-05-08 05:27:26.000000000 +0000
+++ b/include/os/rt_linux.h	2013-10-17 23:55:33.903364091 +0000
@@ -987,15 +987,15 @@ void linux_pci_unmap_single(void *handle
 		(RTPKT_TO_OSPKT(_pkt)->len) = (_len)
 		
 #define GET_OS_PKT_DATATAIL(_pkt) \
-		(RTPKT_TO_OSPKT(_pkt)->tail)
+		((unsigned char*)skb_tail_pointer(RTPKT_TO_OSPKT(_pkt)))
 #define SET_OS_PKT_DATATAIL(_pkt, _start, _len)	\
-		((RTPKT_TO_OSPKT(_pkt))->tail) = (PUCHAR)((_start) + (_len))
+		(skb_set_tail_pointer((RTPKT_TO_OSPKT(_pkt)), (_len)))
 		
 #define GET_OS_PKT_HEAD(_pkt) \
 		(RTPKT_TO_OSPKT(_pkt)->head)
 
 #define GET_OS_PKT_END(_pkt) \
-		(RTPKT_TO_OSPKT(_pkt)->end)
+		((unsigned char*)skb_end_pointer(RTPKT_TO_OSPKT(_pkt)))
 
 #define GET_OS_PKT_NETDEV(_pkt) \
 		(RTPKT_TO_OSPKT(_pkt)->dev)
diff -rupN a/os/linux/rt_linux.c b/os/linux/rt_linux.c
--- a/os/linux/rt_linux.c	2012-05-08 05:27:26.000000000 +0000
+++ b/os/linux/rt_linux.c	2013-10-17 23:57:10.576701607 +0000
@@ -505,9 +505,9 @@ PNDIS_PACKET duplicate_pkt(
 		MEM_DBG_PKT_ALLOC_INC(skb);
 
 		skb_reserve(skb, 2);
-		NdisMoveMemory(skb->tail, pHeader802_3, HdrLen);
+		NdisMoveMemory((unsigned char*)skb_tail_pointer(skb), pHeader802_3, HdrLen);
 		skb_put(skb, HdrLen);
-		NdisMoveMemory(skb->tail, pData, DataSize);
+		NdisMoveMemory((unsigned char*)skb_tail_pointer(skb), pData, DataSize);
 		skb_put(skb, DataSize);
 		skb->dev = pNetDev;	/*get_netdev_from_bssid(pAd, FromWhichBSSID); */
 		pPacket = OSPKT_TO_RTPKT(skb);
@@ -659,7 +659,7 @@ PNDIS_PACKET ClonePacket(
 		pClonedPkt->dev = pRxPkt->dev;
 		pClonedPkt->data = pData;
 		pClonedPkt->len = DataSize;
-		pClonedPkt->tail = pClonedPkt->data + pClonedPkt->len;
+		skb_set_tail_pointer(pClonedPkt, DataSize);
 		ASSERT(DataSize < 1530);
 	}
 	return pClonedPkt;
@@ -705,7 +705,7 @@ void wlan_802_11_to_802_3_packet(
 	pOSPkt->dev = pNetDev;
 	pOSPkt->data = pData;
 	pOSPkt->len = DataSize;
-	pOSPkt->tail = pOSPkt->data + pOSPkt->len;
+	skb_set_tail_pointer(pOSPkt, DataSize);
 
 	/* */
 	/* copy 802.3 header */
@@ -4924,7 +4924,7 @@ Note:
 */
 VOID RtmpOsPktTailAdjust(IN PNDIS_PACKET pNetPkt,
 			 IN UINT removedTagLen) {
-	OS_PKT_TAIL_ADJUST(pNetPkt, removedTagLen);
+	skb_set_tail_pointer(pNetPkt, pNetPkt->len - removedTagLen)
 }
 
 /*