[PATCH 1/4] gro: Move common completion code into helpers

Previous thread: [0/4] GRO optimisations by Herbert Xu on Thursday, January 29, 2009 - 5:18 pm. (5 messages)

Next thread: [PATCH 2/4] gro: Avoid copying headers of unmerged packets by Herbert Xu on Thursday, January 29, 2009 - 5:19 pm. (1 message)
From: Herbert Xu
Date: Thursday, January 29, 2009 - 5:19 pm

gro: Move common completion code into helpers

Currently VLAN still has a bit of common code handling the aftermath
of GRO that's shared with the common path.  This patch moves them
into shared helpers to reduce code duplication.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
---

 include/linux/netdevice.h |    3 +
 net/8021q/vlan_core.c     |   39 ++---------------------
 net/core/dev.c            |   76 +++++++++++++++++++++++++++++++---------------
 3 files changed, 59 insertions(+), 59 deletions(-)

diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index f245568..c6b7a25 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1372,12 +1372,15 @@ extern int		netif_receive_skb(struct sk_buff *skb);
 extern void		napi_gro_flush(struct napi_struct *napi);
 extern int		dev_gro_receive(struct napi_struct *napi,
 					struct sk_buff *skb);
+extern int		napi_skb_finish(int ret, struct sk_buff *skb);
 extern int		napi_gro_receive(struct napi_struct *napi,
 					 struct sk_buff *skb);
 extern void		napi_reuse_skb(struct napi_struct *napi,
 				       struct sk_buff *skb);
 extern struct sk_buff *	napi_fraginfo_skb(struct napi_struct *napi,
 					  struct napi_gro_fraginfo *info);
+extern int		napi_frags_finish(struct napi_struct *napi,
+					  struct sk_buff *skb, int ret);
 extern int		napi_gro_frags(struct napi_struct *napi,
 				       struct napi_gro_fraginfo *info);
 extern void		netif_nit_deliver(struct sk_buff *skb);
diff --git a/net/8021q/vlan_core.c b/net/8021q/vlan_core.c
index 6c13239..e9339d0 100644
--- a/net/8021q/vlan_core.c
+++ b/net/8021q/vlan_core.c
@@ -98,22 +98,7 @@ drop:
 int vlan_gro_receive(struct napi_struct *napi, struct vlan_group *grp,
 		     unsigned int vlan_tci, struct sk_buff *skb)
 {
-	int err = NET_RX_SUCCESS;
-
-	switch (vlan_gro_common(napi, grp, vlan_tci, skb)) {
-	case -1:
-		return netif_receive_skb(skb);
-
-	case 2:
-		err = NET_RX_DROP;
-		/* fall through */
-
-	case ...
Previous thread: [0/4] GRO optimisations by Herbert Xu on Thursday, January 29, 2009 - 5:18 pm. (5 messages)

Next thread: [PATCH 2/4] gro: Avoid copying headers of unmerged packets by Herbert Xu on Thursday, January 29, 2009 - 5:19 pm. (1 message)