diff options
Diffstat (limited to 'include/net/inet_ecn.h')
-rw-r--r-- | include/net/inet_ecn.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/include/net/inet_ecn.h b/include/net/inet_ecn.h index 7849844a4911..10117c8503e8 100644 --- a/include/net/inet_ecn.h +++ b/include/net/inet_ecn.h | |||
@@ -53,7 +53,7 @@ static inline __u8 INET_ECN_encapsulate(__u8 outer, __u8 inner) | |||
53 | 53 | ||
54 | static inline int IP_ECN_set_ce(struct iphdr *iph) | 54 | static inline int IP_ECN_set_ce(struct iphdr *iph) |
55 | { | 55 | { |
56 | u32 check = iph->check; | 56 | u32 check = (__force u32)iph->check; |
57 | u32 ecn = (iph->tos + 1) & INET_ECN_MASK; | 57 | u32 ecn = (iph->tos + 1) & INET_ECN_MASK; |
58 | 58 | ||
59 | /* | 59 | /* |
@@ -71,9 +71,9 @@ static inline int IP_ECN_set_ce(struct iphdr *iph) | |||
71 | * INET_ECN_ECT_1 => check += htons(0xFFFD) | 71 | * INET_ECN_ECT_1 => check += htons(0xFFFD) |
72 | * INET_ECN_ECT_0 => check += htons(0xFFFE) | 72 | * INET_ECN_ECT_0 => check += htons(0xFFFE) |
73 | */ | 73 | */ |
74 | check += htons(0xFFFB) + htons(ecn); | 74 | check += (__force u16)htons(0xFFFB) + (__force u16)htons(ecn); |
75 | 75 | ||
76 | iph->check = check + (check>=0xFFFF); | 76 | iph->check = (__force __sum16)(check + (check>=0xFFFF)); |
77 | iph->tos |= INET_ECN_CE; | 77 | iph->tos |= INET_ECN_CE; |
78 | return 1; | 78 | return 1; |
79 | } | 79 | } |
@@ -95,13 +95,13 @@ static inline int IP6_ECN_set_ce(struct ipv6hdr *iph) | |||
95 | { | 95 | { |
96 | if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph))) | 96 | if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph))) |
97 | return 0; | 97 | return 0; |
98 | *(u32*)iph |= htonl(INET_ECN_CE << 20); | 98 | *(__be32*)iph |= htonl(INET_ECN_CE << 20); |
99 | return 1; | 99 | return 1; |
100 | } | 100 | } |
101 | 101 | ||
102 | static inline void IP6_ECN_clear(struct ipv6hdr *iph) | 102 | static inline void IP6_ECN_clear(struct ipv6hdr *iph) |
103 | { | 103 | { |
104 | *(u32*)iph &= ~htonl(INET_ECN_MASK << 20); | 104 | *(__be32*)iph &= ~htonl(INET_ECN_MASK << 20); |
105 | } | 105 | } |
106 | 106 | ||
107 | static inline void ipv6_copy_dscp(struct ipv6hdr *outer, struct ipv6hdr *inner) | 107 | static inline void ipv6_copy_dscp(struct ipv6hdr *outer, struct ipv6hdr *inner) |