diff --git a/include/os/rt_linux.h b/include/os/rt_linux.h index f5975a1..b1e641b 100644 --- a/include/os/rt_linux.h +++ b/include/os/rt_linux.h @@ -855,13 +855,15 @@ void linux_pci_unmap_single(void *handle, ra_dma_addr_t dma_addr, size_t size, i (RTPKT_TO_OSPKT(_pkt)->len) #define SET_OS_PKT_LEN(_pkt, _len) \ (RTPKT_TO_OSPKT(_pkt)->len) = (_len) - -#define GET_OS_PKT_DATATAIL(_pkt) \ - (RTPKT_TO_OSPKT(_pkt)->tail) + #ifdef NET_SKBUFF_DATA_USES_OFFSET +#define GET_OS_PKT_DATATAIL(_pkt) \ + (RTPKT_TO_OSPKT(_pkt)->head + (ULONG)RTPKT_TO_OSPKT(_pkt)->tail) #define SET_OS_PKT_DATATAIL(_pkt, _start, _len) \ - ((RTPKT_TO_OSPKT(_pkt))->tail) = (ULONG)RTPKT_TO_OSPKT(_pkt)->data - (ULONG)(RTPKT_TO_OSPKT(_pkt)->head) + (_len) + ((RTPKT_TO_OSPKT(_pkt))->tail) = (ULONG)_start - (ULONG)(RTPKT_TO_OSPKT(_pkt)->head) + (_len) #else +#define GET_OS_PKT_DATATAIL(_pkt) \ + (RTPKT_TO_OSPKT(_pkt)->tail) #define SET_OS_PKT_DATATAIL(_pkt, _start, _len) \ ((RTPKT_TO_OSPKT(_pkt))->tail) = (PUCHAR)((_start) + (_len)) #endif diff --git a/os/linux/rt_linux.c b/os/linux/rt_linux.c index e618a72..7b10cee 100644 --- a/os/linux/rt_linux.c +++ b/os/linux/rt_linux.c @@ -505,15 +505,11 @@ PNDIS_PACKET duplicate_pkt( MEM_DBG_PKT_ALLOC_INC(skb); skb_reserve(skb, 2); -#ifdef NET_SKBUFF_DATA_USES_OFFSET - NdisMoveMemory(skb->data+skb->tail, pHeader802_3, HdrLen); - skb_put(skb, HdrLen); - NdisMoveMemory(skb->data+skb->tail, pData, DataSize); -#else - NdisMoveMemory(skb->tail, pHeader802_3, HdrLen); + + NdisMoveMemory(GET_OS_PKT_DATATAIL(skb), pHeader802_3, HdrLen); skb_put(skb, HdrLen); - NdisMoveMemory(skb->tail, pData, DataSize); -#endif + NdisMoveMemory(GET_OS_PKT_DATATAIL(skb), pData, DataSize); + skb_put(skb, DataSize); skb->dev = pNetDev; /*get_netdev_from_bssid(pAd, FromWhichBSSID); */ pPacket = OSPKT_TO_RTPKT(skb); @@ -665,11 +661,7 @@ PNDIS_PACKET ClonePacket( pClonedPkt->dev = pRxPkt->dev; pClonedPkt->data = pData; pClonedPkt->len = DataSize; -#ifdef NET_SKBUFF_DATA_USES_OFFSET - pClonedPkt->tail = (ULONG)pClonedPkt->data - (ULONG)pClonedPkt->head + pClonedPkt->len; -#else - pClonedPkt->tail = pClonedPkt->data + pClonedPkt->len; -#endif + SET_OS_PKT_DATATAIL(pClonedPkt, pClonedPkt->data, pClonedPkt->len); ASSERT(DataSize < 1530); } return pClonedPkt; @@ -715,11 +707,7 @@ void wlan_802_11_to_802_3_packet( pOSPkt->dev = pNetDev; pOSPkt->data = pData; pOSPkt->len = DataSize; -#ifdef NET_SKBUFF_DATA_USES_OFFSET - pOSPkt->tail = (pOSPkt->data-pOSPkt->head)+pOSPkt->len; -#else - pOSPkt->tail = pOSPkt->data + pOSPkt->len; -#endif + SET_OS_PKT_DATATAIL(pOSPkt, pOSPkt->data, pOSPkt->len); /* */ /* copy 802.3 header */ diff --git a/os/linux/rt_profile.c b/os/linux/rt_profile.c index 14431d1..f64b681 100644 --- a/os/linux/rt_profile.c +++ b/os/linux/rt_profile.c @@ -399,7 +399,7 @@ void STA_MonPktSend( if (pRxBlk->DataSize + sizeof(wlan_ng_prism2_header) > RX_BUFFER_AGGRESIZE) { - DBGPRINT(RT_DEBUG_ERROR, ("%s : Size is too large! (%d)\n", __FUNCTION__, pRxBlk->DataSize + sizeof(wlan_ng_prism2_header))); + DBGPRINT(RT_DEBUG_ERROR, ("%s : Size is too large! (%d)\n", __FUNCTION__, pRxBlk->DataSize + (UINT)sizeof(wlan_ng_prism2_header))); goto err_free_sk_buff; }