diff options
Diffstat (limited to 'net/ipv6/raw.c')
-rw-r--r-- | net/ipv6/raw.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c index 4d880551fe6a..8897ccf8086a 100644 --- a/net/ipv6/raw.c +++ b/net/ipv6/raw.c | |||
@@ -641,6 +641,7 @@ static int rawv6_send_hdrinc(struct sock *sk, void *from, int length, | |||
641 | skb_reserve(skb, hh_len); | 641 | skb_reserve(skb, hh_len); |
642 | 642 | ||
643 | skb->priority = sk->sk_priority; | 643 | skb->priority = sk->sk_priority; |
644 | skb->mark = sk->sk_mark; | ||
644 | skb->dst = dst_clone(&rt->u.dst); | 645 | skb->dst = dst_clone(&rt->u.dst); |
645 | 646 | ||
646 | skb_put(skb, length); | 647 | skb_put(skb, length); |
@@ -767,6 +768,8 @@ static int rawv6_sendmsg(struct kiocb *iocb, struct sock *sk, | |||
767 | */ | 768 | */ |
768 | memset(&fl, 0, sizeof(fl)); | 769 | memset(&fl, 0, sizeof(fl)); |
769 | 770 | ||
771 | fl.mark = sk->sk_mark; | ||
772 | |||
770 | if (sin6) { | 773 | if (sin6) { |
771 | if (addr_len < SIN6_LEN_RFC2133) | 774 | if (addr_len < SIN6_LEN_RFC2133) |
772 | return -EINVAL; | 775 | return -EINVAL; |
@@ -1259,7 +1262,7 @@ static const struct seq_operations raw6_seq_ops = { | |||
1259 | 1262 | ||
1260 | static int raw6_seq_open(struct inode *inode, struct file *file) | 1263 | static int raw6_seq_open(struct inode *inode, struct file *file) |
1261 | { | 1264 | { |
1262 | return raw_seq_open(inode, file, &raw_v6_hashinfo, PF_INET6); | 1265 | return raw_seq_open(inode, file, &raw_v6_hashinfo, &raw6_seq_ops); |
1263 | } | 1266 | } |
1264 | 1267 | ||
1265 | static const struct file_operations raw6_seq_fops = { | 1268 | static const struct file_operations raw6_seq_fops = { |