recv_frame->rx_(data|len|tail) duplicate pkt (skb) data|len|tail members
and require special functions recvframe_(put|pull|pull_tail)()
instead of skb_(put|pull|trim).
Replace rx_(data|len|tail) with pkt->(data|len|tail),
remove rx_(data|len|tail) and remove recvframe_(put|pull|pull_tail)().

Signed-off-by: Ivan Safonov <insafo...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_mlme_ext.c    | 52 +++++++-------
 drivers/staging/rtl8188eu/core/rtw_recv.c        | 92 ++++++++++++------------
 drivers/staging/rtl8188eu/core/rtw_security.c    | 12 ++--
 drivers/staging/rtl8188eu/hal/rtl8188e_rxdesc.c  |  2 +-
 drivers/staging/rtl8188eu/include/rtw_recv.h     | 62 ----------------
 drivers/staging/rtl8188eu/os_dep/mon.c           |  4 +-
 drivers/staging/rtl8188eu/os_dep/recv_linux.c    |  6 --
 drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c | 12 ++--
 8 files changed, 83 insertions(+), 159 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c 
b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
index 2933479..f45af40 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
@@ -2053,8 +2053,8 @@ static u8 collect_bss_info(struct adapter *padapter,
        u32     len;
        u8 *p;
        u16 val16, subtype;
-       u8 *pframe = precv_frame->rx_data;
-       u32     packet_len = precv_frame->len;
+       u8 *pframe = precv_frame->pkt->data;
+       u32 packet_len = precv_frame->pkt->len;
        u8 ie_offset;
        struct registry_priv    *pregistrypriv = &padapter->registrypriv;
        struct mlme_ext_priv    *pmlmeext = &padapter->mlmeextpriv;
@@ -2563,8 +2563,8 @@ static unsigned int OnProbeReq(struct adapter *padapter,
        struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
        struct mlme_ext_info    *pmlmeinfo = &(pmlmeext->mlmext_info);
        struct wlan_bssid_ex *cur = &(pmlmeinfo->network);
-       u8 *pframe = precv_frame->rx_data;
-       uint len = precv_frame->len;
+       u8 *pframe = precv_frame->pkt->data;
+       uint len = precv_frame->pkt->len;
 
        if (check_fwstate(pmlmepriv, WIFI_STATION_STATE))
                return _SUCCESS;
@@ -2611,8 +2611,8 @@ static unsigned int OnBeacon(struct adapter *padapter,
        struct mlme_ext_info    *pmlmeinfo = &(pmlmeext->mlmext_info);
        struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
        struct sta_priv *pstapriv = &padapter->stapriv;
-       u8 *pframe = precv_frame->rx_data;
-       uint len = precv_frame->len;
+       u8 *pframe = precv_frame->pkt->data;
+       uint len = precv_frame->pkt->len;
        struct wlan_bssid_ex *pbss;
        int ret = _SUCCESS;
        struct wlan_bssid_ex *pnetwork = &(pmlmeinfo->network);
@@ -2708,8 +2708,8 @@ static unsigned int OnAuth(struct adapter *padapter,
        struct security_priv *psecuritypriv = &padapter->securitypriv;
        struct mlme_ext_priv    *pmlmeext = &padapter->mlmeextpriv;
        struct mlme_ext_info    *pmlmeinfo = &(pmlmeext->mlmext_info);
-       u8 *pframe = precv_frame->rx_data;
-       uint len = precv_frame->len;
+       u8 *pframe = precv_frame->pkt->data;
+       uint len = precv_frame->pkt->len;
 
        if ((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE)
                return _FAIL;
@@ -2871,8 +2871,8 @@ static unsigned int OnAuthClient(struct adapter *padapter,
        unsigned int    go2asoc = 0;
        struct mlme_ext_priv    *pmlmeext = &padapter->mlmeextpriv;
        struct mlme_ext_info    *pmlmeinfo = &(pmlmeext->mlmext_info);
-       u8 *pframe = precv_frame->rx_data;
-       uint pkt_len = precv_frame->len;
+       u8 *pframe = precv_frame->pkt->data;
+       uint pkt_len = precv_frame->pkt->len;
 
        DBG_88E("%s\n", __func__);
 
@@ -2959,8 +2959,8 @@ static unsigned int OnAssocReq(struct adapter *padapter,
        struct mlme_ext_info    *pmlmeinfo = &(pmlmeext->mlmext_info);
        struct wlan_bssid_ex *cur = &(pmlmeinfo->network);
        struct sta_priv *pstapriv = &padapter->stapriv;
-       u8 *pframe = precv_frame->rx_data;
-       uint pkt_len = precv_frame->len;
+       u8 *pframe = precv_frame->pkt->data;
+       uint pkt_len = precv_frame->pkt->len;
 
        if ((pmlmeinfo->state&0x03) != WIFI_FW_AP_STATE)
                return _FAIL;
@@ -3391,8 +3391,8 @@ static unsigned int OnAssocRsp(struct adapter *padapter,
        struct mlme_ext_priv    *pmlmeext = &padapter->mlmeextpriv;
        struct mlme_ext_info    *pmlmeinfo = &(pmlmeext->mlmext_info);
        /* struct wlan_bssid_ex *cur_network = &(pmlmeinfo->network); */
-       u8 *pframe = precv_frame->rx_data;
-       uint pkt_len = precv_frame->len;
+       u8 *pframe = precv_frame->pkt->data;
+       uint pkt_len = precv_frame->pkt->len;
 
        DBG_88E("%s\n", __func__);
 
@@ -3476,7 +3476,7 @@ static unsigned int OnDeAuth(struct adapter *padapter,
        struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
        struct mlme_ext_priv    *pmlmeext = &padapter->mlmeextpriv;
        struct mlme_ext_info    *pmlmeinfo = &(pmlmeext->mlmext_info);
-       u8 *pframe = precv_frame->rx_data;
+       u8 *pframe = precv_frame->pkt->data;
        struct wlan_bssid_ex *pnetwork = &(pmlmeinfo->network);
 
        /* check A3 */
@@ -3531,7 +3531,7 @@ static unsigned int OnDisassoc(struct adapter *padapter,
        struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
        struct mlme_ext_priv    *pmlmeext = &padapter->mlmeextpriv;
        struct mlme_ext_info    *pmlmeinfo = &(pmlmeext->mlmext_info);
-       u8 *pframe = precv_frame->rx_data;
+       u8 *pframe = precv_frame->pkt->data;
        struct wlan_bssid_ex *pnetwork = &(pmlmeinfo->network);
 
        /* check A3 */
@@ -3590,7 +3590,7 @@ static unsigned int on_action_spct(struct adapter 
*padapter,
 {
        struct sta_info *psta = NULL;
        struct sta_priv *pstapriv = &padapter->stapriv;
-       u8 *pframe = precv_frame->rx_data;
+       u8 *pframe = precv_frame->pkt->data;
        u8 *frame_body = pframe + sizeof(struct ieee80211_hdr_3addr);
        u8 category;
        u8 action;
@@ -3646,7 +3646,7 @@ static unsigned int OnAction_back(struct adapter 
*padapter,
        unsigned short  tid, status, reason_code = 0;
        struct mlme_ext_priv    *pmlmeext = &padapter->mlmeextpriv;
        struct mlme_ext_info    *pmlmeinfo = &(pmlmeext->mlmext_info);
-       u8 *pframe = precv_frame->rx_data;
+       u8 *pframe = precv_frame->pkt->data;
        struct sta_priv *pstapriv = &padapter->stapriv;
        /* check RA matches or not */
        if (memcmp(myid(&(padapter->eeprompriv)), GetAddr1Ptr(pframe),
@@ -3719,7 +3719,7 @@ static s32 rtw_action_public_decache(struct recv_frame 
*recv_frame, s32 token)
 {
        struct adapter *adapter = recv_frame->adapter;
        struct mlme_ext_priv *mlmeext = &(adapter->mlmeextpriv);
-       u8 *frame = recv_frame->rx_data;
+       u8 *frame = recv_frame->pkt->data;
        u16 seq_ctrl = ((recv_frame->attrib.seq_num&0xffff) << 4) |
                (recv_frame->attrib.frag_num & 0xf);
 
@@ -3749,7 +3749,7 @@ static s32 rtw_action_public_decache(struct recv_frame 
*recv_frame, s32 token)
 
 static unsigned int on_action_public_p2p(struct recv_frame *precv_frame)
 {
-       u8 *pframe = precv_frame->rx_data;
+       u8 *pframe = precv_frame->pkt->data;
        u8 *frame_body;
        u8 dialogToken = 0;
 
@@ -3765,7 +3765,7 @@ static unsigned int on_action_public_p2p(struct 
recv_frame *precv_frame)
 static unsigned int on_action_public_vendor(struct recv_frame *precv_frame)
 {
        unsigned int ret = _FAIL;
-       u8 *pframe = precv_frame->rx_data;
+       u8 *pframe = precv_frame->pkt->data;
        u8 *frame_body = pframe + sizeof(struct ieee80211_hdr_3addr);
 
        if (!memcmp(frame_body + 2, P2P_OUI, 4))
@@ -3777,7 +3777,7 @@ static unsigned int on_action_public_vendor(struct 
recv_frame *precv_frame)
 static unsigned int on_action_public_default(struct recv_frame *precv_frame, 
u8 action)
 {
        unsigned int ret = _FAIL;
-       u8 *pframe = precv_frame->rx_data;
+       u8 *pframe = precv_frame->pkt->data;
        u8 *frame_body = pframe + sizeof(struct ieee80211_hdr_3addr);
        u8 token;
 
@@ -3796,7 +3796,7 @@ static unsigned int on_action_public(struct adapter 
*padapter,
                                     struct recv_frame *precv_frame)
 {
        unsigned int ret = _FAIL;
-       u8 *pframe = precv_frame->rx_data;
+       u8 *pframe = precv_frame->pkt->data;
        u8 *frame_body = pframe + sizeof(struct ieee80211_hdr_3addr);
        u8 category, action;
 
@@ -3867,7 +3867,7 @@ static unsigned int OnAction(struct adapter *padapter,
        unsigned char   category;
        struct action_handler *ptable;
        unsigned char   *frame_body;
-       u8 *pframe = precv_frame->rx_data;
+       u8 *pframe = precv_frame->pkt->data;
 
        frame_body = (unsigned char *)(pframe + sizeof(struct 
ieee80211_hdr_3addr));
 
@@ -4123,7 +4123,7 @@ void free_mlme_ext_priv(struct mlme_ext_priv *pmlmeext)
 static void _mgt_dispatcher(struct adapter *padapter, struct mlme_handler 
*ptable, struct recv_frame *precv_frame)
 {
        u8 bc_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
-       u8 *pframe = precv_frame->rx_data;
+       u8 *pframe = precv_frame->pkt->data;
 
        if (ptable->func) {
                /* receive the frames that ra(a1) is my address or ra(a1) is bc 
address. */
@@ -4142,7 +4142,7 @@ void mgt_dispatcher(struct adapter *padapter, struct 
recv_frame *precv_frame)
        struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
 #endif /* CONFIG_88EU_AP_MODE */
        u8 bc_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
-       u8 *pframe = precv_frame->rx_data;
+       u8 *pframe = precv_frame->pkt->data;
        struct sta_info *psta = rtw_get_stainfo(&padapter->stapriv, 
GetAddr2Ptr(pframe));
 
        RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_,
diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c 
b/drivers/staging/rtl8188eu/core/rtw_recv.c
index f2021fe..53dc33c 100644
--- a/drivers/staging/rtl8188eu/core/rtw_recv.c
+++ b/drivers/staging/rtl8188eu/core/rtw_recv.c
@@ -80,7 +80,6 @@ int _rtw_init_recv_priv(struct recv_priv *precvpriv, struct 
adapter *padapter)
                                     &(precvpriv->free_recv_queue.queue));
 
                precvframe->pkt = NULL;
-               precvframe->len = 0;
 
                precvframe->adapter = padapter;
                precvframe++;
@@ -149,8 +148,6 @@ int rtw_free_recvframe(struct recv_frame *precvframe,
 
        list_del_init(&(precvframe->list));
 
-       precvframe->len = 0;
-
        list_add_tail(&(precvframe->list), get_list_head(pfree_recv_queue));
 
        spin_unlock_bh(&pfree_recv_queue->lock);
@@ -262,9 +259,9 @@ static int recvframe_chkmic(struct adapter *adapter,
                        }
 
                        /* icv_len included the mic code */
-                       datalen = precvframe->len-prxattrib->hdrlen -
+                       datalen = precvframe->pkt->len-prxattrib->hdrlen -
                                  prxattrib->iv_len-prxattrib->icv_len-8;
-                       pframe = precvframe->rx_data;
+                       pframe = precvframe->pkt->data;
                        payload = pframe+prxattrib->hdrlen+prxattrib->iv_len;
 
                        RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n 
prxattrib->iv_len=%d prxattrib->icv_len=%d\n", prxattrib->iv_len, 
prxattrib->icv_len));
@@ -300,24 +297,24 @@ static int recvframe_chkmic(struct adapter *adapter,
 
                                        RT_TRACE(_module_rtl871x_recv_c_, 
_drv_err_,
                                                 ("\n ======demp packet 
(len=%d)======\n",
-                                                precvframe->len));
-                                       for (i = 0; i < precvframe->len; i += 
8) {
+                                                precvframe->pkt->len));
+                                       for (i = 0; i < precvframe->pkt->len; i 
+= 8) {
                                                
RT_TRACE(_module_rtl871x_recv_c_,
                                                         _drv_err_,
                                                         
("0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x:0x%02x",
-                                                        
*(precvframe->rx_data+i),
-                                                        
*(precvframe->rx_data+i+1),
-                                                        
*(precvframe->rx_data+i+2),
-                                                        
*(precvframe->rx_data+i+3),
-                                                        
*(precvframe->rx_data+i+4),
-                                                        
*(precvframe->rx_data+i+5),
-                                                        
*(precvframe->rx_data+i+6),
-                                                        
*(precvframe->rx_data+i+7)));
+                                                        
*(precvframe->pkt->data+i),
+                                                        
*(precvframe->pkt->data+i+1),
+                                                        
*(precvframe->pkt->data+i+2),
+                                                        
*(precvframe->pkt->data+i+3),
+                                                        
*(precvframe->pkt->data+i+4),
+                                                        
*(precvframe->pkt->data+i+5),
+                                                        
*(precvframe->pkt->data+i+6),
+                                                        
*(precvframe->pkt->data+i+7)));
                                        }
                                        RT_TRACE(_module_rtl871x_recv_c_,
                                                 _drv_err_,
                                                 ("\n ====== demp packet end 
[len=%d]======\n",
-                                                precvframe->len));
+                                                precvframe->pkt->len));
                                        RT_TRACE(_module_rtl871x_recv_c_,
                                                 _drv_err_,
                                                 ("\n hrdlen=%d,\n",
@@ -354,7 +351,7 @@ static int recvframe_chkmic(struct adapter *adapter,
                        RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, 
("recvframe_chkmic: rtw_get_stainfo==NULL!!!\n"));
                }
 
-               recvframe_pull_tail(precvframe, 8);
+               skb_trim(precvframe->pkt, precvframe->pkt->len - 8);
        }
 
 exit:
@@ -374,7 +371,7 @@ static struct recv_frame *decryptor(struct adapter 
*padapter,
        RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("prxstat->decrypted=%x 
prxattrib->encrypt=0x%03x\n", prxattrib->bdecrypted, prxattrib->encrypt));
 
        if (prxattrib->encrypt > 0) {
-               u8 *iv = precv_frame->rx_data+prxattrib->hdrlen;
+               u8 *iv = precv_frame->pkt->data+prxattrib->hdrlen;
 
                prxattrib->key_index = (((iv[3])>>6)&0x3);
 
@@ -443,7 +440,7 @@ static struct recv_frame *portctrl(struct adapter *adapter,
 
        auth_alg = adapter->securitypriv.dot11AuthAlgrthm;
 
-       ptr = precv_frame->rx_data;
+       ptr = precv_frame->pkt->data;
        pfhdr = precv_frame;
        pattrib = &pfhdr->attrib;
        psta_addr = pattrib->ta;
@@ -532,7 +529,7 @@ static void process_pwrbit_data(struct adapter *padapter,
 {
 #ifdef CONFIG_88EU_AP_MODE
        unsigned char pwrbit;
-       u8 *ptr = precv_frame->rx_data;
+       u8 *ptr = precv_frame->pkt->data;
        struct rx_pkt_attrib *pattrib = &precv_frame->attrib;
        struct sta_priv *pstapriv = &padapter->stapriv;
        struct sta_info *psta = NULL;
@@ -620,7 +617,7 @@ static void count_rx_stats(struct adapter *padapter,
        struct rx_pkt_attrib    *pattrib = &prframe->attrib;
        struct recv_priv        *precvpriv = &padapter->recvpriv;
 
-       sz = prframe->len;
+       sz = prframe->pkt->len;
        precvpriv->rx_bytes += sz;
 
        padapter->mlmepriv.LinkDetectInfo.NumRxOkInPeriod++;
@@ -729,7 +726,7 @@ static int ap2sta_data_frame(
        struct recv_frame *precv_frame,
        struct sta_info **psta)
 {
-       u8 *ptr = precv_frame->rx_data;
+       u8 *ptr = precv_frame->pkt->data;
        struct rx_pkt_attrib *pattrib = &precv_frame->attrib;
        int ret = _SUCCESS;
        struct  sta_priv *pstapriv = &adapter->stapriv;
@@ -822,7 +819,7 @@ static int sta2ap_data_frame(struct adapter *adapter,
        struct rx_pkt_attrib *pattrib = &precv_frame->attrib;
        struct  sta_priv *pstapriv = &adapter->stapriv;
        struct  mlme_priv *pmlmepriv = &adapter->mlmepriv;
-       u8 *ptr = precv_frame->rx_data;
+       u8 *ptr = precv_frame->pkt->data;
        unsigned char *mybssid  = get_bssid(pmlmepriv);
        int ret = _SUCCESS;
 
@@ -879,7 +876,7 @@ static int validate_recv_ctrl_frame(struct adapter 
*padapter,
 #ifdef CONFIG_88EU_AP_MODE
        struct rx_pkt_attrib *pattrib = &precv_frame->attrib;
        struct sta_priv *pstapriv = &padapter->stapriv;
-       u8 *pframe = precv_frame->rx_data;
+       u8 *pframe = precv_frame->pkt->data;
 
        if (GetFrameType(pframe) != WIFI_CTRL_TYPE)
                return _FAIL;
@@ -1016,19 +1013,19 @@ static int validate_recv_mgnt_frame(struct adapter 
*padapter,
 
        /* for rx pkt statistics */
        psta = rtw_get_stainfo(&padapter->stapriv,
-                              GetAddr2Ptr(precv_frame->rx_data));
+                              GetAddr2Ptr(precv_frame->pkt->data));
        if (psta) {
                psta->sta_stats.rx_mgnt_pkts++;
-               if (GetFrameSubType(precv_frame->rx_data) == WIFI_BEACON) {
+               if (GetFrameSubType(precv_frame->pkt->data) == WIFI_BEACON) {
                        psta->sta_stats.rx_beacon_pkts++;
-               } else if (GetFrameSubType(precv_frame->rx_data) == 
WIFI_PROBEREQ) {
+               } else if (GetFrameSubType(precv_frame->pkt->data) == 
WIFI_PROBEREQ) {
                        psta->sta_stats.rx_probereq_pkts++;
-               } else if (GetFrameSubType(precv_frame->rx_data) == 
WIFI_PROBERSP) {
+               } else if (GetFrameSubType(precv_frame->pkt->data) == 
WIFI_PROBERSP) {
                        if (!memcmp(padapter->eeprompriv.mac_addr,
-                                   GetAddr1Ptr(precv_frame->rx_data), 
ETH_ALEN))
+                                   GetAddr1Ptr(precv_frame->pkt->data), 
ETH_ALEN))
                                psta->sta_stats.rx_probersp_pkts++;
-                       else if 
(is_broadcast_mac_addr(GetAddr1Ptr(precv_frame->rx_data)) ||
-                                
is_multicast_mac_addr(GetAddr1Ptr(precv_frame->rx_data)))
+                       else if 
(is_broadcast_mac_addr(GetAddr1Ptr(precv_frame->pkt->data)) ||
+                                
is_multicast_mac_addr(GetAddr1Ptr(precv_frame->pkt->data)))
                                psta->sta_stats.rx_probersp_bm_pkts++;
                        else
                                psta->sta_stats.rx_probersp_uo_pkts++;
@@ -1046,7 +1043,7 @@ static int validate_recv_data_frame(struct adapter 
*adapter,
        u8 bretry;
        u8 *psa, *pda, *pbssid;
        struct sta_info *psta = NULL;
-       u8 *ptr = precv_frame->rx_data;
+       u8 *ptr = precv_frame->pkt->data;
        struct rx_pkt_attrib    *pattrib = &precv_frame->attrib;
        struct security_priv    *psecuritypriv = &adapter->securitypriv;
        int ret = _SUCCESS;
@@ -1168,7 +1165,7 @@ static int validate_recv_frame(struct adapter *adapter,
        int retval = _SUCCESS;
        u8 bDumpRxPkt;
        struct rx_pkt_attrib *pattrib = &precv_frame->attrib;
-       u8 *ptr = precv_frame->rx_data;
+       u8 *ptr = precv_frame->pkt->data;
        u8  ver = (unsigned char)(*ptr)&0x3;
        struct mlme_ext_priv *pmlmeext = &adapter->mlmeextpriv;
 
@@ -1282,11 +1279,11 @@ static int wlanhdr_to_ethhdr(struct recv_frame 
*precvframe)
        u8      *psnap_type;
        struct ieee80211_snap_hdr       *psnap;
 
-       u8 *ptr = precvframe->rx_data;
+       u8 *ptr = precvframe->pkt->data;
        struct rx_pkt_attrib *pattrib = &precvframe->attrib;
 
        if (pattrib->encrypt)
-               recvframe_pull_tail(precvframe, pattrib->icv_len);
+               skb_trim(precvframe->pkt, precvframe->pkt->len - 
pattrib->icv_len);
 
        psnap = (struct ieee80211_snap_hdr *)(ptr+pattrib->hdrlen + 
pattrib->iv_len);
        psnap_type = ptr+pattrib->hdrlen + pattrib->iv_len+SNAP_SIZE;
@@ -1303,7 +1300,7 @@ static int wlanhdr_to_ethhdr(struct recv_frame 
*precvframe)
        }
 
        rmv_len = pattrib->hdrlen + pattrib->iv_len + (bsnaphdr ? SNAP_SIZE : 
0);
-       len = precvframe->len - rmv_len;
+       len = precvframe->pkt->len - rmv_len;
 
        RT_TRACE(_module_rtl871x_recv_c_, _drv_info_,
                 ("\n===pattrib->hdrlen: %x,  pattrib->iv_len:%x===\n\n", 
pattrib->hdrlen,  pattrib->iv_len));
@@ -1312,7 +1309,7 @@ static int wlanhdr_to_ethhdr(struct recv_frame 
*precvframe)
        eth_type = ntohs(be_tmp); /* pattrib->ether_type */
        pattrib->eth_type = eth_type;
 
-       ptr = recvframe_pull(precvframe, (rmv_len-sizeof(struct ethhdr) + 
(bsnaphdr ? 2 : 0)));
+       ptr = skb_pull(precvframe->pkt, rmv_len - sizeof(struct ethhdr) + 
(bsnaphdr ? 2 : 0));
        if (!ptr)
                return _FAIL;
 
@@ -1383,15 +1380,16 @@ static struct recv_frame *recvframe_defrag(struct 
adapter *adapter,
 
                wlanhdr_offset = pnfhdr->attrib.hdrlen + pnfhdr->attrib.iv_len;
 
-               recvframe_pull(pnextrframe, wlanhdr_offset);
+               skb_pull(pnextrframe->pkt, wlanhdr_offset);
 
                /* append  to first fragment frame's tail (if privacy frame, 
pull the ICV) */
-               recvframe_pull_tail(prframe, pfhdr->attrib.icv_len);
+               skb_trim(prframe->pkt, prframe->pkt->len - 
pfhdr->attrib.icv_len);
 
                /* memcpy */
-               memcpy(pfhdr->rx_tail, pnfhdr->rx_data, pnfhdr->len);
+               memcpy(skb_tail_pointer(pfhdr->pkt), pnfhdr->pkt->data,
+                      pnfhdr->pkt->len);
 
-               recvframe_put(prframe, pnfhdr->len);
+               skb_put(prframe->pkt, pnfhdr->pkt->len);
 
                pfhdr->attrib.icv_len = pnfhdr->attrib.icv_len;
                plist = plist->next;
@@ -1432,7 +1430,7 @@ struct recv_frame *recvframe_chk_defrag(struct adapter 
*padapter,
        psta_addr = pfhdr->attrib.ta;
        psta = rtw_get_stainfo(pstapriv, psta_addr);
        if (psta == NULL) {
-               u8 type = GetFrameType(pfhdr->rx_data);
+               u8 type = GetFrameType(pfhdr->pkt->data);
 
                if (type != WIFI_DATA_TYPE) {
                        psta = rtw_get_bcmc_stainfo(padapter);
@@ -1520,14 +1518,14 @@ static int amsdu_to_msdu(struct adapter *padapter, 
struct recv_frame *prframe)
        nr_subframes = 0;
        pattrib = &prframe->attrib;
 
-       recvframe_pull(prframe, prframe->attrib.hdrlen);
+       skb_pull(prframe->pkt, prframe->attrib.hdrlen);
 
        if (prframe->attrib.iv_len > 0)
-               recvframe_pull(prframe, prframe->attrib.iv_len);
+               skb_pull(prframe->pkt, prframe->attrib.iv_len);
 
-       a_len = prframe->len;
+       a_len = prframe->pkt->len;
 
-       pdata = prframe->rx_data;
+       pdata = prframe->pkt->data;
 
        while (a_len > ETH_HLEN) {
                /* Offset 12 denote 2 mac address */
@@ -1614,8 +1612,6 @@ static int amsdu_to_msdu(struct adapter *padapter, struct 
recv_frame *prframe)
        }
 
 exit:
-
-       prframe->len = 0;
        rtw_free_recvframe(prframe, pfree_recv_queue);/* free this recv_frame */
 
        return _SUCCESS;
diff --git a/drivers/staging/rtl8188eu/core/rtw_security.c 
b/drivers/staging/rtl8188eu/core/rtw_security.c
index 34b265d..b283a490 100644
--- a/drivers/staging/rtl8188eu/core/rtw_security.c
+++ b/drivers/staging/rtl8188eu/core/rtw_security.c
@@ -208,7 +208,7 @@ void rtw_wep_decrypt(struct adapter  *padapter, u8 
*precvframe)
        struct  security_priv   *psecuritypriv = &padapter->securitypriv;
 
 
-       pframe = (unsigned char *)((struct recv_frame *)precvframe)->rx_data;
+       pframe = (unsigned char *)((struct recv_frame *)precvframe)->pkt->data;
 
        /* start to decrypt recvframe */
        if ((prxattrib->encrypt == _WEP40_) || (prxattrib->encrypt == 
_WEP104_)) {
@@ -217,7 +217,7 @@ void rtw_wep_decrypt(struct adapter  *padapter, u8 
*precvframe)
                keylength = psecuritypriv->dot11DefKeylen[keyindex];
                memcpy(&wepkey[0], iv, 3);
                memcpy(&wepkey[3], 
&psecuritypriv->dot11DefKey[keyindex].skey[0], keylength);
-               length = ((struct recv_frame 
*)precvframe)->len-prxattrib->hdrlen-prxattrib->iv_len;
+               length = ((struct recv_frame 
*)precvframe)->pkt->len-prxattrib->hdrlen-prxattrib->iv_len;
 
                payload = pframe+prxattrib->iv_len+prxattrib->hdrlen;
 
@@ -659,7 +659,7 @@ u32 rtw_tkip_decrypt(struct adapter *padapter, u8 
*precvframe)
        u32             res = _SUCCESS;
 
 
-       pframe = (unsigned char *)((struct recv_frame *)precvframe)->rx_data;
+       pframe = (unsigned char *)((struct recv_frame *)precvframe)->pkt->data;
 
        /* 4 start to decrypt recvframe */
        if (prxattrib->encrypt == _TKIP_) {
@@ -679,7 +679,7 @@ u32 rtw_tkip_decrypt(struct adapter *padapter, u8 
*precvframe)
 
                        iv = pframe+prxattrib->hdrlen;
                        payload = pframe+prxattrib->iv_len+prxattrib->hdrlen;
-                       length = ((struct recv_frame 
*)precvframe)->len-prxattrib->hdrlen-prxattrib->iv_len;
+                       length = ((struct recv_frame 
*)precvframe)->pkt->len-prxattrib->hdrlen-prxattrib->iv_len;
 
                        GET_TKIP_PN(iv, dot11txpn);
 
@@ -1470,7 +1470,7 @@ u32       rtw_aes_decrypt(struct adapter *padapter, u8 
*precvframe)
        struct  security_priv   *psecuritypriv = &padapter->securitypriv;
        u32     res = _SUCCESS;
 
-       pframe = (unsigned char *)((struct recv_frame *)precvframe)->rx_data;
+       pframe = (unsigned char *)((struct recv_frame *)precvframe)->pkt->data;
        /* 4 start to encrypt each fragment */
        if (prxattrib->encrypt == _AES_) {
                stainfo = rtw_get_stainfo(&padapter->stapriv, 
&prxattrib->ta[0]);
@@ -1494,7 +1494,7 @@ u32       rtw_aes_decrypt(struct adapter *padapter, u8 
*precvframe)
                        } else {
                                prwskey = &stainfo->dot118021x_UncstKey.skey[0];
                        }
-                       length = ((struct recv_frame 
*)precvframe)->len-prxattrib->hdrlen-prxattrib->iv_len;
+                       length = ((struct recv_frame 
*)precvframe)->pkt->len-prxattrib->hdrlen-prxattrib->iv_len;
                        res = aes_decipher(prwskey, prxattrib->hdrlen, pframe, 
length);
                } else {
                        RT_TRACE(_module_rtl871x_security_c_, _drv_err_, 
("rtw_aes_encrypt: stainfo==NULL!!!\n"));
diff --git a/drivers/staging/rtl8188eu/hal/rtl8188e_rxdesc.c 
b/drivers/staging/rtl8188eu/hal/rtl8188e_rxdesc.c
index fa2cfd5..d9fa290 100644
--- a/drivers/staging/rtl8188eu/hal/rtl8188e_rxdesc.c
+++ b/drivers/staging/rtl8188eu/hal/rtl8188e_rxdesc.c
@@ -150,7 +150,7 @@ void update_recvframe_phyinfo_88e(struct recv_frame 
*precvframe,
        pkt_info.bPacketToSelf = false;
        pkt_info.bPacketBeacon = false;
 
-       wlanhdr = precvframe->rx_data;
+       wlanhdr = precvframe->pkt->data;
 
        pkt_info.bPacketMatchBSSID = ((!IsFrameTypeCtrl(wlanhdr)) &&
                !pattrib->icv_err && !pattrib->crc_err &&
diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h 
b/drivers/staging/rtl8188eu/include/rtw_recv.h
index d4d8a74..b369f08 100644
--- a/drivers/staging/rtl8188eu/include/rtw_recv.h
+++ b/drivers/staging/rtl8188eu/include/rtw_recv.h
@@ -228,9 +228,6 @@ struct recv_frame {
        struct sk_buff   *pkt;
        struct adapter  *adapter;
        struct rx_pkt_attrib attrib;
-       uint  len;
-       u8 *rx_data;
-       u8 *rx_tail;
        struct sta_info *psta;
        /* for A-MPDU Rx reordering buffer control */
        struct recv_reorder_ctrl *preorder_ctrl;
@@ -252,65 +249,6 @@ u32 rtw_free_uc_swdec_pending_queue(struct adapter 
*adapter);
 
 void rtw_reordering_ctrl_timeout_handler(unsigned long data);
 
-static inline u8 *recvframe_pull(struct recv_frame *precvframe, int sz)
-{
-       /*  rx_data += sz; move rx_data sz bytes  hereafter */
-
-       /* used for extract sz bytes from rx_data, update rx_data and return
-        * the updated rx_data to the caller */
-
-       if (precvframe == NULL)
-               return NULL;
-
-       skb_pull(precvframe->pkt, sz);
-       precvframe->rx_data += sz;
-       if (precvframe->rx_data > precvframe->rx_tail) {
-               precvframe->rx_data -= sz;
-               return NULL;
-       }
-       precvframe->len -= sz;
-       return precvframe->rx_data;
-}
-
-static inline u8 *recvframe_put(struct recv_frame *precvframe, int sz)
-{
-       /* used for append sz bytes from ptr to rx_tail, update rx_tail
-        * and return the updated rx_tail to the caller */
-       /* after putting, rx_tail must be still larger than rx_end. */
-
-       if (precvframe == NULL)
-               return NULL;
-       skb_put(precvframe->pkt, sz);
-       precvframe->rx_tail += sz;
-
-       if (precvframe->rx_tail > precvframe->pkt->end) {
-               precvframe->rx_tail -= sz;
-               return NULL;
-       }
-       precvframe->len += sz;
-       return precvframe->rx_tail;
-}
-
-static inline u8 *recvframe_pull_tail(struct recv_frame *precvframe, int sz)
-{
-       /*  rmv data from rx_tail (by yitsen) */
-
-       /* used for extract sz bytes from rx_end, update rx_end and return
-        * the updated rx_end to the caller */
-       /* after pulling, rx_end must be still larger than rx_data. */
-
-       if (precvframe == NULL)
-               return NULL;
-       skb_trim(precvframe->pkt, precvframe->pkt->len - sz);
-       precvframe->rx_tail -= sz;
-       if (precvframe->rx_tail < precvframe->rx_data) {
-               precvframe->rx_tail += sz;
-               return NULL;
-       }
-       precvframe->len -= sz;
-       return precvframe->rx_tail;
-}
-
 static inline s32 translate_percentage_to_dbm(u32 sig_stren_index)
 {
        s32     power; /*  in dBm. */
diff --git a/drivers/staging/rtl8188eu/os_dep/mon.c 
b/drivers/staging/rtl8188eu/os_dep/mon.c
index c9c9821..cfe37eb 100644
--- a/drivers/staging/rtl8188eu/os_dep/mon.c
+++ b/drivers/staging/rtl8188eu/os_dep/mon.c
@@ -92,8 +92,8 @@ void rtl88eu_mon_recv_hook(struct net_device *dev, struct 
recv_frame *frame)
                return;
 
        attr = &frame->attrib;
-       data = frame->rx_data;
-       data_len = frame->len;
+       data = frame->pkt->data;
+       data_len = frame->pkt->len;
 
        /* Broadcast and multicast frames don't have attr->{iv,icv}_len set */
        SET_ICE_IV_LEN(iv_len, icv_len, attr->encrypt);
diff --git a/drivers/staging/rtl8188eu/os_dep/recv_linux.c 
b/drivers/staging/rtl8188eu/os_dep/recv_linux.c
index df4bcef..d14bc2b 100644
--- a/drivers/staging/rtl8188eu/os_dep/recv_linux.c
+++ b/drivers/staging/rtl8188eu/os_dep/recv_linux.c
@@ -88,12 +88,6 @@ int rtw_recv_indicatepkt(struct adapter *padapter,
                goto _recv_indicatepkt_drop;
        }
 
-       skb->data = precv_frame->rx_data;
-
-       skb_set_tail_pointer(skb, precv_frame->len);
-
-       skb->len = precv_frame->len;
-
        if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) {
                struct sk_buff *pskb2 = NULL;
                struct sta_info *psta = NULL;
diff --git a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c 
b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
index cdb2fd3..64397b6 100644
--- a/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
+++ b/drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
@@ -73,7 +73,6 @@ static int recvbuf2recvframe(struct adapter *adapt, struct 
sk_buff *pskb)
                }
 
                INIT_LIST_HEAD(&precvframe->list);
-               precvframe->len = 0;
 
                update_recvframe_attrib_88e(precvframe, prxstat);
 
@@ -128,16 +127,13 @@ static int recvbuf2recvframe(struct adapter *adapt, 
struct sk_buff *pskb)
                        skb_reserve(pkt_copy, 8 - ((size_t)(pkt_copy->data) & 
7));/* force pkt_copy->data at 8-byte alignment address */
                        skb_reserve(pkt_copy, shift_sz);/* force ip_hdr at 
8-byte alignment address according to shift_sz. */
                        memcpy(pkt_copy->data, (pbuf + pattrib->drvinfo_sz + 
RXDESC_SIZE), skb_len);
-                       precvframe->rx_tail = pkt_copy->data;
-                       precvframe->rx_data = pkt_copy->data;
+                       skb_put(precvframe->pkt, skb_len);
                } else {
                        DBG_88E("recvbuf2recvframe: alloc_skb fail , drop frag 
frame\n");
                        rtw_free_recvframe(precvframe, pfree_recv_queue);
                        goto _exit_recvbuf2recvframe;
                }
 
-               recvframe_put(precvframe, skb_len);
-
                switch (haldata->UsbRxAggMode) {
                case USB_RX_AGG_DMA:
                case USB_RX_AGG_MIX:
@@ -159,19 +155,19 @@ static int recvbuf2recvframe(struct adapter *adapt, 
struct sk_buff *pskb)
                        }
                } else if (pattrib->pkt_rpt_type == TX_REPORT1) {
                        /* CCX-TXRPT ack for xmit mgmt frames. */
-                       handle_txrpt_ccx_88e(adapt, precvframe->rx_data);
+                       handle_txrpt_ccx_88e(adapt, precvframe->pkt->data);
                        rtw_free_recvframe(precvframe, pfree_recv_queue);
                } else if (pattrib->pkt_rpt_type == TX_REPORT2) {
                        ODM_RA_TxRPT2Handle_8188E(
                                                &haldata->odmpriv,
-                                               precvframe->rx_data,
+                                               precvframe->pkt->data,
                                                pattrib->pkt_len,
                                                pattrib->MacIDValidEntry[0],
                                                pattrib->MacIDValidEntry[1]
                                                );
                        rtw_free_recvframe(precvframe, pfree_recv_queue);
                } else if (pattrib->pkt_rpt_type == HIS_REPORT) {
-                       interrupt_handler_8188eu(adapt, pattrib->pkt_len, 
precvframe->rx_data);
+                       interrupt_handler_8188eu(adapt, pattrib->pkt_len, 
precvframe->pkt->data);
                        rtw_free_recvframe(precvframe, pfree_recv_queue);
                }
                pkt_cnt--;
-- 
2.10.2

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to