diff options
| -rw-r--r-- | include/net/inet6_connection_sock.h | 2 | ||||
| -rw-r--r-- | include/net/inet_connection_sock.h | 2 | ||||
| -rw-r--r-- | include/net/ip.h | 2 | ||||
| -rw-r--r-- | net/dccp/output.c | 2 | ||||
| -rw-r--r-- | net/ipv4/ip_output.c | 5 | ||||
| -rw-r--r-- | net/ipv4/tcp_output.c | 2 | ||||
| -rw-r--r-- | net/ipv6/inet6_connection_sock.c | 3 | ||||
| -rw-r--r-- | net/l2tp/l2tp_core.c | 4 | ||||
| -rw-r--r-- | net/l2tp/l2tp_ip.c | 2 | ||||
| -rw-r--r-- | net/sctp/protocol.c | 2 |
10 files changed, 13 insertions, 13 deletions
diff --git a/include/net/inet6_connection_sock.h b/include/net/inet6_connection_sock.h index f981ba7adeed..74af137304be 100644 --- a/include/net/inet6_connection_sock.h +++ b/include/net/inet6_connection_sock.h | |||
| @@ -40,7 +40,7 @@ void inet6_csk_reqsk_queue_hash_add(struct sock *sk, struct request_sock *req, | |||
| 40 | 40 | ||
| 41 | void inet6_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr); | 41 | void inet6_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr); |
| 42 | 42 | ||
| 43 | int inet6_csk_xmit(struct sk_buff *skb, struct flowi *fl); | 43 | int inet6_csk_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl); |
| 44 | 44 | ||
| 45 | struct dst_entry *inet6_csk_update_pmtu(struct sock *sk, u32 mtu); | 45 | struct dst_entry *inet6_csk_update_pmtu(struct sock *sk, u32 mtu); |
| 46 | #endif /* _INET6_CONNECTION_SOCK_H */ | 46 | #endif /* _INET6_CONNECTION_SOCK_H */ |
diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h index c55aeed41ace..7a4313887568 100644 --- a/include/net/inet_connection_sock.h +++ b/include/net/inet_connection_sock.h | |||
| @@ -36,7 +36,7 @@ struct tcp_congestion_ops; | |||
| 36 | * (i.e. things that depend on the address family) | 36 | * (i.e. things that depend on the address family) |
| 37 | */ | 37 | */ |
| 38 | struct inet_connection_sock_af_ops { | 38 | struct inet_connection_sock_af_ops { |
| 39 | int (*queue_xmit)(struct sk_buff *skb, struct flowi *fl); | 39 | int (*queue_xmit)(struct sock *sk, struct sk_buff *skb, struct flowi *fl); |
| 40 | void (*send_check)(struct sock *sk, struct sk_buff *skb); | 40 | void (*send_check)(struct sock *sk, struct sk_buff *skb); |
| 41 | int (*rebuild_header)(struct sock *sk); | 41 | int (*rebuild_header)(struct sock *sk); |
| 42 | void (*sk_rx_dst_set)(struct sock *sk, const struct sk_buff *skb); | 42 | void (*sk_rx_dst_set)(struct sock *sk, const struct sk_buff *skb); |
diff --git a/include/net/ip.h b/include/net/ip.h index 25064c28e059..77e73d293e09 100644 --- a/include/net/ip.h +++ b/include/net/ip.h | |||
| @@ -111,7 +111,7 @@ int ip_do_nat(struct sk_buff *skb); | |||
| 111 | void ip_send_check(struct iphdr *ip); | 111 | void ip_send_check(struct iphdr *ip); |
| 112 | int __ip_local_out(struct sk_buff *skb); | 112 | int __ip_local_out(struct sk_buff *skb); |
| 113 | int ip_local_out(struct sk_buff *skb); | 113 | int ip_local_out(struct sk_buff *skb); |
| 114 | int ip_queue_xmit(struct sk_buff *skb, struct flowi *fl); | 114 | int ip_queue_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl); |
| 115 | void ip_init(void); | 115 | void ip_init(void); |
| 116 | int ip_append_data(struct sock *sk, struct flowi4 *fl4, | 116 | int ip_append_data(struct sock *sk, struct flowi4 *fl4, |
| 117 | int getfrag(void *from, char *to, int offset, int len, | 117 | int getfrag(void *from, char *to, int offset, int len, |
diff --git a/net/dccp/output.c b/net/dccp/output.c index 8876078859da..0248e8a3460c 100644 --- a/net/dccp/output.c +++ b/net/dccp/output.c | |||
| @@ -138,7 +138,7 @@ static int dccp_transmit_skb(struct sock *sk, struct sk_buff *skb) | |||
| 138 | 138 | ||
| 139 | DCCP_INC_STATS(DCCP_MIB_OUTSEGS); | 139 | DCCP_INC_STATS(DCCP_MIB_OUTSEGS); |
| 140 | 140 | ||
| 141 | err = icsk->icsk_af_ops->queue_xmit(skb, &inet->cork.fl); | 141 | err = icsk->icsk_af_ops->queue_xmit(sk, skb, &inet->cork.fl); |
| 142 | return net_xmit_eval(err); | 142 | return net_xmit_eval(err); |
| 143 | } | 143 | } |
| 144 | return -ENOBUFS; | 144 | return -ENOBUFS; |
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 | ||
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 699fb102e971..025e25093984 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c | |||
| @@ -981,7 +981,7 @@ static int tcp_transmit_skb(struct sock *sk, struct sk_buff *skb, int clone_it, | |||
| 981 | TCP_ADD_STATS(sock_net(sk), TCP_MIB_OUTSEGS, | 981 | TCP_ADD_STATS(sock_net(sk), TCP_MIB_OUTSEGS, |
| 982 | tcp_skb_pcount(skb)); | 982 | tcp_skb_pcount(skb)); |
| 983 | 983 | ||
| 984 | err = icsk->icsk_af_ops->queue_xmit(skb, &inet->cork.fl); | 984 | err = icsk->icsk_af_ops->queue_xmit(sk, skb, &inet->cork.fl); |
| 985 | if (likely(err <= 0)) | 985 | if (likely(err <= 0)) |
| 986 | return err; | 986 | return err; |
| 987 | 987 | ||
diff --git a/net/ipv6/inet6_connection_sock.c b/net/ipv6/inet6_connection_sock.c index c9138189415a..d4ade34ab375 100644 --- a/net/ipv6/inet6_connection_sock.c +++ b/net/ipv6/inet6_connection_sock.c | |||
| @@ -224,9 +224,8 @@ static struct dst_entry *inet6_csk_route_socket(struct sock *sk, | |||
| 224 | return dst; | 224 | return dst; |
| 225 | } | 225 | } |
| 226 | 226 | ||
| 227 | int inet6_csk_xmit(struct sk_buff *skb, struct flowi *fl_unused) | 227 | int inet6_csk_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl_unused) |
| 228 | { | 228 | { |
| 229 | struct sock *sk = skb->sk; | ||
| 230 | struct ipv6_pinfo *np = inet6_sk(sk); | 229 | struct ipv6_pinfo *np = inet6_sk(sk); |
| 231 | struct flowi6 fl6; | 230 | struct flowi6 fl6; |
| 232 | struct dst_entry *dst; | 231 | struct dst_entry *dst; |
diff --git a/net/l2tp/l2tp_core.c b/net/l2tp/l2tp_core.c index 47f7a5490555..a4e37d7158dc 100644 --- a/net/l2tp/l2tp_core.c +++ b/net/l2tp/l2tp_core.c | |||
| @@ -1131,10 +1131,10 @@ static int l2tp_xmit_core(struct l2tp_session *session, struct sk_buff *skb, | |||
| 1131 | skb->local_df = 1; | 1131 | skb->local_df = 1; |
| 1132 | #if IS_ENABLED(CONFIG_IPV6) | 1132 | #if IS_ENABLED(CONFIG_IPV6) |
| 1133 | if (tunnel->sock->sk_family == PF_INET6 && !tunnel->v4mapped) | 1133 | if (tunnel->sock->sk_family == PF_INET6 && !tunnel->v4mapped) |
| 1134 | error = inet6_csk_xmit(skb, NULL); | 1134 | error = inet6_csk_xmit(tunnel->sock, skb, NULL); |
| 1135 | else | 1135 | else |
| 1136 | #endif | 1136 | #endif |
| 1137 | error = ip_queue_xmit(skb, fl); | 1137 | error = ip_queue_xmit(tunnel->sock, skb, fl); |
| 1138 | 1138 | ||
| 1139 | /* Update stats */ | 1139 | /* Update stats */ |
| 1140 | if (error >= 0) { | 1140 | if (error >= 0) { |
diff --git a/net/l2tp/l2tp_ip.c b/net/l2tp/l2tp_ip.c index 0b44d855269c..3397fe6897c0 100644 --- a/net/l2tp/l2tp_ip.c +++ b/net/l2tp/l2tp_ip.c | |||
| @@ -487,7 +487,7 @@ static int l2tp_ip_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *m | |||
| 487 | 487 | ||
| 488 | xmit: | 488 | xmit: |
| 489 | /* Queue the packet to IP for output */ | 489 | /* Queue the packet to IP for output */ |
| 490 | rc = ip_queue_xmit(skb, &inet->cork.fl); | 490 | rc = ip_queue_xmit(sk, skb, &inet->cork.fl); |
| 491 | rcu_read_unlock(); | 491 | rcu_read_unlock(); |
| 492 | 492 | ||
| 493 | error: | 493 | error: |
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c index 4e1d0fcb028e..c09757fbf803 100644 --- a/net/sctp/protocol.c +++ b/net/sctp/protocol.c | |||
| @@ -957,7 +957,7 @@ static inline int sctp_v4_xmit(struct sk_buff *skb, | |||
| 957 | 957 | ||
| 958 | SCTP_INC_STATS(sock_net(&inet->sk), SCTP_MIB_OUTSCTPPACKS); | 958 | SCTP_INC_STATS(sock_net(&inet->sk), SCTP_MIB_OUTSCTPPACKS); |
| 959 | 959 | ||
| 960 | return ip_queue_xmit(skb, &transport->fl); | 960 | return ip_queue_xmit(&inet->sk, skb, &transport->fl); |
| 961 | } | 961 | } |
| 962 | 962 | ||
| 963 | static struct sctp_af sctp_af_inet; | 963 | static struct sctp_af sctp_af_inet; |
