diff options
Diffstat (limited to 'include/net/ipv6.h')
-rw-r--r-- | include/net/ipv6.h | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/include/net/ipv6.h b/include/net/ipv6.h index f70afef9c3cc..4fa5dfe886c4 100644 --- a/include/net/ipv6.h +++ b/include/net/ipv6.h | |||
@@ -204,9 +204,9 @@ struct ip6_flowlabel | |||
204 | { | 204 | { |
205 | struct ip6_flowlabel *next; | 205 | struct ip6_flowlabel *next; |
206 | __be32 label; | 206 | __be32 label; |
207 | atomic_t users; | ||
207 | struct in6_addr dst; | 208 | struct in6_addr dst; |
208 | struct ipv6_txoptions *opt; | 209 | struct ipv6_txoptions *opt; |
209 | atomic_t users; | ||
210 | unsigned long linger; | 210 | unsigned long linger; |
211 | u8 share; | 211 | u8 share; |
212 | u32 owner; | 212 | u32 owner; |
@@ -291,7 +291,7 @@ static inline int ipv6_addr_src_scope(const struct in6_addr *addr) | |||
291 | 291 | ||
292 | static inline int ipv6_addr_cmp(const struct in6_addr *a1, const struct in6_addr *a2) | 292 | static inline int ipv6_addr_cmp(const struct in6_addr *a1, const struct in6_addr *a2) |
293 | { | 293 | { |
294 | return memcmp((const void *) a1, (const void *) a2, sizeof(struct in6_addr)); | 294 | return memcmp(a1, a2, sizeof(struct in6_addr)); |
295 | } | 295 | } |
296 | 296 | ||
297 | static inline int | 297 | static inline int |
@@ -308,7 +308,7 @@ ipv6_masked_addr_cmp(const struct in6_addr *a1, const struct in6_addr *m, | |||
308 | 308 | ||
309 | static inline void ipv6_addr_copy(struct in6_addr *a1, const struct in6_addr *a2) | 309 | static inline void ipv6_addr_copy(struct in6_addr *a1, const struct in6_addr *a2) |
310 | { | 310 | { |
311 | memcpy((void *) a1, (const void *) a2, sizeof(struct in6_addr)); | 311 | memcpy(a1, a2, sizeof(struct in6_addr)); |
312 | } | 312 | } |
313 | 313 | ||
314 | static inline void ipv6_addr_prefix(struct in6_addr *pfx, | 314 | static inline void ipv6_addr_prefix(struct in6_addr *pfx, |
@@ -319,16 +319,12 @@ static inline void ipv6_addr_prefix(struct in6_addr *pfx, | |||
319 | int o = plen >> 3, | 319 | int o = plen >> 3, |
320 | b = plen & 0x7; | 320 | b = plen & 0x7; |
321 | 321 | ||
322 | memset(pfx->s6_addr, 0, sizeof(pfx->s6_addr)); | ||
322 | memcpy(pfx->s6_addr, addr, o); | 323 | memcpy(pfx->s6_addr, addr, o); |
323 | if (b != 0) { | 324 | if (b != 0) |
324 | pfx->s6_addr[o] = addr->s6_addr[o] & (0xff00 >> b); | 325 | pfx->s6_addr[o] = addr->s6_addr[o] & (0xff00 >> b); |
325 | o++; | ||
326 | } | ||
327 | if (o < 16) | ||
328 | memset(pfx->s6_addr + o, 0, 16 - o); | ||
329 | } | 326 | } |
330 | 327 | ||
331 | #ifndef __HAVE_ARCH_ADDR_SET | ||
332 | static inline void ipv6_addr_set(struct in6_addr *addr, | 328 | static inline void ipv6_addr_set(struct in6_addr *addr, |
333 | __be32 w1, __be32 w2, | 329 | __be32 w1, __be32 w2, |
334 | __be32 w3, __be32 w4) | 330 | __be32 w3, __be32 w4) |
@@ -338,7 +334,6 @@ static inline void ipv6_addr_set(struct in6_addr *addr, | |||
338 | addr->s6_addr32[2] = w3; | 334 | addr->s6_addr32[2] = w3; |
339 | addr->s6_addr32[3] = w4; | 335 | addr->s6_addr32[3] = w4; |
340 | } | 336 | } |
341 | #endif | ||
342 | 337 | ||
343 | static inline int ipv6_addr_equal(const struct in6_addr *a1, | 338 | static inline int ipv6_addr_equal(const struct in6_addr *a1, |
344 | const struct in6_addr *a2) | 339 | const struct in6_addr *a2) |