|
Line
Link Here
|
|
This patch fixes the direct manipulation of skb->tail by the rt2860 driver. |
|
This patch fixes the direct manipulation of skb->tail by the rt2860 driver. |
| 1 |
-- |
|
|
| 2 |
drivers/staging/rt2860/common/ba_action.c | 2 ++ |
1 |
drivers/staging/rt2860/common/ba_action.c | 2 ++ |
| 3 |
drivers/staging/rt2860/rt_linux.c | 9 ++++++--- |
2 |
drivers/staging/rt2860/rt_linux.c | 9 ++++++--- |
| 4 |
2 files changed, 8 insertions(+), 3 deletions(-) |
3 |
2 files changed, 8 insertions(+), 3 deletions(-) |
| 5 |
-- a/drivers/staging/rt2860/common/ba_action.c |
4 |
++ b/drivers/staging/rt2860/common/ba_action.c |
|
Lines 1506-1512
void convert_reordering_packet_to_preAMS
Link Here
|
| 1506 |
|
1506 |
|
| 1507 |
RTPKT_TO_OSPKT(pRxPkt)->dev = get_netdev_from_bssid(pAd, FromWhichBSSID); |
1507 |
RTPKT_TO_OSPKT(pRxPkt)->dev = get_netdev_from_bssid(pAd, FromWhichBSSID); |
| 1508 |
RTPKT_TO_OSPKT(pRxPkt)->data = pRxBlk->pData; |
1508 |
RTPKT_TO_OSPKT(pRxPkt)->data = pRxBlk->pData; |
|
|
1509 |
RTPKT_TO_OSPKT(pRxPkt)->head = RTPKT_TO_OSPKT(pRxPkt)->data; |
| 1509 |
RTPKT_TO_OSPKT(pRxPkt)->len = pRxBlk->DataSize; |
1510 |
RTPKT_TO_OSPKT(pRxPkt)->len = pRxBlk->DataSize; |
|
|
1511 |
skb_set_tail_pointer(RTPKT_TO_OSPKT(pRxPkt), RTPKT_TO_OSPKT(pRxPkt)->len); |
| 1510 |
RTPKT_TO_OSPKT(pRxPkt)->tail = RTPKT_TO_OSPKT(pRxPkt)->data + RTPKT_TO_OSPKT(pRxPkt)->len; |
1512 |
RTPKT_TO_OSPKT(pRxPkt)->tail = RTPKT_TO_OSPKT(pRxPkt)->data + RTPKT_TO_OSPKT(pRxPkt)->len; |
| 1511 |
|
1513 |
|
| 1512 |
// |
1514 |
// |
| 1513 |
-- a/drivers/staging/rt2860/rt_linux.c |
1515 |
++ b/drivers/staging/rt2860/rt_linux.c |
|
Lines 598-605
PNDIS_PACKET ClonePacket(
Link Here
|
| 598 |
// set the correct dataptr and data len |
598 |
// set the correct dataptr and data len |
| 599 |
pClonedPkt->dev = pRxPkt->dev; |
599 |
pClonedPkt->dev = pRxPkt->dev; |
| 600 |
pClonedPkt->data = pData; |
600 |
pClonedPkt->data = pData; |
|
|
601 |
pClonedPkt->head = pClonedPkt->data; |
| 601 |
pClonedPkt->len = DataSize; |
602 |
pClonedPkt->len = DataSize; |
| 602 |
pClonedPkt->tail = pClonedPkt->data + pClonedPkt->len; |
603 |
skb_set_tail_pointer(pClonedPkt, pClonedPkt->len); |
| 603 |
ASSERT(DataSize < 1530); |
604 |
ASSERT(DataSize < 1530); |
| 604 |
} |
605 |
} |
| 605 |
return pClonedPkt; |
606 |
return pClonedPkt; |
|
Lines 620-627
void update_os_packet_info(
Link Here
|
| 620 |
|
621 |
|
| 621 |
pOSPkt->dev = get_netdev_from_bssid(pAd, FromWhichBSSID); |
622 |
pOSPkt->dev = get_netdev_from_bssid(pAd, FromWhichBSSID); |
| 622 |
pOSPkt->data = pRxBlk->pData; |
623 |
pOSPkt->data = pRxBlk->pData; |
|
|
624 |
pOSPkt->head = pOSPkt->data; |
| 623 |
pOSPkt->len = pRxBlk->DataSize; |
625 |
pOSPkt->len = pRxBlk->DataSize; |
| 624 |
pOSPkt->tail = pOSPkt->data + pOSPkt->len; |
626 |
skb_set_tail_pointer(pOSPkt, pOSPkt->len); |
| 625 |
} |
627 |
} |
| 626 |
|
628 |
|
| 627 |
|
629 |
|
|
Lines 640-647
void wlan_802_11_to_802_3_packet(
Link Here
|
| 640 |
|
642 |
|
| 641 |
pOSPkt->dev = get_netdev_from_bssid(pAd, FromWhichBSSID); |
643 |
pOSPkt->dev = get_netdev_from_bssid(pAd, FromWhichBSSID); |
| 642 |
pOSPkt->data = pRxBlk->pData; |
644 |
pOSPkt->data = pRxBlk->pData; |
|
|
645 |
pOSPkt->head = pOSPkt->data; |
| 643 |
pOSPkt->len = pRxBlk->DataSize; |
646 |
pOSPkt->len = pRxBlk->DataSize; |
| 644 |
pOSPkt->tail = pOSPkt->data + pOSPkt->len; |
647 |
skb_set_tail_pointer(pOSPkt, pOSPkt->len); |
| 645 |
|
648 |
|
| 646 |
// |
649 |
// |
| 647 |
// copy 802.3 header |
650 |
// copy 802.3 header |