All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 6903/8646] net/ipv4/tcp_input.c:5010:2: warning: Value stored to 'reason' is never read [clang-analyzer-deadcode.DeadStores]
@ 2022-02-26  4:34 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-02-26  4:34 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 24463 bytes --]

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: Linux Memory Management List <linux-mm@kvack.org>
TO: Menglong Dong <imagedong@tencent.com>
CC: Mengen Sun <mengensun@tencent.com>
CC: Hao Peng <flyingpeng@tencent.com>
CC: Eric Dumazet <edumazet@google.com>
CC: David Ahern <dsahern@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   44948bd49d878dad6c9707e34f4a06df73c3a800
commit: a7ec381049c0d1f03e342063d75f5c3b314d0ec2 [6903/8646] net: tcp: use tcp_drop_reason() for tcp_data_queue()
:::::: branch date: 26 hours ago
:::::: commit date: 6 days ago
config: x86_64-randconfig-c007 (https://download.01.org/0day-ci/archive/20220226/202202261220.JcaWXs0L-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project d271fc04d5b97b12e6b797c6067d3c96a8d7470e)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=a7ec381049c0d1f03e342063d75f5c3b314d0ec2
        git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout a7ec381049c0d1f03e342063d75f5c3b314d0ec2
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
           ^
   fs/ocfs2/extent_map.c:491:7: note: Assuming the condition is false
                   if (i == (le16_to_cpu(el->l_next_free_rec) - 1)) {
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/ocfs2/extent_map.c:491:3: note: Taking false branch
                   if (i == (le16_to_cpu(el->l_next_free_rec) - 1)) {
                   ^
   fs/ocfs2/extent_map.c:512:2: note: Returning without writing to '*hole_len'
           return ret;
           ^
   fs/ocfs2/extent_map.c:512:2: note: Returning zero (loaded from 'ret'), which participates in a condition later
           return ret;
           ^~~~~~~~~~
   fs/ocfs2/extent_map.c:899:9: note: Returning from 'ocfs2_get_clusters_nocache'
                   ret = ocfs2_get_clusters_nocache(inode, di_bh, cpos, &hole_size,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/ocfs2/extent_map.c:901:7: note: 'ret' is 0
                   if (ret) {
                       ^~~
   fs/ocfs2/extent_map.c:901:3: note: Taking false branch
                   if (ret) {
                   ^
   fs/ocfs2/extent_map.c:909:7: note: Assuming field 'e_blkno' is equal to 0
                   if (rec.e_blkno == 0ULL) {
                       ^~~~~~~~~~~~~~~~~~~
   fs/ocfs2/extent_map.c:909:3: note: Taking true branch
                   if (rec.e_blkno == 0ULL) {
                   ^
   fs/ocfs2/extent_map.c:910:9: note: Assigned value is garbage or undefined
                           clen = hole_size;
                                ^ ~~~~~~~~~
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   6 warnings generated.
   Suppressed 6 warnings (5 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
   Suppressed 5 warnings (5 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   14 warnings generated.
   net/ipv4/tcp_input.c:3404:3: warning: Value stored to 'icsk' is never read [clang-analyzer-deadcode.DeadStores]
                   icsk = inet_csk(sk);
                   ^      ~~~~~~~~~~~~
   net/ipv4/tcp_input.c:3404:3: note: Value stored to 'icsk' is never read
                   icsk = inet_csk(sk);
                   ^      ~~~~~~~~~~~~
>> net/ipv4/tcp_input.c:5010:2: warning: Value stored to 'reason' is never read [clang-analyzer-deadcode.DeadStores]
           reason = SKB_DROP_REASON_NOT_SPECIFIED;
           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv4/tcp_input.c:5010:2: note: Value stored to 'reason' is never read
           reason = SKB_DROP_REASON_NOT_SPECIFIED;
           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv4/tcp_input.c:5334:11: warning: Access to field 'truesize' results in a dereference of a null pointer [clang-analyzer-core.NullDereference]
                   goal -= rb_to_skb(node)->truesize;
                           ^
   include/linux/skbuff.h:3663:23: note: expanded from macro 'rb_to_skb'
   #define rb_to_skb(rb) rb_entry_safe(rb, struct sk_buff, rbnode)
                         ^
   include/linux/rbtree.h:78:2: note: expanded from macro 'rb_entry_safe'
           ({ typeof(ptr) ____ptr = (ptr); \
           ^
   net/ipv4/tcp_input.c:5325:6: note: Left side of '||' is false
           if (RB_EMPTY_ROOT(&tp->out_of_order_queue))
               ^
   include/linux/rbtree.h:30:31: note: expanded from macro 'RB_EMPTY_ROOT'
   #define RB_EMPTY_ROOT(root)  (READ_ONCE((root)->rb_node) == NULL)
                                 ^
   include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
           ^
   include/asm-generic/rwonce.h:36:21: note: expanded from macro 'compiletime_assert_rwonce_type'
           compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long),  \
                              ^
   include/linux/compiler_types.h:316:3: note: expanded from macro '__native_word'
           (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \
            ^
   net/ipv4/tcp_input.c:5325:6: note: Left side of '||' is false
           if (RB_EMPTY_ROOT(&tp->out_of_order_queue))
               ^
   include/linux/rbtree.h:30:31: note: expanded from macro 'RB_EMPTY_ROOT'
   #define RB_EMPTY_ROOT(root)  (READ_ONCE((root)->rb_node) == NULL)
                                 ^
   include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
           ^
   include/asm-generic/rwonce.h:36:21: note: expanded from macro 'compiletime_assert_rwonce_type'
           compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long),  \
                              ^
   include/linux/compiler_types.h:316:3: note: expanded from macro '__native_word'
           (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \
            ^
   net/ipv4/tcp_input.c:5325:6: note: Left side of '||' is false
           if (RB_EMPTY_ROOT(&tp->out_of_order_queue))
               ^
   include/linux/rbtree.h:30:31: note: expanded from macro 'RB_EMPTY_ROOT'
   #define RB_EMPTY_ROOT(root)  (READ_ONCE((root)->rb_node) == NULL)
                                 ^
   include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
           ^
   include/asm-generic/rwonce.h:36:21: note: expanded from macro 'compiletime_assert_rwonce_type'
           compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long),  \
                              ^
   include/linux/compiler_types.h:316:3: note: expanded from macro '__native_word'
           (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \
            ^
   net/ipv4/tcp_input.c:5325:6: note: Left side of '||' is true
           if (RB_EMPTY_ROOT(&tp->out_of_order_queue))
               ^
   include/linux/rbtree.h:30:31: note: expanded from macro 'RB_EMPTY_ROOT'
   #define RB_EMPTY_ROOT(root)  (READ_ONCE((root)->rb_node) == NULL)
                                 ^
   include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
           ^
   include/asm-generic/rwonce.h:36:38: note: expanded from macro 'compiletime_assert_rwonce_type'
           compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long),  \
                                               ^
   net/ipv4/tcp_input.c:5325:6: note: Taking false branch
           if (RB_EMPTY_ROOT(&tp->out_of_order_queue))
               ^
   include/linux/rbtree.h:30:31: note: expanded from macro 'RB_EMPTY_ROOT'
   #define RB_EMPTY_ROOT(root)  (READ_ONCE((root)->rb_node) == NULL)
                                 ^
   include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \
           ^
   include/asm-generic/rwonce.h:36:2: note: expanded from macro 'compiletime_assert_rwonce_type'
           compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long),  \
           ^
   include/linux/compiler_types.h:349:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:337:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:329:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   net/ipv4/tcp_input.c:5325:6: note: Loop condition is false.  Exiting loop
           if (RB_EMPTY_ROOT(&tp->out_of_order_queue))
               ^
   include/linux/rbtree.h:30:31: note: expanded from macro 'RB_EMPTY_ROOT'
   #define RB_EMPTY_ROOT(root)  (READ_ONCE((root)->rb_node) == NULL)
                                 ^
   include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
           compiletime_assert_rwonce_type(x);                              \

vim +/reason +5010 net/ipv4/tcp_input.c

03f45c883c6f391 Eric Dumazet             2018-04-16  4987  
^1da177e4c3f415 Linus Torvalds           2005-04-16  4988  static void tcp_data_queue(struct sock *sk, struct sk_buff *skb)
^1da177e4c3f415 Linus Torvalds           2005-04-16  4989  {
^1da177e4c3f415 Linus Torvalds           2005-04-16  4990  	struct tcp_sock *tp = tcp_sk(sk);
a7ec381049c0d1f Menglong Dong            2022-02-20  4991  	enum skb_drop_reason reason;
5357f0bd4edf0b3 Eric Dumazet             2017-08-01  4992  	bool fragstolen;
5357f0bd4edf0b3 Eric Dumazet             2017-08-01  4993  	int eaten;
^1da177e4c3f415 Linus Torvalds           2005-04-16  4994  
6787b7e350d3552 Jianguo Wu               2021-07-09  4995  	/* If a subflow has been reset, the packet should not continue
6787b7e350d3552 Jianguo Wu               2021-07-09  4996  	 * to be processed, drop the packet.
6787b7e350d3552 Jianguo Wu               2021-07-09  4997  	 */
6787b7e350d3552 Jianguo Wu               2021-07-09  4998  	if (sk_is_mptcp(sk) && !mptcp_incoming_options(sk, skb)) {
6787b7e350d3552 Jianguo Wu               2021-07-09  4999  		__kfree_skb(skb);
6787b7e350d3552 Jianguo Wu               2021-07-09  5000  		return;
6787b7e350d3552 Jianguo Wu               2021-07-09  5001  	}
648ef4b88673dad Mat Martineau            2020-01-21  5002  
532182cd610782d Eric Dumazet             2016-04-01  5003  	if (TCP_SKB_CB(skb)->seq == TCP_SKB_CB(skb)->end_seq) {
532182cd610782d Eric Dumazet             2016-04-01  5004  		__kfree_skb(skb);
532182cd610782d Eric Dumazet             2016-04-01  5005  		return;
532182cd610782d Eric Dumazet             2016-04-01  5006  	}
f84af32cbca70a3 Eric Dumazet             2010-04-28  5007  	skb_dst_drop(skb);
155c6e1ad4a778c Peter Pan(潘卫平         2014-09-24  5008) 	__skb_pull(skb, tcp_hdr(skb)->doff * 4);
^1da177e4c3f415 Linus Torvalds           2005-04-16  5009  
a7ec381049c0d1f Menglong Dong            2022-02-20 @5010  	reason = SKB_DROP_REASON_NOT_SPECIFIED;
^1da177e4c3f415 Linus Torvalds           2005-04-16  5011  	tp->rx_opt.dsack = 0;
^1da177e4c3f415 Linus Torvalds           2005-04-16  5012  
^1da177e4c3f415 Linus Torvalds           2005-04-16  5013  	/*  Queue data for delivery to the user.
^1da177e4c3f415 Linus Torvalds           2005-04-16  5014  	 *  Packets in sequence go to the receive queue.
^1da177e4c3f415 Linus Torvalds           2005-04-16  5015  	 *  Out of sequence packets to the out_of_order_queue.
^1da177e4c3f415 Linus Torvalds           2005-04-16  5016  	 */
^1da177e4c3f415 Linus Torvalds           2005-04-16  5017  	if (TCP_SKB_CB(skb)->seq == tp->rcv_nxt) {
fb223502ec08894 Yafang Shao              2018-06-24  5018  		if (tcp_receive_window(tp) == 0) {
a7ec381049c0d1f Menglong Dong            2022-02-20  5019  			reason = SKB_DROP_REASON_TCP_ZEROWINDOW;
fb223502ec08894 Yafang Shao              2018-06-24  5020  			NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPZEROWINDOWDROP);
^1da177e4c3f415 Linus Torvalds           2005-04-16  5021  			goto out_of_window;
fb223502ec08894 Yafang Shao              2018-06-24  5022  		}
^1da177e4c3f415 Linus Torvalds           2005-04-16  5023  
^1da177e4c3f415 Linus Torvalds           2005-04-16  5024  		/* Ok. In sequence. In window. */
^1da177e4c3f415 Linus Torvalds           2005-04-16  5025  queue_and_out:
76dfa6082032b5c Eric Dumazet             2015-05-15  5026  		if (skb_queue_len(&sk->sk_receive_queue) == 0)
76dfa6082032b5c Eric Dumazet             2015-05-15  5027  			sk_forced_mem_schedule(sk, skb->truesize);
ea5d0c32498e1a0 Yafang Shao              2018-06-28  5028  		else if (tcp_try_rmem_schedule(sk, skb, skb->truesize)) {
a7ec381049c0d1f Menglong Dong            2022-02-20  5029  			reason = SKB_DROP_REASON_PROTO_MEM;
ea5d0c32498e1a0 Yafang Shao              2018-06-28  5030  			NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPRCVQDROP);
ba3bb0e76ccd464 Eric Dumazet             2020-06-30  5031  			sk->sk_data_ready(sk);
^1da177e4c3f415 Linus Torvalds           2005-04-16  5032  			goto drop;
ea5d0c32498e1a0 Yafang Shao              2018-06-28  5033  		}
5357f0bd4edf0b3 Eric Dumazet             2017-08-01  5034  
e7395f1f4ba24dc Eric Dumazet             2018-11-26  5035  		eaten = tcp_queue_rcv(sk, skb, &fragstolen);
^1da177e4c3f415 Linus Torvalds           2005-04-16  5036  		if (skb->len)
9e412ba7632f712 Ilpo Järvinen            2007-04-20  5037  			tcp_event_data_recv(sk, skb);
155c6e1ad4a778c Peter Pan(潘卫平         2014-09-24  5038) 		if (TCP_SKB_CB(skb)->tcp_flags & TCPHDR_FIN)
20c4cb792de2b58 Eric Dumazet             2011-10-20  5039  			tcp_fin(sk);
^1da177e4c3f415 Linus Torvalds           2005-04-16  5040  
9f5afeae51526b3 Yaogong Wang             2016-09-07  5041  		if (!RB_EMPTY_ROOT(&tp->out_of_order_queue)) {
^1da177e4c3f415 Linus Torvalds           2005-04-16  5042  			tcp_ofo_queue(sk);
^1da177e4c3f415 Linus Torvalds           2005-04-16  5043  
15bdd5686c2c613 Yuchung Cheng            2018-08-09  5044  			/* RFC5681. 4.2. SHOULD send immediate ACK, when
^1da177e4c3f415 Linus Torvalds           2005-04-16  5045  			 * gap in queue is filled.
^1da177e4c3f415 Linus Torvalds           2005-04-16  5046  			 */
9f5afeae51526b3 Yaogong Wang             2016-09-07  5047  			if (RB_EMPTY_ROOT(&tp->out_of_order_queue))
15bdd5686c2c613 Yuchung Cheng            2018-08-09  5048  				inet_csk(sk)->icsk_ack.pending |= ICSK_ACK_NOW;
^1da177e4c3f415 Linus Torvalds           2005-04-16  5049  		}
^1da177e4c3f415 Linus Torvalds           2005-04-16  5050  
^1da177e4c3f415 Linus Torvalds           2005-04-16  5051  		if (tp->rx_opt.num_sacks)
^1da177e4c3f415 Linus Torvalds           2005-04-16  5052  			tcp_sack_remove(tp);
^1da177e4c3f415 Linus Torvalds           2005-04-16  5053  
31770e34e43d6c8 Florian Westphal         2017-08-30  5054  		tcp_fast_path_check(sk);
31770e34e43d6c8 Florian Westphal         2017-08-30  5055  
923dd347b8904c2 Eric Dumazet             2012-05-02  5056  		if (eaten > 0)
923dd347b8904c2 Eric Dumazet             2012-05-02  5057  			kfree_skb_partial(skb, fragstolen);
1d57f19539c0741 Eric Dumazet             2012-09-17  5058  		if (!sock_flag(sk, SOCK_DEAD))
03f45c883c6f391 Eric Dumazet             2018-04-16  5059  			tcp_data_ready(sk);
^1da177e4c3f415 Linus Torvalds           2005-04-16  5060  		return;
^1da177e4c3f415 Linus Torvalds           2005-04-16  5061  	}
^1da177e4c3f415 Linus Torvalds           2005-04-16  5062  
^1da177e4c3f415 Linus Torvalds           2005-04-16  5063  	if (!after(TCP_SKB_CB(skb)->end_seq, tp->rcv_nxt)) {
7788174e8726c30 Yuchung Cheng            2018-08-29  5064  		tcp_rcv_spurious_retrans(sk, skb);
^1da177e4c3f415 Linus Torvalds           2005-04-16  5065  		/* A retransmit, 2nd most common case.  Force an immediate ack. */
a7ec381049c0d1f Menglong Dong            2022-02-20  5066  		reason = SKB_DROP_REASON_TCP_OLD_DATA;
c10d9310edf5aa4 Eric Dumazet             2016-04-29  5067  		NET_INC_STATS(sock_net(sk), LINUX_MIB_DELAYEDACKLOST);
1ed834655a0d42e Pavel Emelyanov          2008-07-16  5068  		tcp_dsack_set(sk, TCP_SKB_CB(skb)->seq, TCP_SKB_CB(skb)->end_seq);
^1da177e4c3f415 Linus Torvalds           2005-04-16  5069  
^1da177e4c3f415 Linus Torvalds           2005-04-16  5070  out_of_window:
9a9c9b51e546188 Eric Dumazet             2018-05-21  5071  		tcp_enter_quickack_mode(sk, TCP_MAX_QUICKACKS);
463c84b97f24010 Arnaldo Carvalho de Melo 2005-08-09  5072  		inet_csk_schedule_ack(sk);
^1da177e4c3f415 Linus Torvalds           2005-04-16  5073  drop:
a7ec381049c0d1f Menglong Dong            2022-02-20  5074  		tcp_drop_reason(sk, skb, reason);
^1da177e4c3f415 Linus Torvalds           2005-04-16  5075  		return;
^1da177e4c3f415 Linus Torvalds           2005-04-16  5076  	}
^1da177e4c3f415 Linus Torvalds           2005-04-16  5077  
^1da177e4c3f415 Linus Torvalds           2005-04-16  5078  	/* Out of window. F.e. zero window probe. */
a7ec381049c0d1f Menglong Dong            2022-02-20  5079  	if (!before(TCP_SKB_CB(skb)->seq,
a7ec381049c0d1f Menglong Dong            2022-02-20  5080  		    tp->rcv_nxt + tcp_receive_window(tp))) {
a7ec381049c0d1f Menglong Dong            2022-02-20  5081  		reason = SKB_DROP_REASON_TCP_OVERWINDOW;
^1da177e4c3f415 Linus Torvalds           2005-04-16  5082  		goto out_of_window;
a7ec381049c0d1f Menglong Dong            2022-02-20  5083  	}
^1da177e4c3f415 Linus Torvalds           2005-04-16  5084  
^1da177e4c3f415 Linus Torvalds           2005-04-16  5085  	if (before(TCP_SKB_CB(skb)->seq, tp->rcv_nxt)) {
^1da177e4c3f415 Linus Torvalds           2005-04-16  5086  		/* Partial packet, seq < rcv_next < end_seq */
1ed834655a0d42e Pavel Emelyanov          2008-07-16  5087  		tcp_dsack_set(sk, TCP_SKB_CB(skb)->seq, tp->rcv_nxt);
^1da177e4c3f415 Linus Torvalds           2005-04-16  5088  
^1da177e4c3f415 Linus Torvalds           2005-04-16  5089  		/* If window is closed, drop tail of packet. But after
^1da177e4c3f415 Linus Torvalds           2005-04-16  5090  		 * remembering D-SACK for its head made in previous line.
^1da177e4c3f415 Linus Torvalds           2005-04-16  5091  		 */
fb223502ec08894 Yafang Shao              2018-06-24  5092  		if (!tcp_receive_window(tp)) {
a7ec381049c0d1f Menglong Dong            2022-02-20  5093  			reason = SKB_DROP_REASON_TCP_ZEROWINDOW;
fb223502ec08894 Yafang Shao              2018-06-24  5094  			NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPZEROWINDOWDROP);
^1da177e4c3f415 Linus Torvalds           2005-04-16  5095  			goto out_of_window;
fb223502ec08894 Yafang Shao              2018-06-24  5096  		}
^1da177e4c3f415 Linus Torvalds           2005-04-16  5097  		goto queue_and_out;
^1da177e4c3f415 Linus Torvalds           2005-04-16  5098  	}
^1da177e4c3f415 Linus Torvalds           2005-04-16  5099  
e86b291962cbf47 Eric Dumazet             2012-03-18  5100  	tcp_data_queue_ofo(sk, skb);
^1da177e4c3f415 Linus Torvalds           2005-04-16  5101  }
^1da177e4c3f415 Linus Torvalds           2005-04-16  5102  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-02-26  4:34 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-26  4:34 [linux-next:master 6903/8646] net/ipv4/tcp_input.c:5010:2: warning: Value stored to 'reason' is never read [clang-analyzer-deadcode.DeadStores] kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.