diff options
Diffstat (limited to 'net/ipv6/raw.c')
| -rw-r--r-- | net/ipv6/raw.c | 4 | 
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c index 8a6131991e38..6e1888ee4036 100644 --- a/net/ipv6/raw.c +++ b/net/ipv6/raw.c @@ -646,7 +646,7 @@ static int rawv6_send_hdrinc(struct sock *sk, struct msghdr *msg, int length,  	skb->protocol = htons(ETH_P_IPV6);  	skb->priority = sk->sk_priority; -	skb->mark = sk->sk_mark; +	skb->mark = sockc->mark;  	skb->tstamp = sockc->transmit_time;  	skb_put(skb, length); @@ -810,6 +810,7 @@ static int rawv6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)  	ipcm6_init(&ipc6);  	ipc6.sockc.tsflags = sk->sk_tsflags; +	ipc6.sockc.mark = sk->sk_mark;  	if (sin6) {  		if (addr_len < SIN6_LEN_RFC2133) @@ -891,6 +892,7 @@ static int rawv6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)  	opt = ipv6_fixup_options(&opt_space, opt);  	fl6.flowi6_proto = proto; +	fl6.flowi6_mark = ipc6.sockc.mark;  	if (!hdrincl) {  		rfv.msg = msg;  |