aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/ip6_output.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv6/ip6_output.c')
-rw-r--r--net/ipv6/ip6_output.c8
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;