diff options
Diffstat (limited to 'net/sched/act_mirred.c')
| -rw-r--r-- | net/sched/act_mirred.c | 11 | 
1 files changed, 5 insertions, 6 deletions
diff --git a/net/sched/act_mirred.c b/net/sched/act_mirred.c index fe81cc18e9e..9c0fd0c7881 100644 --- a/net/sched/act_mirred.c +++ b/net/sched/act_mirred.c @@ -200,13 +200,12 @@ static int tcf_mirred(struct sk_buff *skb, const struct tc_action *a,  out:  	if (err) {  		m->tcf_qstats.overlimits++; -		/* should we be asking for packet to be dropped? -		 * may make sense for redirect case only -		 */ -		retval = TC_ACT_SHOT; -	} else { +		if (m->tcfm_eaction != TCA_EGRESS_MIRROR) +			retval = TC_ACT_SHOT; +		else +			retval = m->tcf_action; +	} else  		retval = m->tcf_action; -	}  	spin_unlock(&m->tcf_lock);  	return retval;  |