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);
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) {
}
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);
}
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) {
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,
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);
}
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);
}
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)
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);
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;
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;
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);
}
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);
}
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;
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;
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) {
}
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);
}
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))
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);
}
}
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;
}
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;
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;
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]);
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;
}