aboutsummaryrefslogtreecommitdiffstats
path: root/net/sched/cls_basic.c
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2008-01-23 23:33:32 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:11:18 -0500
commitcee63723b358e594225e812d6e14a2a0abfd5c88 (patch)
tree847f929e0f445cca8cdf55d7c17a56b0d0f2ec68 /net/sched/cls_basic.c
parentab27cfb85c5778400740ad0c401bde65616774eb (diff)
[NET_SCHED]: Propagate nla_parse return value
nla_parse() returns more detailed errno codes, propagate them back on error. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/cls_basic.c')
-rw-r--r--net/sched/cls_basic.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/net/sched/cls_basic.c b/net/sched/cls_basic.c
index 3953da33956f..524b7885dc32 100644
--- a/net/sched/cls_basic.c
+++ b/net/sched/cls_basic.c
@@ -166,7 +166,7 @@ errout:
166static int basic_change(struct tcf_proto *tp, unsigned long base, u32 handle, 166static int basic_change(struct tcf_proto *tp, unsigned long base, u32 handle,
167 struct nlattr **tca, unsigned long *arg) 167 struct nlattr **tca, unsigned long *arg)
168{ 168{
169 int err = -EINVAL; 169 int err;
170 struct basic_head *head = (struct basic_head *) tp->root; 170 struct basic_head *head = (struct basic_head *) tp->root;
171 struct nlattr *tb[TCA_BASIC_MAX + 1]; 171 struct nlattr *tb[TCA_BASIC_MAX + 1];
172 struct basic_filter *f = (struct basic_filter *) *arg; 172 struct basic_filter *f = (struct basic_filter *) *arg;
@@ -174,8 +174,9 @@ static int basic_change(struct tcf_proto *tp, unsigned long base, u32 handle,
174 if (tca[TCA_OPTIONS] == NULL) 174 if (tca[TCA_OPTIONS] == NULL)
175 return -EINVAL; 175 return -EINVAL;
176 176
177 if (nla_parse_nested(tb, TCA_BASIC_MAX, tca[TCA_OPTIONS], NULL) < 0) 177 err = nla_parse_nested(tb, TCA_BASIC_MAX, tca[TCA_OPTIONS], NULL);
178 return -EINVAL; 178 if (err < 0)
179 return err;
179 180
180 if (f != NULL) { 181 if (f != NULL) {
181 if (handle && f->handle != handle) 182 if (handle && f->handle != handle)