aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/netdevice.h1
-rw-r--r--net/core/dev.c14
2 files changed, 8 insertions, 7 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 01646aa53b0e..a659fd0ba965 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1663,7 +1663,6 @@ extern int netpoll_trap(void);
1663#endif 1663#endif
1664extern int skb_gro_receive(struct sk_buff **head, 1664extern int skb_gro_receive(struct sk_buff **head,
1665 struct sk_buff *skb); 1665 struct sk_buff *skb);
1666extern void skb_gro_reset_offset(struct sk_buff *skb);
1667 1666
1668static inline unsigned int skb_gro_offset(const struct sk_buff *skb) 1667static inline unsigned int skb_gro_offset(const struct sk_buff *skb)
1669{ 1668{
diff --git a/net/core/dev.c b/net/core/dev.c
index 1e0a1847c3bb..de2bad717d56 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3631,20 +3631,22 @@ gro_result_t napi_skb_finish(gro_result_t ret, struct sk_buff *skb)
3631} 3631}
3632EXPORT_SYMBOL(napi_skb_finish); 3632EXPORT_SYMBOL(napi_skb_finish);
3633 3633
3634void skb_gro_reset_offset(struct sk_buff *skb) 3634static void skb_gro_reset_offset(struct sk_buff *skb)
3635{ 3635{
3636 const struct skb_shared_info *pinfo = skb_shinfo(skb);
3637 const skb_frag_t *frag0 = &pinfo->frags[0];
3638
3636 NAPI_GRO_CB(skb)->data_offset = 0; 3639 NAPI_GRO_CB(skb)->data_offset = 0;
3637 NAPI_GRO_CB(skb)->frag0 = NULL; 3640 NAPI_GRO_CB(skb)->frag0 = NULL;
3638 NAPI_GRO_CB(skb)->frag0_len = 0; 3641 NAPI_GRO_CB(skb)->frag0_len = 0;
3639 3642
3640 if (skb->mac_header == skb->tail && 3643 if (skb->mac_header == skb->tail &&
3641 !PageHighMem(skb_frag_page(&skb_shinfo(skb)->frags[0]))) { 3644 pinfo->nr_frags &&
3642 NAPI_GRO_CB(skb)->frag0 = 3645 !PageHighMem(skb_frag_page(frag0))) {
3643 skb_frag_address(&skb_shinfo(skb)->frags[0]); 3646 NAPI_GRO_CB(skb)->frag0 = skb_frag_address(frag0);
3644 NAPI_GRO_CB(skb)->frag0_len = skb_frag_size(&skb_shinfo(skb)->frags[0]); 3647 NAPI_GRO_CB(skb)->frag0_len = skb_frag_size(frag0);
3645 } 3648 }
3646} 3649}
3647EXPORT_SYMBOL(skb_gro_reset_offset);
3648 3650
3649gro_result_t napi_gro_receive(struct napi_struct *napi, struct sk_buff *skb) 3651gro_result_t napi_gro_receive(struct napi_struct *napi, struct sk_buff *skb)
3650{ 3652{