projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[powerpc.git]
/
net
/
sched
/
act_api.c
diff --git
a/net/sched/act_api.c
b/net/sched/act_api.c
index
5b9397b
..
599423c
100644
(file)
--- a/
net/sched/act_api.c
+++ b/
net/sched/act_api.c
@@
-250,15
+250,17
@@
tcf_action_dump(struct sk_buff *skb, struct tc_action *act, int bind, int ref)
RTA_PUT(skb, a->order, 0, NULL);
err = tcf_action_dump_1(skb, a, bind, ref);
if (err < 0)
RTA_PUT(skb, a->order, 0, NULL);
err = tcf_action_dump_1(skb, a, bind, ref);
if (err < 0)
- goto
rtattr_failure
;
+ goto
errout
;
r->rta_len = skb->tail - (u8*)r;
}
return 0;
rtattr_failure:
r->rta_len = skb->tail - (u8*)r;
}
return 0;
rtattr_failure:
+ err = -EINVAL;
+errout:
skb_trim(skb, b - skb->data);
skb_trim(skb, b - skb->data);
- return
-
err;
+ return err;
}
struct tc_action *tcf_action_init_1(struct rtattr *rta, struct rtattr *est,
}
struct tc_action *tcf_action_init_1(struct rtattr *rta, struct rtattr *est,
@@
-305,6
+307,7
@@
struct tc_action *tcf_action_init_1(struct rtattr *rta, struct rtattr *est,
goto err_mod;
}
#endif
goto err_mod;
}
#endif
+ *err = -ENOENT;
goto err_out;
}
goto err_out;
}
@@
-776,7
+779,7
@@
replay:
return ret;
}
return ret;
}
-static
cha
r *
+static
struct rtatt
r *
find_dump_kind(struct nlmsghdr *n)
{
struct rtattr *tb1, *tb2[TCA_ACT_MAX+1];
find_dump_kind(struct nlmsghdr *n)
{
struct rtattr *tb1, *tb2[TCA_ACT_MAX+1];
@@
-804,7
+807,7
@@
find_dump_kind(struct nlmsghdr *n)
return NULL;
kind = tb2[TCA_ACT_KIND-1];
return NULL;
kind = tb2[TCA_ACT_KIND-1];
- return
(char *) RTA_DATA(kind)
;
+ return
kind
;
}
static int
}
static int
@@
-817,16
+820,15
@@
tc_dump_action(struct sk_buff *skb, struct netlink_callback *cb)
struct tc_action a;
int ret = 0;
struct tcamsg *t = (struct tcamsg *) NLMSG_DATA(cb->nlh);
struct tc_action a;
int ret = 0;
struct tcamsg *t = (struct tcamsg *) NLMSG_DATA(cb->nlh);
-
cha
r *kind = find_dump_kind(cb->nlh);
+
struct rtatt
r *kind = find_dump_kind(cb->nlh);
if (kind == NULL) {
printk("tc_dump_action: action bad kind\n");
return 0;
}
if (kind == NULL) {
printk("tc_dump_action: action bad kind\n");
return 0;
}
- a_o = tc_lookup_action
_n
(kind);
+ a_o = tc_lookup_action(kind);
if (a_o == NULL) {
if (a_o == NULL) {
- printk("failed to find %s\n", kind);
return 0;
}
return 0;
}
@@
-834,7
+836,7
@@
tc_dump_action(struct sk_buff *skb, struct netlink_callback *cb)
a.ops = a_o;
if (a_o->walk == NULL) {
a.ops = a_o;
if (a_o->walk == NULL) {
- printk("tc_dump_action: %s !capable of dumping table\n", kind);
+ printk("tc_dump_action: %s !capable of dumping table\n",
a_o->
kind);
goto rtattr_failure;
}
goto rtattr_failure;
}