diff options
Diffstat (limited to 'net/ipv6/ip6_output.c')
| -rw-r--r-- | net/ipv6/ip6_output.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 5552d13ae92f..9250c696de9d 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c | |||
| @@ -216,7 +216,7 @@ int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6, | |||
| 216 | if (hlimit < 0) | 216 | if (hlimit < 0) |
| 217 | hlimit = ip6_dst_hoplimit(dst); | 217 | hlimit = ip6_dst_hoplimit(dst); |
| 218 | 218 | ||
| 219 | *(__be32 *)hdr = htonl(0x60000000 | (tclass << 20)) | fl6->flowlabel; | 219 | ip6_flow_hdr(hdr, tclass, fl6->flowlabel); |
| 220 | 220 | ||
| 221 | hdr->payload_len = htons(seg_len); | 221 | hdr->payload_len = htons(seg_len); |
| 222 | hdr->nexthdr = proto; | 222 | hdr->nexthdr = proto; |
| @@ -267,7 +267,7 @@ int ip6_nd_hdr(struct sock *sk, struct sk_buff *skb, struct net_device *dev, | |||
| 267 | skb_put(skb, sizeof(struct ipv6hdr)); | 267 | skb_put(skb, sizeof(struct ipv6hdr)); |
| 268 | hdr = ipv6_hdr(skb); | 268 | hdr = ipv6_hdr(skb); |
| 269 | 269 | ||
| 270 | *(__be32*)hdr = htonl(0x60000000); | 270 | ip6_flow_hdr(hdr, 0, 0); |
| 271 | 271 | ||
| 272 | hdr->payload_len = htons(len); | 272 | hdr->payload_len = htons(len); |
| 273 | hdr->nexthdr = proto; | 273 | hdr->nexthdr = proto; |
| @@ -1548,9 +1548,7 @@ int ip6_push_pending_frames(struct sock *sk) | |||
| 1548 | skb_reset_network_header(skb); | 1548 | skb_reset_network_header(skb); |
| 1549 | hdr = ipv6_hdr(skb); | 1549 | hdr = ipv6_hdr(skb); |
| 1550 | 1550 | ||
| 1551 | *(__be32*)hdr = fl6->flowlabel | | 1551 | ip6_flow_hdr(hdr, np->cork.tclass, fl6->flowlabel); |
| 1552 | htonl(0x60000000 | ((int)np->cork.tclass << 20)); | ||
| 1553 | |||
| 1554 | hdr->hop_limit = np->cork.hop_limit; | 1552 | hdr->hop_limit = np->cork.hop_limit; |
| 1555 | hdr->nexthdr = proto; | 1553 | hdr->nexthdr = proto; |
| 1556 | hdr->saddr = fl6->saddr; | 1554 | hdr->saddr = fl6->saddr; |
