diff options
author | Harvey Harrison <harvey.harrison@gmail.com> | 2008-09-22 19:20:51 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-09-22 19:20:51 -0700 |
commit | d48abfecea8513cfd2fd7e341439c1b8a28e9ff4 (patch) | |
tree | dc072211551a04a25ad50012f56dcb0fe5fa266d /net/sched | |
parent | 978e9aec262d66d13ccceece93b867bfc0fcd2f1 (diff) | |
download | linux-stable-d48abfecea8513cfd2fd7e341439c1b8a28e9ff4.tar.gz linux-stable-d48abfecea8513cfd2fd7e341439c1b8a28e9ff4.tar.bz2 linux-stable-d48abfecea8513cfd2fd7e341439c1b8a28e9ff4.zip |
net: em_cmp.c use unaligned access helpers
Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched')
-rw-r--r-- | net/sched/em_cmp.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/net/sched/em_cmp.c b/net/sched/em_cmp.c index cc49c932641d..bc450397487a 100644 --- a/net/sched/em_cmp.c +++ b/net/sched/em_cmp.c @@ -14,6 +14,7 @@ #include <linux/kernel.h> #include <linux/skbuff.h> #include <linux/tc_ematch/tc_em_cmp.h> +#include <asm/unaligned.h> #include <net/pkt_cls.h> static inline int cmp_needs_transformation(struct tcf_em_cmp *cmp) @@ -37,8 +38,7 @@ static int em_cmp_match(struct sk_buff *skb, struct tcf_ematch *em, break; case TCF_EM_ALIGN_U16: - val = *ptr << 8; - val |= *(ptr+1); + val = get_unaligned_be16(ptr); if (cmp_needs_transformation(cmp)) val = be16_to_cpu(val); @@ -47,10 +47,7 @@ static int em_cmp_match(struct sk_buff *skb, struct tcf_ematch *em, case TCF_EM_ALIGN_U32: /* Worth checking boundries? The branching seems * to get worse. Visit again. */ - val = *ptr << 24; - val |= *(ptr+1) << 16; - val |= *(ptr+2) << 8; - val |= *(ptr+3); + val = get_unaligned_be32(ptr); if (cmp_needs_transformation(cmp)) val = be32_to_cpu(val); |