Skip to contentSkip to conversation

:net-sched: Fix actions flushing

PATCH Applied jamal 2 participants 2 messages Aug 8, 2008 – Aug 13, 2008

Subsystems (3)
lore
Share & tools
lore

jamal

author
#0 lore raw

PATCH 1/1 :net-sched: Fix actions flushing

Caught by regression testing which i havent run in a loong time.

cheers,
jamal

net-sched: Fix actions flushing

Flushing of actions has been broken since we changed
the semantics of netlink parsed tb[X] to mean X is an attribute type. This makes the flushing work.

---
commit 4e13e943acd2aa262e1e10c7779518d3ca18cae3
tree 0d95c9b83575fb39538ad4db13adf6bc5aa09105
parent 8dd4c21ea0029bb6a9c838254460f9b1ca677531
author Jamal Hadi Salim <[email protected]> Fri, 08 Aug 2008 09:20:29 -0400 committer Jamal Hadi Salim <[email protected]> Fri, 08 Aug 2008 09:20:29 -0400

 net/sched/act_api.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)
net/sched/act_api.c +7 -2
index 26c7e1f..88b5733 100644
@@ -790,6 +790,8 @@ static int tca_action_flush(struct nlattr *nla, struct nlmsghdr *n, u32 pid)
 	err = a->ops->walk(skb, &dcb, RTM_DELACTION, a);
 	if (err < 0)
 		goto nla_put_failure;
+	if (err == 0)
+		goto noflush_out;
 
 	nla_nest_end(skb, nest);
 
@@ -807,6 +809,7 @@ nla_put_failure:
 nlmsg_failure:
 	module_put(a->ops->owner);
 err_out:
+noflush_out:
 	kfree_skb(skb);
 	kfree(a);
 	return err;
@@ -824,8 +827,10 @@ tca_action_gd(struct nlattr *nla, struct nlmsghdr *n, u32 pid, int event)
 		return ret;
 
 	if (event == RTM_DELACTION && n->nlmsg_flags&NLM_F_ROOT) {
-		if (tb[0] != NULL && tb[1] == NULL)
-			return tca_action_flush(tb[0], n, pid);
+		if (tb[1] != NULL)
+			return tca_action_flush(tb[1], n, pid);
+		else
+			return -EINVAL;
 	}
 
 	for (i = 1; i <= TCA_ACT_MAX_PRIO && tb[i]; i++) {
maintainer Applied
#1 lore raw

From: jamal <[email protected]>
Date: Fri, 08 Aug 2008 09:37:22 -0400

Quoted 1 line

Caught by regression testing which i havent run in a loong time.

Applied, thanks.