aboutsummaryrefslogtreecommitdiff
path: root/include/net/dsfield.h
diff options
context:
space:
mode:
authorJiri Kosina2013-03-18 10:57:32 +0100
committerJiri Kosina2013-03-18 10:57:57 +0100
commitaa1262b3876ec5249ff464618a7dcd46b3ca54e2 (patch)
treeb150bb2c83c073e1f0e298ba7899148f7d991ef7 /include/net/dsfield.h
parent806b2139db236e0cbd0b5833ab0ce139f0196bcd (diff)
parent6dbe51c251a327e012439c4772097a13df43c5b8 (diff)
Merge branch 'master' into for-next
Sync with Linus' tree to be able to apply patch to the newly added ITG-3200 driver.
Diffstat (limited to 'include/net/dsfield.h')
-rw-r--r--include/net/dsfield.h6
1 files changed, 2 insertions, 4 deletions
diff --git a/include/net/dsfield.h b/include/net/dsfield.h
index 8a8d4e06900d..e1ad903a8d6a 100644
--- a/include/net/dsfield.h
+++ b/include/net/dsfield.h
@@ -43,11 +43,9 @@ static inline void ipv4_change_dsfield(struct iphdr *iph,__u8 mask,
static inline void ipv6_change_dsfield(struct ipv6hdr *ipv6h,__u8 mask,
__u8 value)
{
- __u16 tmp;
+ __be16 *p = (__force __be16 *)ipv6h;
- tmp = ntohs(*(__be16 *) ipv6h);
- tmp = (tmp & ((mask << 4) | 0xf00f)) | (value << 4);
- *(__be16 *) ipv6h = htons(tmp);
+ *p = (*p & htons((((u16)mask << 4) | 0xf00f))) | htons((u16)value << 4);
}