|
@@ -203,7 +203,8 @@ int ip6_xmit(const struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6,
|
|
|
if (opt->opt_flen)
|
|
|
ipv6_push_frag_opts(skb, opt, &proto);
|
|
|
if (opt->opt_nflen)
|
|
|
- ipv6_push_nfrag_opts(skb, opt, &proto, &first_hop);
|
|
|
+ ipv6_push_nfrag_opts(skb, opt, &proto, &first_hop,
|
|
|
+ &fl6->saddr);
|
|
|
}
|
|
|
|
|
|
skb_push(skb, sizeof(struct ipv6hdr));
|
|
@@ -1672,7 +1673,7 @@ struct sk_buff *__ip6_make_skb(struct sock *sk,
|
|
|
if (opt && opt->opt_flen)
|
|
|
ipv6_push_frag_opts(skb, opt, &proto);
|
|
|
if (opt && opt->opt_nflen)
|
|
|
- ipv6_push_nfrag_opts(skb, opt, &proto, &final_dst);
|
|
|
+ ipv6_push_nfrag_opts(skb, opt, &proto, &final_dst, &fl6->saddr);
|
|
|
|
|
|
skb_push(skb, sizeof(struct ipv6hdr));
|
|
|
skb_reset_network_header(skb);
|