Subject: Re: Kernel panic eth2 mirred redirect to ifb0

From: Jarek Poplawski <[email-masked]>
Date: Sun, 19 Dec 2010 23:26:23 +0100

Jarek Poplawski wrote:
> Jarek Poplawski wrote:
>> Paweł Staszewski wrote:
> 
>>> for sch_generic.h was ok.
>>
>> Should be enough to try after reverting this sch_generic.h change only.
> 
> Hmm... Sorry, I meant the change inside skb_act_clone(). I'll send a patch.

Here it is.
  
Jarek P.

diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
index ea1f8a8..8763ccc 100644
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
@@ -608,13 +608,7 @@ static inline u32 qdisc_l2t(struct qdisc_rate_table* rtab, unsigned int pktlen)
 static inline struct sk_buff *skb_act_clone(struct sk_buff *skb, gfp_t gfp_mask,
 					    int action)
 {
-	struct sk_buff *n;
-
-	if ((action == TC_ACT_STOLEN || action == TC_ACT_QUEUED) &&
-	    !skb_shared(skb))
-		n = skb_get(skb);
-	else
-		n = skb_clone(skb, gfp_mask);
+	struct sk_buff *n = skb_clone(skb, gfp_mask);
 
 	if (n) {
 		n->tc_verd = SET_TC_VERD(n->tc_verd, 0);