:::::: :::::: Manual check reason: "low confidence static check warning: net/ipv4/tcp_bpf.c:169:2: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]" ::::::
CC: [email protected] CC: [email protected] BCC: [email protected] CC: [email protected] TO: Cong Wang <[email protected]> CC: Daniel Borkmann <[email protected]> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: f2906aa863381afb0015a9eb7fefad885d4e5a56 commit: 9f2470fbc4cb4583c080bb729a998933ba61aca4 skmsg: Improve udp_bpf_recvmsg() accuracy date: 12 months ago :::::: branch date: 10 hours ago :::::: commit date: 12 months ago config: s390-randconfig-c005-20220605 (https://download.01.org/0day-ci/archive/20220606/[email protected]/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 0a90b72c432d70aae035727ece4ba80ce820f381) 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 # install s390 cross compiling tool for clang build # apt-get install binutils-s390x-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9f2470fbc4cb4583c080bb729a998933ba61aca4 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 9f2470fbc4cb4583c080bb729a998933ba61aca4 # save the config file COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=s390 clang-analyzer If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) flags |= TIMER_OF_IRQ; ^ drivers/clocksource/timer-of.c:191:3: note: Value stored to 'flags' is never read Suppressed 18 warnings (6 in non-user code, 12 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. 17 warnings generated. Suppressed 17 warnings (5 in non-user code, 12 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. 17 warnings generated. Suppressed 17 warnings (5 in non-user code, 12 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. 17 warnings generated. Suppressed 17 warnings (5 in non-user code, 12 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. 19 warnings generated. drivers/clocksource/sh_cmt.c:90:8: warning: Excessive padding in 'struct sh_cmt_channel' (291 padding bytes, where 35 is optimal). Optimal fields order: ced, cmt, iostart, ioctrl, flags, total_cycles, cs, index, hwidx, timer_bit, match_value, next_match_value, max_match_value, lock, cs_enabled, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding] struct sh_cmt_channel { ~~~~~~~^~~~~~~~~~~~~~~~ drivers/clocksource/sh_cmt.c:90:8: note: Excessive padding in 'struct sh_cmt_channel' (291 padding bytes, where 35 is optimal). Optimal fields order: ced, cmt, iostart, ioctrl, flags, total_cycles, cs, index, hwidx, timer_bit, match_value, next_match_value, max_match_value, lock, cs_enabled, consider reordering the fields or adding explicit padding members struct sh_cmt_channel { ~~~~~~~^~~~~~~~~~~~~~~~ Suppressed 18 warnings (6 in non-user code, 12 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. 19 warnings generated. drivers/clocksource/sh_tmu.c:38:8: warning: Excessive padding in 'struct sh_tmu_channel' (323 padding bytes, where 67 is optimal). Optimal fields order: ced, tmu, base, periodic, cs, index, irq, enable_count, cs_enabled, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding] struct sh_tmu_channel { ~~~~~~~^~~~~~~~~~~~~~~~ drivers/clocksource/sh_tmu.c:38:8: note: Excessive padding in 'struct sh_tmu_channel' (323 padding bytes, where 67 is optimal). Optimal fields order: ced, tmu, base, periodic, cs, index, irq, enable_count, cs_enabled, consider reordering the fields or adding explicit padding members struct sh_tmu_channel { ~~~~~~~^~~~~~~~~~~~~~~~ Suppressed 18 warnings (6 in non-user code, 12 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. 19 warnings generated. include/linux/uaccess.h:229:2: warning: Dereference of null pointer [clang-analyzer-core.NullDereference] current->pagefault_disabled++; ^ arch/s390/include/asm/current.h:17:45: note: expanded from macro 'current' #define current ((struct task_struct *const)S390_lowcore.current_task) ^ arch/s390/include/asm/lowcore.h:192:22: note: expanded from macro 'S390_lowcore' #define S390_lowcore (*((struct lowcore *) 0)) ^ drivers/mmc/host/tifm_sd.c:213:27: note: Calling 'kmap_atomic' unsigned char *src_buf = kmap_atomic(src) + src_off; ^~~~~~~~~~~~~~~~ include/linux/highmem-internal.h:182:2: note: Loop condition is false. Exiting loop preempt_disable(); ^ include/linux/preempt.h:175:27: note: expanded from macro 'preempt_disable' #define preempt_disable() \ ^ include/linux/highmem-internal.h:183:2: note: Calling 'pagefault_disable' pagefault_disable(); ^~~~~~~~~~~~~~~~~~~ include/linux/uaccess.h:246:2: note: Calling 'pagefault_disabled_inc' pagefault_disabled_inc(); ^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/uaccess.h:229:2: note: Dereference of null pointer current->pagefault_disabled++; ^ arch/s390/include/asm/current.h:17:45: note: expanded from macro 'current' #define current ((struct task_struct *const)S390_lowcore.current_task) ^~~~~~~~~~~~~~~~~~~~~~~~~ arch/s390/include/asm/lowcore.h:192:22: note: expanded from macro 'S390_lowcore' #define S390_lowcore (*((struct lowcore *) 0)) ^ Suppressed 18 warnings (6 in non-user code, 12 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. 18 warnings generated. Suppressed 18 warnings (6 in non-user code, 12 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. 27 warnings generated. >> net/ipv4/tcp_bpf.c:169:2: warning: Dereference of null pointer >> [clang-analyzer-core.NullDereference] DEFINE_WAIT_FUNC(wait, woken_wake_function); ^ include/linux/wait.h:1148:14: note: expanded from macro 'DEFINE_WAIT_FUNC' .private = current, \ ^ arch/s390/include/asm/current.h:17:45: note: expanded from macro 'current' #define current ((struct task_struct *const)S390_lowcore.current_task) ^ arch/s390/include/asm/lowcore.h:192:22: note: expanded from macro 'S390_lowcore' #define S390_lowcore (*((struct lowcore *) 0)) ^ net/ipv4/tcp_bpf.c:194:6: note: Assuming the condition is true if (unlikely(flags & MSG_ERRQUEUE)) ^ include/linux/compiler.h:78:40: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^~~~ net/ipv4/tcp_bpf.c:194:2: note: Taking false branch if (unlikely(flags & MSG_ERRQUEUE)) ^ net/ipv4/tcp_bpf.c:198:16: note: 'psock' is non-null if (unlikely(!psock)) ^ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ net/ipv4/tcp_bpf.c:198:2: note: Taking false branch if (unlikely(!psock)) ^ net/ipv4/tcp_bpf.c:200:6: note: Assuming the condition is false if (!skb_queue_empty(&sk->sk_receive_queue) && ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/ipv4/tcp_bpf.c:200:46: note: Left side of '&&' is false if (!skb_queue_empty(&sk->sk_receive_queue) && ^ net/ipv4/tcp_bpf.c:208:6: note: Assuming 'copied' is 0 if (!copied) { ^~~~~~~ net/ipv4/tcp_bpf.c:208:2: note: Taking true branch if (!copied) { ^ net/ipv4/tcp_bpf.c:213:10: note: Calling 'tcp_msg_wait_data' data = tcp_msg_wait_data(sk, psock, flags, timeo, &err); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/ipv4/tcp_bpf.c:169:2: note: Dereference of null pointer DEFINE_WAIT_FUNC(wait, woken_wake_function); ^ include/linux/wait.h:1148:14: note: expanded from macro 'DEFINE_WAIT_FUNC' .private = current, \ ^~~~~~~ arch/s390/include/asm/current.h:17:45: note: expanded from macro 'current' #define current ((struct task_struct *const)S390_lowcore.current_task) ^~~~~~~~~~~~~~~~~~~~~~~~~ arch/s390/include/asm/lowcore.h:192:22: note: expanded from macro 'S390_lowcore' #define S390_lowcore (*((struct lowcore *) 0)) ^ Suppressed 26 warnings (14 in non-user code, 12 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. 27 warnings generated. fs/cifs/dns_resolve.c:80:17: warning: Dereference of null pointer [clang-analyzer-core.NullDereference] rc = dns_query(current->nsproxy->net_ns, NULL, hostname, len, ^ arch/s390/include/asm/current.h:17:45: note: expanded from macro 'current' #define current ((struct task_struct *const)S390_lowcore.current_task) ^~~~~~~~~~~~~~~~~~~~~~~~~ arch/s390/include/asm/lowcore.h:192:22: note: expanded from macro 'S390_lowcore' #define S390_lowcore (*((struct lowcore *) 0)) ^ fs/cifs/dns_resolve.c:53:6: note: Assuming 'ip_addr' is non-null if (!ip_addr || !unc) ^~~~~~~~ fs/cifs/dns_resolve.c:53:6: note: Left side of '||' is false fs/cifs/dns_resolve.c:53:18: note: Assuming 'unc' is non-null if (!ip_addr || !unc) ^~~~ fs/cifs/dns_resolve.c:53:2: note: Taking false branch if (!ip_addr || !unc) ^ fs/cifs/dns_resolve.c:57:6: note: Assuming 'len' is >= 3 if (len < 3) { ^~~~~~~ fs/cifs/dns_resolve.c:57:2: note: Taking false branch if (len < 3) { ^ fs/cifs/dns_resolve.c:68:6: note: Assuming 'sep' is null if (sep) ^~~ fs/cifs/dns_resolve.c:68:2: note: Taking false branch if (sep) ^ fs/cifs/dns_resolve.c:71:3: note: Taking false branch cifs_dbg(FYI, "%s: probably server name is whole unc: %s\n", ^ fs/cifs/cifs_debug.h:139:2: note: expanded from macro 'cifs_dbg' if (0) \ ^ fs/cifs/dns_resolve.c:71:3: note: Loop condition is false. Exiting loop cifs_dbg(FYI, "%s: probably server name is whole unc: %s\n", ^ fs/cifs/cifs_debug.h:137:38: note: expanded from macro 'cifs_dbg' -- net/ipv4/inet_hashtables.c:238:6: note: Left side of '&&' is true if (net_eq(sock_net(sk), net) && sk->sk_num == hnum && ^ net/ipv4/inet_hashtables.c:238:2: note: Taking true branch if (net_eq(sock_net(sk), net) && sk->sk_num == hnum && ^ net/ipv4/inet_hashtables.c:240:7: note: Assuming 'daddr' is equal to field 'skc_rcv_saddr' if (sk->sk_rcv_saddr != daddr) ^~~~~~~~~~~~~~~~~~~~~~~~~ net/ipv4/inet_hashtables.c:240:3: note: Taking false branch if (sk->sk_rcv_saddr != daddr) ^ net/ipv4/inet_hashtables.c:243:3: note: Taking false branch if (!inet_sk_bound_dev_eq(net, sk->sk_bound_dev_if, dif, sdif)) ^ net/ipv4/inet_hashtables.c:246:11: note: Assuming field 'skc_family' is not equal to PF_INET score = sk->sk_family == PF_INET ? 2 : 1; ^~~~~~~~~~~~~~~~~~~~~~~~ net/ipv4/inet_hashtables.c:246:11: note: '?' condition is false net/ipv4/inet_hashtables.c:247:7: note: Left side of '||' is false if (READ_ONCE(sk->sk_incoming_cpu) == raw_smp_processor_id()) ^ 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:290:3: note: expanded from macro '__native_word' (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \ ^ net/ipv4/inet_hashtables.c:247:7: note: Left side of '||' is false if (READ_ONCE(sk->sk_incoming_cpu) == raw_smp_processor_id()) ^ 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:290:3: note: expanded from macro '__native_word' (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \ ^ net/ipv4/inet_hashtables.c:247:7: note: Left side of '||' is true if (READ_ONCE(sk->sk_incoming_cpu) == raw_smp_processor_id()) ^ 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:291:28: note: expanded from macro '__native_word' sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long)) ^ net/ipv4/inet_hashtables.c:247:7: note: Taking false branch if (READ_ONCE(sk->sk_incoming_cpu) == raw_smp_processor_id()) ^ 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:328:2: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^ include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^ net/ipv4/inet_hashtables.c:247:7: note: Loop condition is false. Exiting loop if (READ_ONCE(sk->sk_incoming_cpu) == raw_smp_processor_id()) ^ 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:328:2: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^ include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^ include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert' do { \ ^ net/ipv4/inet_hashtables.c:247:41: note: Dereference of null pointer if (READ_ONCE(sk->sk_incoming_cpu) == raw_smp_processor_id()) ^ arch/s390/include/asm/smp.h:15:32: note: expanded from macro 'raw_smp_processor_id' #define raw_smp_processor_id() (S390_lowcore.cpu_nr) ^~~~~~~~~~~~~~~~~~~~~ Suppressed 26 warnings (14 in non-user code, 12 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. 27 warnings generated. >> net/ipv4/udp_bpf.c:42:2: warning: Dereference of null pointer >> [clang-analyzer-core.NullDereference] DEFINE_WAIT_FUNC(wait, woken_wake_function); ^ include/linux/wait.h:1148:14: note: expanded from macro 'DEFINE_WAIT_FUNC' .private = current, \ ^ arch/s390/include/asm/current.h:17:45: note: expanded from macro 'current' #define current ((struct task_struct *const)S390_lowcore.current_task) ^ arch/s390/include/asm/lowcore.h:192:22: note: expanded from macro 'S390_lowcore' #define S390_lowcore (*((struct lowcore *) 0)) ^ net/ipv4/udp_bpf.c:69:6: note: Assuming the condition is true if (unlikely(flags & MSG_ERRQUEUE)) ^ include/linux/compiler.h:78:40: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^~~~ net/ipv4/udp_bpf.c:69:2: note: Taking false branch if (unlikely(flags & MSG_ERRQUEUE)) ^ net/ipv4/udp_bpf.c:73:16: note: 'psock' is non-null if (unlikely(!psock)) ^ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ net/ipv4/udp_bpf.c:73:2: note: Taking false branch if (unlikely(!psock)) ^ net/ipv4/udp_bpf.c:76:2: note: Taking false branch if (!psock_has_data(psock)) { ^ net/ipv4/udp_bpf.c:83:6: note: Assuming 'copied' is 0 if (!copied) { ^~~~~~~ net/ipv4/udp_bpf.c:83:2: note: Taking true branch if (!copied) { ^ net/ipv4/udp_bpf.c:88:10: note: Calling 'udp_msg_wait_data' data = udp_msg_wait_data(sk, psock, flags, timeo, &err); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/ipv4/udp_bpf.c:42:2: note: Dereference of null pointer DEFINE_WAIT_FUNC(wait, woken_wake_function); ^ include/linux/wait.h:1148:14: note: expanded from macro 'DEFINE_WAIT_FUNC' .private = current, \ ^~~~~~~ arch/s390/include/asm/current.h:17:45: note: expanded from macro 'current' #define current ((struct task_struct *const)S390_lowcore.current_task) ^~~~~~~~~~~~~~~~~~~~~~~~~ arch/s390/include/asm/lowcore.h:192:22: note: expanded from macro 'S390_lowcore' #define S390_lowcore (*((struct lowcore *) 0)) ^ Suppressed 26 warnings (14 in non-user code, 12 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. 26 warnings generated. Suppressed 26 warnings (14 in non-user code, 12 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. 26 warnings generated. Suppressed 26 warnings (14 in non-user code, 12 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. 26 warnings generated. Suppressed 26 warnings (14 in non-user code, 12 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. 19 warnings generated. Suppressed 19 warnings (7 in non-user code, 12 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. 20 warnings generated. drivers/spi/spi-ti-qspi.c:864:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = 0; ^ ~ drivers/spi/spi-ti-qspi.c:864:3: note: Value stored to 'ret' is never read ret = 0; ^ ~ Suppressed 19 warnings (7 in non-user code, 12 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. 20 warnings generated. Suppressed 20 warnings (7 in non-user code, 13 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. 20 warnings generated. Suppressed 20 warnings (7 in non-user code, 13 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. 21 warnings generated. Suppressed 21 warnings (7 in non-user code, 14 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. 18 warnings generated. Suppressed 18 warnings (6 in non-user code, 12 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. 20 warnings generated. Suppressed 20 warnings (7 in non-user code, 13 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. 6 warnings generated. Suppressed 6 warnings (6 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 (6 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 (6 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. vim +169 net/ipv4/tcp_bpf.c a26527981af298 YueHaibing 2020-03-20 165 9f2470fbc4cb45 Cong Wang 2021-06-14 166 static int tcp_msg_wait_data(struct sock *sk, struct sk_psock *psock, int flags, 9f2470fbc4cb45 Cong Wang 2021-06-14 167 long timeo, int *err) 9f2470fbc4cb45 Cong Wang 2021-06-14 168 { 9f2470fbc4cb45 Cong Wang 2021-06-14 @169 DEFINE_WAIT_FUNC(wait, woken_wake_function); 9f2470fbc4cb45 Cong Wang 2021-06-14 170 int ret = 0; 9f2470fbc4cb45 Cong Wang 2021-06-14 171 9f2470fbc4cb45 Cong Wang 2021-06-14 172 if (sk->sk_shutdown & RCV_SHUTDOWN) 9f2470fbc4cb45 Cong Wang 2021-06-14 173 return 1; 9f2470fbc4cb45 Cong Wang 2021-06-14 174 9f2470fbc4cb45 Cong Wang 2021-06-14 175 if (!timeo) 9f2470fbc4cb45 Cong Wang 2021-06-14 176 return ret; 9f2470fbc4cb45 Cong Wang 2021-06-14 177 9f2470fbc4cb45 Cong Wang 2021-06-14 178 add_wait_queue(sk_sleep(sk), &wait); 9f2470fbc4cb45 Cong Wang 2021-06-14 179 sk_set_bit(SOCKWQ_ASYNC_WAITDATA, sk); 9f2470fbc4cb45 Cong Wang 2021-06-14 180 ret = sk_wait_event(sk, &timeo, 9f2470fbc4cb45 Cong Wang 2021-06-14 181 !list_empty(&psock->ingress_msg) || 9f2470fbc4cb45 Cong Wang 2021-06-14 182 !skb_queue_empty(&sk->sk_receive_queue), &wait); 9f2470fbc4cb45 Cong Wang 2021-06-14 183 sk_clear_bit(SOCKWQ_ASYNC_WAITDATA, sk); 9f2470fbc4cb45 Cong Wang 2021-06-14 184 remove_wait_queue(sk_sleep(sk), &wait); 9f2470fbc4cb45 Cong Wang 2021-06-14 185 return ret; 9f2470fbc4cb45 Cong Wang 2021-06-14 186 } 9f2470fbc4cb45 Cong Wang 2021-06-14 187 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
