To replace rx_tail with pkt->tail. Now pkt->tail is equal to rx_tail and pkt->len is equal to len. Signed-off-by: Ivan Safonov <insafonov@xxxxxxxxx> --- drivers/staging/rtl8188eu/include/rtw_recv.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/staging/rtl8188eu/include/rtw_recv.h b/drivers/staging/rtl8188eu/include/rtw_recv.h index 9a3a978..34d13f8 100644 --- a/drivers/staging/rtl8188eu/include/rtw_recv.h +++ b/drivers/staging/rtl8188eu/include/rtw_recv.h @@ -279,17 +279,17 @@ static inline u8 *recvframe_put(struct recv_frame *precvframe, uint sz) * and return the updated rx_tail to the caller */ /* after putting, rx_tail must be still larger than rx_end. */ + u8 *tail; + if (precvframe == NULL) return NULL; - precvframe->rx_tail += sz; - - if (precvframe->rx_tail > precvframe->pkt->end) { - precvframe->rx_tail -= sz; + tail = skb_put(precvframe->pkt, sz); + if (!tail) return NULL; - } + precvframe->rx_tail += sz; precvframe->len += sz; - return precvframe->rx_tail; + return tail; } static inline void recvframe_pull_tail(struct recv_frame *precvframe, uint sz) @@ -302,11 +302,11 @@ static inline void recvframe_pull_tail(struct recv_frame *precvframe, uint sz) if (precvframe == NULL) return; - precvframe->rx_tail -= sz; - if (precvframe->rx_tail < precvframe->pkt->data) { - precvframe->rx_tail += sz; + + if (precvframe->len < sz) return; - } + precvframe->rx_tail -= sz; + skb_trim(precvframe->pkt, precvframe->pkt->len - sz); precvframe->len -= sz; } -- 2.7.3 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel