diff options
Diffstat (limited to 'net/ipv4/ip_output.c')
| -rw-r--r-- | net/ipv4/ip_output.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index 1a0755fea491..7ad68b860935 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c | |||
| @@ -315,9 +315,9 @@ static void ip_copy_addrs(struct iphdr *iph, const struct flowi4 *fl4) | |||
| 315 | sizeof(fl4->saddr) + sizeof(fl4->daddr)); | 315 | sizeof(fl4->saddr) + sizeof(fl4->daddr)); |
| 316 | } | 316 | } |
| 317 | 317 | ||
| 318 | int ip_queue_xmit(struct sk_buff *skb, struct flowi *fl) | 318 | /* Note: skb->sk can be different from sk, in case of tunnels */ |
| 319 | int ip_queue_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl) | ||
| 319 | { | 320 | { |
| 320 | struct sock *sk = skb->sk; | ||
| 321 | struct inet_sock *inet = inet_sk(sk); | 321 | struct inet_sock *inet = inet_sk(sk); |
| 322 | struct ip_options_rcu *inet_opt; | 322 | struct ip_options_rcu *inet_opt; |
| 323 | struct flowi4 *fl4; | 323 | struct flowi4 *fl4; |
| @@ -389,6 +389,7 @@ packet_routed: | |||
| 389 | ip_select_ident_more(skb, &rt->dst, sk, | 389 | ip_select_ident_more(skb, &rt->dst, sk, |
| 390 | (skb_shinfo(skb)->gso_segs ?: 1) - 1); | 390 | (skb_shinfo(skb)->gso_segs ?: 1) - 1); |
| 391 | 391 | ||
| 392 | /* TODO : should we use skb->sk here instead of sk ? */ | ||
| 392 | skb->priority = sk->sk_priority; | 393 | skb->priority = sk->sk_priority; |
| 393 | skb->mark = sk->sk_mark; | 394 | skb->mark = sk->sk_mark; |
| 394 | 395 | ||
