| Submitter | Andrew Morton |
|---|---|
| Date | Sept. 22, 2008, 9:50 p.m. |
| Message ID | <200809222150.m8MLocjD031863@imap1.linux-foundation.org> |
| Download | mbox | patch |
| Permalink | /patch/969/ |
| State | Accepted |
| Delegated to: | David Miller |
| Headers | show |
Comments
From: akpm@linux-foundation.org Date: Mon, 22 Sep 2008 14:50:37 -0700 > From: Harvey Harrison <harvey.harrison@gmail.com> > > Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> > Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Applied to net-next-2.6 -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Patch
diff -puN net/sched/em_cmp.c~net-em_cmpc-use-unaligned-access-helpers net/sched/em_cmp.c --- a/net/sched/em_cmp.c~net-em_cmpc-use-unaligned-access-helpers +++ a/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 * 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 * 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);