[PATCH 2.6] deliver_skb cleanup

STALE8027d

4 messages, 2 authors, 2004-08-25 · open the first message on its own page

[PATCH 2.6] deliver_skb cleanup

From: Stephen Hemminger <hidden>
Date: 2004-08-24 18:07:11

Cleanup of deliver_skb: get rid of unused argument and use it
in the NET_CLS_ACT hook.

Signed-off-by: Stephen Hemminger <redacted>

diff -Nru a/net/core/dev.c b/net/core/dev.c
--- a/net/core/dev.c	2004-08-24 11:05:51 -07:00
+++ b/net/core/dev.c	2004-08-24 11:05:51 -07:00
@@ -1676,7 +1676,7 @@
 }
 
 static __inline__ int deliver_skb(struct sk_buff *skb,
-				  struct packet_type *pt_prev, int last)
+				  struct packet_type *pt_prev)
 {
 	atomic_inc(&skb->users);
 	return pt_prev->func(skb, skb->dev, pt_prev);
@@ -1691,7 +1691,7 @@
 {
 	int ret = NET_RX_DROP;
 	if (pt_prev)
-		ret = deliver_skb(skb, pt_prev, 0);
+		ret = deliver_skb(skb, pt_prev);
 
 	return ret;
 }
@@ -1791,15 +1791,14 @@
 	list_for_each_entry_rcu(ptype, &ptype_all, list) {
 		if (!ptype->dev || ptype->dev == skb->dev) {
 			if (pt_prev) 
-				ret = deliver_skb(skb, pt_prev, 0);
+				ret = deliver_skb(skb, pt_prev);
 			pt_prev = ptype;
 		}
 	}
 
 #ifdef CONFIG_NET_CLS_ACT
 	if (pt_prev) {
-		atomic_inc(&skb->users);
-		ret = pt_prev->func(skb, skb->dev, pt_prev);
+		ret = deliver_skb(skb, pt_prev);
 		pt_prev = NULL; /* noone else should process this after*/
 	} else {
 		skb->tc_verd = SET_TC_OK2MUNGE(skb->tc_verd);
@@ -1826,7 +1825,7 @@
 		if (ptype->type == type &&
 		    (!ptype->dev || ptype->dev == skb->dev)) {
 			if (pt_prev) 
-				ret = deliver_skb(skb, pt_prev, 0);
+				ret = deliver_skb(skb, pt_prev);
 			pt_prev = ptype;
 		}
 	}

Re: [PATCH 2.6] deliver_skb cleanup

From: Stephen Hemminger <hidden>
Date: 2004-08-24 18:35:37

Another cleanup in netif_receive_skb. Move rcu_read_lock up a little,
since it needs to be done in both branches anyway. Also whitespace fix.

Signed-off-by: Stephen Hemminger <redacted>
 
diff -Nru a/net/core/dev.c b/net/core/dev.c
--- a/net/core/dev.c	2004-08-24 11:34:41 -07:00
+++ b/net/core/dev.c	2004-08-24 11:34:41 -07:00
@@ -1779,15 +1779,16 @@
 	skb->mac_len = skb->nh.raw - skb->mac.raw;
 
 	pt_prev = NULL;
+
+	rcu_read_lock();
+
 #ifdef CONFIG_NET_CLS_ACT
 	if (skb->tc_verd & TC_NCLS) {
 		skb->tc_verd = CLR_TC_NCLS(skb->tc_verd);
-		rcu_read_lock();
 		goto ncls;
 	}
- #endif
+#endif
 
-	rcu_read_lock();
 	list_for_each_entry_rcu(ptype, &ptype_all, list) {
 		if (!ptype->dev || ptype->dev == skb->dev) {
 			if (pt_prev) 

Re: [PATCH 2.6] deliver_skb cleanup

From: David S. Miller <hidden>
Date: 2004-08-25 00:23:53

On Tue, 24 Aug 2004 11:07:11 -0700
Stephen Hemminger [off-list ref] wrote:
Cleanup of deliver_skb: get rid of unused argument and use it
in the NET_CLS_ACT hook.
Looks good, applied.

Re: [PATCH 2.6] deliver_skb cleanup

From: David S. Miller <hidden>
Date: 2004-08-25 00:25:34

On Tue, 24 Aug 2004 11:35:37 -0700
Stephen Hemminger [off-list ref] wrote:
Another cleanup in netif_receive_skb. Move rcu_read_lock up a little,
since it needs to be done in both branches anyway. Also whitespace fix.
Also applied, thanks Stephen.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help