diff options
Diffstat (limited to 'net/sched/sch_atm.c')
-rw-r--r-- | net/sched/sch_atm.c | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/net/sched/sch_atm.c b/net/sched/sch_atm.c index 734be9d37d46..eb01aae117df 100644 --- a/net/sched/sch_atm.c +++ b/net/sched/sch_atm.c | |||
@@ -196,13 +196,13 @@ static const u8 llc_oui_ip[] = { | |||
196 | }; /* Ethertype IP (0800) */ | 196 | }; /* Ethertype IP (0800) */ |
197 | 197 | ||
198 | static int atm_tc_change(struct Qdisc *sch, u32 classid, u32 parent, | 198 | static int atm_tc_change(struct Qdisc *sch, u32 classid, u32 parent, |
199 | struct rtattr **tca, unsigned long *arg) | 199 | struct nlattr **tca, unsigned long *arg) |
200 | { | 200 | { |
201 | struct atm_qdisc_data *p = qdisc_priv(sch); | 201 | struct atm_qdisc_data *p = qdisc_priv(sch); |
202 | struct atm_flow_data *flow = (struct atm_flow_data *)*arg; | 202 | struct atm_flow_data *flow = (struct atm_flow_data *)*arg; |
203 | struct atm_flow_data *excess = NULL; | 203 | struct atm_flow_data *excess = NULL; |
204 | struct rtattr *opt = tca[TCA_OPTIONS - 1]; | 204 | struct nlattr *opt = tca[TCA_OPTIONS]; |
205 | struct rtattr *tb[TCA_ATM_MAX]; | 205 | struct nlattr *tb[TCA_ATM_MAX + 1]; |
206 | struct socket *sock; | 206 | struct socket *sock; |
207 | int fd, error, hdr_len; | 207 | int fd, error, hdr_len; |
208 | void *hdr; | 208 | void *hdr; |
@@ -223,31 +223,31 @@ static int atm_tc_change(struct Qdisc *sch, u32 classid, u32 parent, | |||
223 | */ | 223 | */ |
224 | if (flow) | 224 | if (flow) |
225 | return -EBUSY; | 225 | return -EBUSY; |
226 | if (opt == NULL || rtattr_parse_nested(tb, TCA_ATM_MAX, opt)) | 226 | if (opt == NULL || nla_parse_nested(tb, TCA_ATM_MAX, opt, NULL)) |
227 | return -EINVAL; | 227 | return -EINVAL; |
228 | if (!tb[TCA_ATM_FD - 1] || RTA_PAYLOAD(tb[TCA_ATM_FD - 1]) < sizeof(fd)) | 228 | if (!tb[TCA_ATM_FD] || nla_len(tb[TCA_ATM_FD]) < sizeof(fd)) |
229 | return -EINVAL; | 229 | return -EINVAL; |
230 | fd = *(int *)RTA_DATA(tb[TCA_ATM_FD - 1]); | 230 | fd = *(int *)nla_data(tb[TCA_ATM_FD]); |
231 | pr_debug("atm_tc_change: fd %d\n", fd); | 231 | pr_debug("atm_tc_change: fd %d\n", fd); |
232 | if (tb[TCA_ATM_HDR - 1]) { | 232 | if (tb[TCA_ATM_HDR]) { |
233 | hdr_len = RTA_PAYLOAD(tb[TCA_ATM_HDR - 1]); | 233 | hdr_len = nla_len(tb[TCA_ATM_HDR]); |
234 | hdr = RTA_DATA(tb[TCA_ATM_HDR - 1]); | 234 | hdr = nla_data(tb[TCA_ATM_HDR]); |
235 | } else { | 235 | } else { |
236 | hdr_len = RFC1483LLC_LEN; | 236 | hdr_len = RFC1483LLC_LEN; |
237 | hdr = NULL; /* default LLC/SNAP for IP */ | 237 | hdr = NULL; /* default LLC/SNAP for IP */ |
238 | } | 238 | } |
239 | if (!tb[TCA_ATM_EXCESS - 1]) | 239 | if (!tb[TCA_ATM_EXCESS]) |
240 | excess = NULL; | 240 | excess = NULL; |
241 | else { | 241 | else { |
242 | if (RTA_PAYLOAD(tb[TCA_ATM_EXCESS - 1]) != sizeof(u32)) | 242 | if (nla_len(tb[TCA_ATM_EXCESS]) != sizeof(u32)) |
243 | return -EINVAL; | 243 | return -EINVAL; |
244 | excess = (struct atm_flow_data *) | 244 | excess = (struct atm_flow_data *) |
245 | atm_tc_get(sch, *(u32 *)RTA_DATA(tb[TCA_ATM_EXCESS - 1])); | 245 | atm_tc_get(sch, *(u32 *)nla_data(tb[TCA_ATM_EXCESS])); |
246 | if (!excess) | 246 | if (!excess) |
247 | return -ENOENT; | 247 | return -ENOENT; |
248 | } | 248 | } |
249 | pr_debug("atm_tc_change: type %d, payload %lu, hdr_len %d\n", | 249 | pr_debug("atm_tc_change: type %d, payload %lu, hdr_len %d\n", |
250 | opt->rta_type, RTA_PAYLOAD(opt), hdr_len); | 250 | opt->nla_type, nla_len(opt), hdr_len); |
251 | sock = sockfd_lookup(fd, &error); | 251 | sock = sockfd_lookup(fd, &error); |
252 | if (!sock) | 252 | if (!sock) |
253 | return error; /* f_count++ */ | 253 | return error; /* f_count++ */ |
@@ -541,7 +541,7 @@ static unsigned int atm_tc_drop(struct Qdisc *sch) | |||
541 | return 0; | 541 | return 0; |
542 | } | 542 | } |
543 | 543 | ||
544 | static int atm_tc_init(struct Qdisc *sch, struct rtattr *opt) | 544 | static int atm_tc_init(struct Qdisc *sch, struct nlattr *opt) |
545 | { | 545 | { |
546 | struct atm_qdisc_data *p = qdisc_priv(sch); | 546 | struct atm_qdisc_data *p = qdisc_priv(sch); |
547 | 547 | ||
@@ -602,7 +602,7 @@ static int atm_tc_dump_class(struct Qdisc *sch, unsigned long cl, | |||
602 | struct atm_qdisc_data *p = qdisc_priv(sch); | 602 | struct atm_qdisc_data *p = qdisc_priv(sch); |
603 | struct atm_flow_data *flow = (struct atm_flow_data *)cl; | 603 | struct atm_flow_data *flow = (struct atm_flow_data *)cl; |
604 | unsigned char *b = skb_tail_pointer(skb); | 604 | unsigned char *b = skb_tail_pointer(skb); |
605 | struct rtattr *rta; | 605 | struct nlattr *nla; |
606 | 606 | ||
607 | pr_debug("atm_tc_dump_class(sch %p,[qdisc %p],flow %p,skb %p,tcm %p)\n", | 607 | pr_debug("atm_tc_dump_class(sch %p,[qdisc %p],flow %p,skb %p,tcm %p)\n", |
608 | sch, p, flow, skb, tcm); | 608 | sch, p, flow, skb, tcm); |
@@ -610,9 +610,9 @@ static int atm_tc_dump_class(struct Qdisc *sch, unsigned long cl, | |||
610 | return -EINVAL; | 610 | return -EINVAL; |
611 | tcm->tcm_handle = flow->classid; | 611 | tcm->tcm_handle = flow->classid; |
612 | tcm->tcm_info = flow->q->handle; | 612 | tcm->tcm_info = flow->q->handle; |
613 | rta = (struct rtattr *)b; | 613 | nla = (struct nlattr *)b; |
614 | RTA_PUT(skb, TCA_OPTIONS, 0, NULL); | 614 | NLA_PUT(skb, TCA_OPTIONS, 0, NULL); |
615 | RTA_PUT(skb, TCA_ATM_HDR, flow->hdr_len, flow->hdr); | 615 | NLA_PUT(skb, TCA_ATM_HDR, flow->hdr_len, flow->hdr); |
616 | if (flow->vcc) { | 616 | if (flow->vcc) { |
617 | struct sockaddr_atmpvc pvc; | 617 | struct sockaddr_atmpvc pvc; |
618 | int state; | 618 | int state; |
@@ -621,21 +621,21 @@ static int atm_tc_dump_class(struct Qdisc *sch, unsigned long cl, | |||
621 | pvc.sap_addr.itf = flow->vcc->dev ? flow->vcc->dev->number : -1; | 621 | pvc.sap_addr.itf = flow->vcc->dev ? flow->vcc->dev->number : -1; |
622 | pvc.sap_addr.vpi = flow->vcc->vpi; | 622 | pvc.sap_addr.vpi = flow->vcc->vpi; |
623 | pvc.sap_addr.vci = flow->vcc->vci; | 623 | pvc.sap_addr.vci = flow->vcc->vci; |
624 | RTA_PUT(skb, TCA_ATM_ADDR, sizeof(pvc), &pvc); | 624 | NLA_PUT(skb, TCA_ATM_ADDR, sizeof(pvc), &pvc); |
625 | state = ATM_VF2VS(flow->vcc->flags); | 625 | state = ATM_VF2VS(flow->vcc->flags); |
626 | RTA_PUT(skb, TCA_ATM_STATE, sizeof(state), &state); | 626 | NLA_PUT(skb, TCA_ATM_STATE, sizeof(state), &state); |
627 | } | 627 | } |
628 | if (flow->excess) | 628 | if (flow->excess) |
629 | RTA_PUT(skb, TCA_ATM_EXCESS, sizeof(u32), &flow->classid); | 629 | NLA_PUT(skb, TCA_ATM_EXCESS, sizeof(u32), &flow->classid); |
630 | else { | 630 | else { |
631 | static u32 zero; | 631 | static u32 zero; |
632 | 632 | ||
633 | RTA_PUT(skb, TCA_ATM_EXCESS, sizeof(zero), &zero); | 633 | NLA_PUT(skb, TCA_ATM_EXCESS, sizeof(zero), &zero); |
634 | } | 634 | } |
635 | rta->rta_len = skb_tail_pointer(skb) - b; | 635 | nla->nla_len = skb_tail_pointer(skb) - b; |
636 | return skb->len; | 636 | return skb->len; |
637 | 637 | ||
638 | rtattr_failure: | 638 | nla_put_failure: |
639 | nlmsg_trim(skb, b); | 639 | nlmsg_trim(skb, b); |
640 | return -1; | 640 | return -1; |
641 | } | 641 | } |