[NET_SCHED]: Use typeful attribute parsing helpers
authorPatrick McHardy <kaber@trash.net>
Thu, 24 Jan 2008 04:35:03 +0000 (20:35 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Jan 2008 23:11:21 +0000 (15:11 -0800)
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/act_api.c
net/sched/act_ipt.c
net/sched/act_police.c
net/sched/cls_basic.c
net/sched/cls_fw.c
net/sched/cls_route.c
net/sched/cls_rsvp.h
net/sched/cls_tcindex.c
net/sched/cls_u32.c
net/sched/em_meta.c
net/sched/sch_atm.c

index 41fbd496abac19e0fe2c424653eca6a99528edb0..0b8eb235bc136fff1eeb349f72c549a5ce4df3df 100644 (file)
@@ -690,7 +690,7 @@ tcf_action_get_1(struct nlattr *nla, struct nlmsghdr *n, u32 pid)
        if (tb[TCA_ACT_INDEX] == NULL ||
            nla_len(tb[TCA_ACT_INDEX]) < sizeof(index))
                goto err_out;
-       index = *(int *)nla_data(tb[TCA_ACT_INDEX]);
+       index = nla_get_u32(tb[TCA_ACT_INDEX]);
 
        err = -ENOMEM;
        a = kzalloc(sizeof(struct tc_action), GFP_KERNEL);
index 5dd701a7bc56c54f2dd18637d081b443220f52a5..7ab2419b44ecdd01e2008dc449b24e734810480c 100644 (file)
@@ -123,7 +123,7 @@ static int tcf_ipt_init(struct nlattr *nla, struct nlattr *est,
 
        if (tb[TCA_IPT_INDEX] != NULL &&
            nla_len(tb[TCA_IPT_INDEX]) >= sizeof(u32))
-               index = *(u32 *)nla_data(tb[TCA_IPT_INDEX]);
+               index = nla_get_u32(tb[TCA_IPT_INDEX]);
 
        pc = tcf_hash_check(index, a, bind, &ipt_hash_info);
        if (!pc) {
@@ -140,7 +140,7 @@ static int tcf_ipt_init(struct nlattr *nla, struct nlattr *est,
        }
        ipt = to_ipt(pc);
 
-       hook = *(u32 *)nla_data(tb[TCA_IPT_HOOK]);
+       hook = nla_get_u32(tb[TCA_IPT_HOOK]);
 
        err = -ENOMEM;
        tname = kmalloc(IFNAMSIZ, GFP_KERNEL);
index 79db6bb8a5fddbaee9a6f0dcfa14d6835c0ccc74..62de806af3af95d3ae89b52eaeb934973abdbb70 100644 (file)
@@ -203,7 +203,7 @@ override:
        }
 
        if (tb[TCA_POLICE_RESULT])
-               police->tcfp_result = *(u32*)nla_data(tb[TCA_POLICE_RESULT]);
+               police->tcfp_result = nla_get_u32(tb[TCA_POLICE_RESULT]);
        police->tcfp_toks = police->tcfp_burst = parm->burst;
        police->tcfp_mtu = parm->mtu;
        if (police->tcfp_mtu == 0) {
@@ -216,8 +216,7 @@ override:
        police->tcf_action = parm->action;
 
        if (tb[TCA_POLICE_AVRATE])
-               police->tcfp_ewma_rate =
-                       *(u32*)nla_data(tb[TCA_POLICE_AVRATE]);
+               police->tcfp_ewma_rate = nla_get_u32(tb[TCA_POLICE_AVRATE]);
        if (est)
                gen_replace_estimator(&police->tcf_bstats,
                                      &police->tcf_rate_est,
index 58444fedf06e387f608c715f3e9947360756226b..0c872a76c4b005f787ac2b5dcd20c1f2c0ed4004 100644 (file)
@@ -150,7 +150,7 @@ static inline int basic_set_parms(struct tcf_proto *tp, struct basic_filter *f,
                goto errout;
 
        if (tb[TCA_BASIC_CLASSID]) {
-               f->res.classid = *(u32*)nla_data(tb[TCA_BASIC_CLASSID]);
+               f->res.classid = nla_get_u32(tb[TCA_BASIC_CLASSID]);
                tcf_bind_filter(tp, &f->res, base);
        }
 
index 61ebe25e5f77d704a097ee1fa998d93b1538ed4f..b75696d67ec2cf239dd0569a7b10c86b1d58a6f9 100644 (file)
@@ -203,7 +203,7 @@ fw_change_attrs(struct tcf_proto *tp, struct fw_filter *f,
        if (tb[TCA_FW_CLASSID]) {
                if (nla_len(tb[TCA_FW_CLASSID]) != sizeof(u32))
                        goto errout;
-               f->res.classid = *(u32*)nla_data(tb[TCA_FW_CLASSID]);
+               f->res.classid = nla_get_u32(tb[TCA_FW_CLASSID]);
                tcf_bind_filter(tp, &f->res, base);
        }
 
@@ -218,7 +218,7 @@ fw_change_attrs(struct tcf_proto *tp, struct fw_filter *f,
        if (tb[TCA_FW_MASK]) {
                if (nla_len(tb[TCA_FW_MASK]) != sizeof(u32))
                        goto errout;
-               mask = *(u32*)nla_data(tb[TCA_FW_MASK]);
+               mask = nla_get_u32(tb[TCA_FW_MASK]);
                if (mask != head->mask)
                        goto errout;
        } else if (head->mask != 0xFFFFFFFF)
@@ -264,7 +264,7 @@ static int fw_change(struct tcf_proto *tp, unsigned long base,
                if (tb[TCA_FW_MASK]) {
                        if (nla_len(tb[TCA_FW_MASK]) != sizeof(u32))
                                return -EINVAL;
-                       mask = *(u32*)nla_data(tb[TCA_FW_MASK]);
+                       mask = nla_get_u32(tb[TCA_FW_MASK]);
                }
 
                head = kzalloc(sizeof(struct fw_head), GFP_KERNEL);
index 7752586e918d6289803435063abb0613fc610974..ae97238c57ad8150b525d2ab42890e2f20079c6f 100644 (file)
@@ -348,7 +348,7 @@ static int route4_set_parms(struct tcf_proto *tp, unsigned long base,
                        goto errout;
                if (nla_len(tb[TCA_ROUTE4_TO]) < sizeof(u32))
                        goto errout;
-               to = *(u32*)nla_data(tb[TCA_ROUTE4_TO]);
+               to = nla_get_u32(tb[TCA_ROUTE4_TO]);
                if (to > 0xFF)
                        goto errout;
                nhandle = to;
@@ -359,14 +359,14 @@ static int route4_set_parms(struct tcf_proto *tp, unsigned long base,
                        goto errout;
                if (nla_len(tb[TCA_ROUTE4_FROM]) < sizeof(u32))
                        goto errout;
-               id = *(u32*)nla_data(tb[TCA_ROUTE4_FROM]);
+               id = nla_get_u32(tb[TCA_ROUTE4_FROM]);
                if (id > 0xFF)
                        goto errout;
                nhandle |= id << 16;
        } else if (tb[TCA_ROUTE4_IIF]) {
                if (nla_len(tb[TCA_ROUTE4_IIF]) < sizeof(u32))
                        goto errout;
-               id = *(u32*)nla_data(tb[TCA_ROUTE4_IIF]);
+               id = nla_get_u32(tb[TCA_ROUTE4_IIF]);
                if (id > 0x7FFF)
                        goto errout;
                nhandle |= (id | 0x8000) << 16;
@@ -411,7 +411,7 @@ static int route4_set_parms(struct tcf_proto *tp, unsigned long base,
        tcf_tree_unlock(tp);
 
        if (tb[TCA_ROUTE4_CLASSID]) {
-               f->res.classid = *(u32*)nla_data(tb[TCA_ROUTE4_CLASSID]);
+               f->res.classid = nla_get_u32(tb[TCA_ROUTE4_CLASSID]);
                tcf_bind_filter(tp, &f->res, base);
        }
 
index 838a3ff5a2ccc1ab0bf0e6c4b33158f6377bb11b..61286a0f7a3e9bb23ecc0a46014193976bdb637c 100644 (file)
@@ -430,7 +430,7 @@ static int rsvp_change(struct tcf_proto *tp, unsigned long base,
                if (f->handle != handle && handle)
                        goto errout2;
                if (tb[TCA_RSVP_CLASSID-1]) {
-                       f->res.classid = *(u32*)nla_data(tb[TCA_RSVP_CLASSID-1]);
+                       f->res.classid = nla_get_u32(tb[TCA_RSVP_CLASSID-1]);
                        tcf_bind_filter(tp, &f->res, base);
                }
 
@@ -470,7 +470,7 @@ static int rsvp_change(struct tcf_proto *tp, unsigned long base,
                err = -EINVAL;
                if (nla_len(tb[TCA_RSVP_CLASSID-1]) != 4)
                        goto errout;
-               f->res.classid = *(u32*)nla_data(tb[TCA_RSVP_CLASSID-1]);
+               f->res.classid = nla_get_u32(tb[TCA_RSVP_CLASSID-1]);
        }
 
        err = -EINVAL;
index 7d46df7eac0955eff20eddb9cae3a33951df65d0..28098564b4d7cbccd3f02920ebbb2a8c8a5fd178 100644 (file)
@@ -221,19 +221,19 @@ tcindex_set_parms(struct tcf_proto *tp, unsigned long base, u32 handle,
        if (tb[TCA_TCINDEX_HASH]) {
                if (nla_len(tb[TCA_TCINDEX_HASH]) < sizeof(u32))
                        goto errout;
-               cp.hash = *(u32 *) nla_data(tb[TCA_TCINDEX_HASH]);
+               cp.hash = nla_get_u32(tb[TCA_TCINDEX_HASH]);
        }
 
        if (tb[TCA_TCINDEX_MASK]) {
                if (nla_len(tb[TCA_TCINDEX_MASK]) < sizeof(u16))
                        goto errout;
-               cp.mask = *(u16 *) nla_data(tb[TCA_TCINDEX_MASK]);
+               cp.mask = nla_get_u16(tb[TCA_TCINDEX_MASK]);
        }
 
        if (tb[TCA_TCINDEX_SHIFT]) {
                if (nla_len(tb[TCA_TCINDEX_SHIFT]) < sizeof(int))
                        goto errout;
-               cp.shift = *(int *) nla_data(tb[TCA_TCINDEX_SHIFT]);
+               cp.shift = nla_get_u32(tb[TCA_TCINDEX_SHIFT]);
        }
 
        err = -EBUSY;
@@ -251,8 +251,7 @@ tcindex_set_parms(struct tcf_proto *tp, unsigned long base, u32 handle,
        if (tb[TCA_TCINDEX_FALL_THROUGH]) {
                if (nla_len(tb[TCA_TCINDEX_FALL_THROUGH]) < sizeof(u32))
                        goto errout;
-               cp.fall_through =
-                       *(u32 *) nla_data(tb[TCA_TCINDEX_FALL_THROUGH]);
+               cp.fall_through = nla_get_u32(tb[TCA_TCINDEX_FALL_THROUGH]);
        }
 
        if (!cp.hash) {
@@ -305,7 +304,7 @@ tcindex_set_parms(struct tcf_proto *tp, unsigned long base, u32 handle,
        }
 
        if (tb[TCA_TCINDEX_CLASSID]) {
-               cr.res.classid = *(u32 *) nla_data(tb[TCA_TCINDEX_CLASSID]);
+               cr.res.classid = nla_get_u32(tb[TCA_TCINDEX_CLASSID]);
                tcf_bind_filter(tp, &cr.res, base);
        }
 
index 326711eb593c5bca5da304db3d9d27a15cd86a05..a4e72e8a882f708a94cd2226aee421b66e7c50e8 100644 (file)
@@ -474,7 +474,7 @@ static int u32_set_parms(struct tcf_proto *tp, unsigned long base,
 
        err = -EINVAL;
        if (tb[TCA_U32_LINK]) {
-               u32 handle = *(u32*)nla_data(tb[TCA_U32_LINK]);
+               u32 handle = nla_get_u32(tb[TCA_U32_LINK]);
                struct tc_u_hnode *ht_down = NULL;
 
                if (TC_U32_KEY(handle))
@@ -496,7 +496,7 @@ static int u32_set_parms(struct tcf_proto *tp, unsigned long base,
                        ht_down->refcnt--;
        }
        if (tb[TCA_U32_CLASSID]) {
-               n->res.classid = *(u32*)nla_data(tb[TCA_U32_CLASSID]);
+               n->res.classid = nla_get_u32(tb[TCA_U32_CLASSID]);
                tcf_bind_filter(tp, &n->res, base);
        }
 
@@ -543,7 +543,7 @@ static int u32_change(struct tcf_proto *tp, unsigned long base, u32 handle,
        }
 
        if (tb[TCA_U32_DIVISOR]) {
-               unsigned divisor = *(unsigned*)nla_data(tb[TCA_U32_DIVISOR]);
+               unsigned divisor = nla_get_u32(tb[TCA_U32_DIVISOR]);
 
                if (--divisor > 0x100)
                        return -EINVAL;
@@ -569,7 +569,7 @@ static int u32_change(struct tcf_proto *tp, unsigned long base, u32 handle,
        }
 
        if (tb[TCA_U32_HASH]) {
-               htid = *(unsigned*)nla_data(tb[TCA_U32_HASH]);
+               htid = nla_get_u32(tb[TCA_U32_HASH]);
                if (TC_U32_HTID(htid) == TC_U32_ROOT) {
                        ht = tp->root;
                        htid = ht->handle;
index 63ae6a230c4f84061457fd23d2a5b0f95861e776..d9f487d813c4cca7711c5df819336d1ce7f19383 100644 (file)
@@ -600,7 +600,7 @@ static int meta_int_change(struct meta_value *dst, struct nlattr *nla)
                dst->val = *(unsigned long *) nla_data(nla);
                dst->len = sizeof(unsigned long);
        } else if (nla_len(nla) == sizeof(u32)) {
-               dst->val = *(u32 *) nla_data(nla);
+               dst->val = nla_get_u32(nla);
                dst->len = sizeof(u32);
        } else
                return -EINVAL;
index 4d876598d7dfeb2ec3ea06d06793dd0305c69aa0..0c71f2eb96bca36c285d44e96d90850ecb8e5620 100644 (file)
@@ -231,7 +231,7 @@ static int atm_tc_change(struct Qdisc *sch, u32 classid, u32 parent,
 
        if (!tb[TCA_ATM_FD] || nla_len(tb[TCA_ATM_FD]) < sizeof(fd))
                return -EINVAL;
-       fd = *(int *)nla_data(tb[TCA_ATM_FD]);
+       fd = nla_get_u32(tb[TCA_ATM_FD]);
        pr_debug("atm_tc_change: fd %d\n", fd);
        if (tb[TCA_ATM_HDR]) {
                hdr_len = nla_len(tb[TCA_ATM_HDR]);
@@ -246,7 +246,7 @@ static int atm_tc_change(struct Qdisc *sch, u32 classid, u32 parent,
                if (nla_len(tb[TCA_ATM_EXCESS]) != sizeof(u32))
                        return -EINVAL;
                excess = (struct atm_flow_data *)
-                       atm_tc_get(sch, *(u32 *)nla_data(tb[TCA_ATM_EXCESS]));
+                       atm_tc_get(sch, nla_get_u32(tb[TCA_ATM_EXCESS]));
                if (!excess)
                        return -ENOENT;
        }