diff options
author | Igor Maravić <igorm@etf.rs> | 2011-08-29 23:12:55 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-09-15 14:49:43 -0400 |
commit | 27e95a8c670e0c587990ec5b9a87a7ea17873d28 (patch) | |
tree | 65da62db2ef37f59d6bece2922da1b5da77ec3b8 /net | |
parent | 150966ad56291776a1f3fed86000a027e0794922 (diff) |
pkt_sched: cls_rsvp.h was outdated
File cls_rsvp.h in /net/sched was outdated. I'm sending you patch for this
file.
[ tb[] array should be indexed by X not X-1 -DaveM ]
Signed-off-by: Igor Maravić <igorm@etf.rs>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/sched/cls_rsvp.h | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/net/sched/cls_rsvp.h b/net/sched/cls_rsvp.h index be4505ee67a9..b01427924f81 100644 --- a/net/sched/cls_rsvp.h +++ b/net/sched/cls_rsvp.h | |||
@@ -425,7 +425,7 @@ static int rsvp_change(struct tcf_proto *tp, unsigned long base, | |||
425 | struct rsvp_filter *f, **fp; | 425 | struct rsvp_filter *f, **fp; |
426 | struct rsvp_session *s, **sp; | 426 | struct rsvp_session *s, **sp; |
427 | struct tc_rsvp_pinfo *pinfo = NULL; | 427 | struct tc_rsvp_pinfo *pinfo = NULL; |
428 | struct nlattr *opt = tca[TCA_OPTIONS-1]; | 428 | struct nlattr *opt = tca[TCA_OPTIONS]; |
429 | struct nlattr *tb[TCA_RSVP_MAX + 1]; | 429 | struct nlattr *tb[TCA_RSVP_MAX + 1]; |
430 | struct tcf_exts e; | 430 | struct tcf_exts e; |
431 | unsigned int h1, h2; | 431 | unsigned int h1, h2; |
@@ -439,7 +439,7 @@ static int rsvp_change(struct tcf_proto *tp, unsigned long base, | |||
439 | if (err < 0) | 439 | if (err < 0) |
440 | return err; | 440 | return err; |
441 | 441 | ||
442 | err = tcf_exts_validate(tp, tb, tca[TCA_RATE-1], &e, &rsvp_ext_map); | 442 | err = tcf_exts_validate(tp, tb, tca[TCA_RATE], &e, &rsvp_ext_map); |
443 | if (err < 0) | 443 | if (err < 0) |
444 | return err; | 444 | return err; |
445 | 445 | ||
@@ -449,8 +449,8 @@ static int rsvp_change(struct tcf_proto *tp, unsigned long base, | |||
449 | 449 | ||
450 | if (f->handle != handle && handle) | 450 | if (f->handle != handle && handle) |
451 | goto errout2; | 451 | goto errout2; |
452 | if (tb[TCA_RSVP_CLASSID-1]) { | 452 | if (tb[TCA_RSVP_CLASSID]) { |
453 | f->res.classid = nla_get_u32(tb[TCA_RSVP_CLASSID-1]); | 453 | f->res.classid = nla_get_u32(tb[TCA_RSVP_CLASSID]); |
454 | tcf_bind_filter(tp, &f->res, base); | 454 | tcf_bind_filter(tp, &f->res, base); |
455 | } | 455 | } |
456 | 456 | ||
@@ -462,7 +462,7 @@ static int rsvp_change(struct tcf_proto *tp, unsigned long base, | |||
462 | err = -EINVAL; | 462 | err = -EINVAL; |
463 | if (handle) | 463 | if (handle) |
464 | goto errout2; | 464 | goto errout2; |
465 | if (tb[TCA_RSVP_DST-1] == NULL) | 465 | if (tb[TCA_RSVP_DST] == NULL) |
466 | goto errout2; | 466 | goto errout2; |
467 | 467 | ||
468 | err = -ENOBUFS; | 468 | err = -ENOBUFS; |
@@ -471,19 +471,19 @@ static int rsvp_change(struct tcf_proto *tp, unsigned long base, | |||
471 | goto errout2; | 471 | goto errout2; |
472 | 472 | ||
473 | h2 = 16; | 473 | h2 = 16; |
474 | if (tb[TCA_RSVP_SRC-1]) { | 474 | if (tb[TCA_RSVP_SRC]) { |
475 | memcpy(f->src, nla_data(tb[TCA_RSVP_SRC-1]), sizeof(f->src)); | 475 | memcpy(f->src, nla_data(tb[TCA_RSVP_SRC]), sizeof(f->src)); |
476 | h2 = hash_src(f->src); | 476 | h2 = hash_src(f->src); |
477 | } | 477 | } |
478 | if (tb[TCA_RSVP_PINFO-1]) { | 478 | if (tb[TCA_RSVP_PINFO]) { |
479 | pinfo = nla_data(tb[TCA_RSVP_PINFO-1]); | 479 | pinfo = nla_data(tb[TCA_RSVP_PINFO]); |
480 | f->spi = pinfo->spi; | 480 | f->spi = pinfo->spi; |
481 | f->tunnelhdr = pinfo->tunnelhdr; | 481 | f->tunnelhdr = pinfo->tunnelhdr; |
482 | } | 482 | } |
483 | if (tb[TCA_RSVP_CLASSID-1]) | 483 | if (tb[TCA_RSVP_CLASSID]) |
484 | f->res.classid = nla_get_u32(tb[TCA_RSVP_CLASSID-1]); | 484 | f->res.classid = nla_get_u32(tb[TCA_RSVP_CLASSID]); |
485 | 485 | ||
486 | dst = nla_data(tb[TCA_RSVP_DST-1]); | 486 | dst = nla_data(tb[TCA_RSVP_DST]); |
487 | h1 = hash_dst(dst, pinfo ? pinfo->protocol : 0, pinfo ? pinfo->tunnelid : 0); | 487 | h1 = hash_dst(dst, pinfo ? pinfo->protocol : 0, pinfo ? pinfo->tunnelid : 0); |
488 | 488 | ||
489 | err = -ENOMEM; | 489 | err = -ENOMEM; |
@@ -642,8 +642,7 @@ nla_put_failure: | |||
642 | return -1; | 642 | return -1; |
643 | } | 643 | } |
644 | 644 | ||
645 | static struct tcf_proto_ops RSVP_OPS = { | 645 | static struct tcf_proto_ops RSVP_OPS __read_mostly = { |
646 | .next = NULL, | ||
647 | .kind = RSVP_ID, | 646 | .kind = RSVP_ID, |
648 | .classify = rsvp_classify, | 647 | .classify = rsvp_classify, |
649 | .init = rsvp_init, | 648 | .init = rsvp_init, |