Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net: wrap sk->sk_backlog_rcv()

Wrap calling sk->sk_backlog_rcv() in a function. This will allow extending the
generic sk_backlog_rcv behaviour.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Peter Zijlstra and committed by
David S. Miller
c57943a1 b339a47c

+10 -5
+5
include/net/sock.h
··· 482 482 skb->next = NULL; 483 483 } 484 484 485 + static inline int sk_backlog_rcv(struct sock *sk, struct sk_buff *skb) 486 + { 487 + return sk->sk_backlog_rcv(sk, skb); 488 + } 489 + 485 490 #define sk_wait_event(__sk, __timeo, __condition) \ 486 491 ({ int __rc; \ 487 492 release_sock(__sk); \
+1 -1
include/net/tcp.h
··· 896 896 BUG_ON(sock_owned_by_user(sk)); 897 897 898 898 while ((skb1 = __skb_dequeue(&tp->ucopy.prequeue)) != NULL) { 899 - sk->sk_backlog_rcv(sk, skb1); 899 + sk_backlog_rcv(sk, skb1); 900 900 NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPPREQUEUEDROPPED); 901 901 } 902 902
+2 -2
net/core/sock.c
··· 327 327 */ 328 328 mutex_acquire(&sk->sk_lock.dep_map, 0, 1, _RET_IP_); 329 329 330 - rc = sk->sk_backlog_rcv(sk, skb); 330 + rc = sk_backlog_rcv(sk, skb); 331 331 332 332 mutex_release(&sk->sk_lock.dep_map, 1, _RET_IP_); 333 333 } else ··· 1374 1374 struct sk_buff *next = skb->next; 1375 1375 1376 1376 skb->next = NULL; 1377 - sk->sk_backlog_rcv(sk, skb); 1377 + sk_backlog_rcv(sk, skb); 1378 1378 1379 1379 /* 1380 1380 * We are in process context here with softirqs
+1 -1
net/ipv4/tcp.c
··· 1161 1161 * necessary */ 1162 1162 local_bh_disable(); 1163 1163 while ((skb = __skb_dequeue(&tp->ucopy.prequeue)) != NULL) 1164 - sk->sk_backlog_rcv(sk, skb); 1164 + sk_backlog_rcv(sk, skb); 1165 1165 local_bh_enable(); 1166 1166 1167 1167 /* Clear memory counter. */
+1 -1
net/ipv4/tcp_timer.c
··· 201 201 NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPSCHEDULERFAILED); 202 202 203 203 while ((skb = __skb_dequeue(&tp->ucopy.prequeue)) != NULL) 204 - sk->sk_backlog_rcv(sk, skb); 204 + sk_backlog_rcv(sk, skb); 205 205 206 206 tp->ucopy.memory = 0; 207 207 }