* Re: [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS for bpf_setsockopt
2025-02-19 8:13 ` [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS " Jason Xing
@ 2025-02-20 8:51 ` kernel test robot
2025-02-20 8:57 ` Jason Xing
2025-02-22 22:51 ` kernel test robot
1 sibling, 1 reply; 8+ messages in thread
From: kernel test robot @ 2025-02-20 8:51 UTC (permalink / raw)
To: Jason Xing, davem, edumazet, kuba, pabeni, dsahern, kuniyu, ast,
daniel, andrii, martin.lau, eddyz87, song, yonghong.song,
john.fastabend, kpsingh, sdf, haoluo, jolsa, shuah, ykolal
Cc: oe-kbuild-all, bpf, netdev, Jason Xing
Hi Jason,
kernel test robot noticed the following build errors:
[auto build test ERROR on bpf-next/master]
url: https://github.com/intel-lab-lkp/linux/commits/Jason-Xing/bpf-support-TCP_RTO_MAX_MS-for-bpf_setsockopt/20250219-161637
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
patch link: https://lore.kernel.org/r/20250219081333.56378-2-kerneljasonxing%40gmail.com
patch subject: [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS for bpf_setsockopt
config: x86_64-buildonly-randconfig-002-20250220 (https://download.01.org/0day-ci/archive/20250220/202502201843.xA1qZbKX-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250220/202502201843.xA1qZbKX-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502201843.xA1qZbKX-lkp@intel.com/
All errors (new ones prefixed by >>):
net/core/filter.c: In function 'sol_tcp_sockopt':
>> net/core/filter.c:5385:14: error: 'TCP_RTO_MAX_MS' undeclared (first use in this function); did you mean 'TCP_RTO_MAX'?
5385 | case TCP_RTO_MAX_MS:
| ^~~~~~~~~~~~~~
| TCP_RTO_MAX
net/core/filter.c:5385:14: note: each undeclared identifier is reported only once for each function it appears in
vim +5385 net/core/filter.c
5365
5366 static int sol_tcp_sockopt(struct sock *sk, int optname,
5367 char *optval, int *optlen,
5368 bool getopt)
5369 {
5370 if (sk->sk_protocol != IPPROTO_TCP)
5371 return -EINVAL;
5372
5373 switch (optname) {
5374 case TCP_NODELAY:
5375 case TCP_MAXSEG:
5376 case TCP_KEEPIDLE:
5377 case TCP_KEEPINTVL:
5378 case TCP_KEEPCNT:
5379 case TCP_SYNCNT:
5380 case TCP_WINDOW_CLAMP:
5381 case TCP_THIN_LINEAR_TIMEOUTS:
5382 case TCP_USER_TIMEOUT:
5383 case TCP_NOTSENT_LOWAT:
5384 case TCP_SAVE_SYN:
> 5385 case TCP_RTO_MAX_MS:
5386 if (*optlen != sizeof(int))
5387 return -EINVAL;
5388 break;
5389 case TCP_CONGESTION:
5390 return sol_tcp_sockopt_congestion(sk, optval, optlen, getopt);
5391 case TCP_SAVED_SYN:
5392 if (*optlen < 1)
5393 return -EINVAL;
5394 break;
5395 case TCP_BPF_SOCK_OPS_CB_FLAGS:
5396 if (*optlen != sizeof(int))
5397 return -EINVAL;
5398 if (getopt) {
5399 struct tcp_sock *tp = tcp_sk(sk);
5400 int cb_flags = tp->bpf_sock_ops_cb_flags;
5401
5402 memcpy(optval, &cb_flags, *optlen);
5403 return 0;
5404 }
5405 return bpf_sol_tcp_setsockopt(sk, optname, optval, *optlen);
5406 default:
5407 if (getopt)
5408 return -EINVAL;
5409 return bpf_sol_tcp_setsockopt(sk, optname, optval, *optlen);
5410 }
5411
5412 if (getopt) {
5413 if (optname == TCP_SAVED_SYN) {
5414 struct tcp_sock *tp = tcp_sk(sk);
5415
5416 if (!tp->saved_syn ||
5417 *optlen > tcp_saved_syn_len(tp->saved_syn))
5418 return -EINVAL;
5419 memcpy(optval, tp->saved_syn->data, *optlen);
5420 /* It cannot free tp->saved_syn here because it
5421 * does not know if the user space still needs it.
5422 */
5423 return 0;
5424 }
5425
5426 return do_tcp_getsockopt(sk, SOL_TCP, optname,
5427 KERNEL_SOCKPTR(optval),
5428 KERNEL_SOCKPTR(optlen));
5429 }
5430
5431 return do_tcp_setsockopt(sk, SOL_TCP, optname,
5432 KERNEL_SOCKPTR(optval), *optlen);
5433 }
5434
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS for bpf_setsockopt
2025-02-19 8:13 ` [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS " Jason Xing
2025-02-20 8:51 ` kernel test robot
@ 2025-02-22 22:51 ` kernel test robot
1 sibling, 0 replies; 8+ messages in thread
From: kernel test robot @ 2025-02-22 22:51 UTC (permalink / raw)
To: Jason Xing, davem, edumazet, kuba, pabeni, dsahern, kuniyu, ast,
daniel, andrii, martin.lau, eddyz87, song, yonghong.song,
john.fastabend, kpsingh, sdf, haoluo, jolsa, shuah, ykolal
Cc: llvm, oe-kbuild-all, bpf, netdev, Jason Xing
Hi Jason,
kernel test robot noticed the following build errors:
[auto build test ERROR on bpf-next/master]
url: https://github.com/intel-lab-lkp/linux/commits/Jason-Xing/bpf-support-TCP_RTO_MAX_MS-for-bpf_setsockopt/20250219-161637
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
patch link: https://lore.kernel.org/r/20250219081333.56378-2-kerneljasonxing%40gmail.com
patch subject: [PATCH bpf-next v3 1/2] bpf: support TCP_RTO_MAX_MS for bpf_setsockopt
config: i386-buildonly-randconfig-004-20250220 (https://download.01.org/0day-ci/archive/20250223/202502230656.sZc7duhR-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250223/202502230656.sZc7duhR-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502230656.sZc7duhR-lkp@intel.com/
All errors (new ones prefixed by >>):
net/core/filter.c:1726:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
1726 | .arg3_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:2041:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
2041 | .arg1_type = ARG_PTR_TO_MEM | PTR_MAYBE_NULL | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
net/core/filter.c:2043:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
2043 | .arg3_type = ARG_PTR_TO_MEM | PTR_MAYBE_NULL | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
net/core/filter.c:2580:35: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
2580 | .arg2_type = ARG_PTR_TO_MEM | PTR_MAYBE_NULL | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
net/core/filter.c:4649:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
4649 | .arg4_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:4663:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
4663 | .arg4_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:4863:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
4863 | .arg2_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:4891:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
4891 | .arg2_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:5063:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
5063 | .arg4_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:5077:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
5077 | .arg4_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:5126:45: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
5126 | .arg1_type = ARG_PTR_TO_BTF_ID_SOCK_COMMON | PTR_MAYBE_NULL,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
>> net/core/filter.c:5385:7: error: use of undeclared identifier 'TCP_RTO_MAX_MS'; did you mean 'TCA_RED_MAX_P'?
5385 | case TCP_RTO_MAX_MS:
| ^~~~~~~~~~~~~~
| TCA_RED_MAX_P
include/uapi/linux/pkt_sched.h:258:2: note: 'TCA_RED_MAX_P' declared here
258 | TCA_RED_MAX_P,
| ^
net/core/filter.c:5562:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
5562 | .arg4_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:5596:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
5596 | .arg4_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:5630:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
5630 | .arg4_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:5664:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
5664 | .arg4_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:5839:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
5839 | .arg2_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:6376:46: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
6376 | .arg3_type = ARG_PTR_TO_FIXED_SIZE_MEM | MEM_WRITE | MEM_ALIGNED,
| ~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~
net/core/filter.c:6388:46: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
6388 | .arg3_type = ARG_PTR_TO_FIXED_SIZE_MEM | MEM_WRITE | MEM_ALIGNED,
| ~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~
net/core/filter.c:6474:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
6474 | .arg3_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
net/core/filter.c:6484:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
6484 | .arg3_type = ARG_PTR_TO_MEM | MEM_RDONLY,
| ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
20 warnings and 1 error generated.
vim +5385 net/core/filter.c
5365
5366 static int sol_tcp_sockopt(struct sock *sk, int optname,
5367 char *optval, int *optlen,
5368 bool getopt)
5369 {
5370 if (sk->sk_protocol != IPPROTO_TCP)
5371 return -EINVAL;
5372
5373 switch (optname) {
5374 case TCP_NODELAY:
5375 case TCP_MAXSEG:
5376 case TCP_KEEPIDLE:
5377 case TCP_KEEPINTVL:
5378 case TCP_KEEPCNT:
5379 case TCP_SYNCNT:
5380 case TCP_WINDOW_CLAMP:
5381 case TCP_THIN_LINEAR_TIMEOUTS:
5382 case TCP_USER_TIMEOUT:
5383 case TCP_NOTSENT_LOWAT:
5384 case TCP_SAVE_SYN:
> 5385 case TCP_RTO_MAX_MS:
5386 if (*optlen != sizeof(int))
5387 return -EINVAL;
5388 break;
5389 case TCP_CONGESTION:
5390 return sol_tcp_sockopt_congestion(sk, optval, optlen, getopt);
5391 case TCP_SAVED_SYN:
5392 if (*optlen < 1)
5393 return -EINVAL;
5394 break;
5395 case TCP_BPF_SOCK_OPS_CB_FLAGS:
5396 if (*optlen != sizeof(int))
5397 return -EINVAL;
5398 if (getopt) {
5399 struct tcp_sock *tp = tcp_sk(sk);
5400 int cb_flags = tp->bpf_sock_ops_cb_flags;
5401
5402 memcpy(optval, &cb_flags, *optlen);
5403 return 0;
5404 }
5405 return bpf_sol_tcp_setsockopt(sk, optname, optval, *optlen);
5406 default:
5407 if (getopt)
5408 return -EINVAL;
5409 return bpf_sol_tcp_setsockopt(sk, optname, optval, *optlen);
5410 }
5411
5412 if (getopt) {
5413 if (optname == TCP_SAVED_SYN) {
5414 struct tcp_sock *tp = tcp_sk(sk);
5415
5416 if (!tp->saved_syn ||
5417 *optlen > tcp_saved_syn_len(tp->saved_syn))
5418 return -EINVAL;
5419 memcpy(optval, tp->saved_syn->data, *optlen);
5420 /* It cannot free tp->saved_syn here because it
5421 * does not know if the user space still needs it.
5422 */
5423 return 0;
5424 }
5425
5426 return do_tcp_getsockopt(sk, SOL_TCP, optname,
5427 KERNEL_SOCKPTR(optval),
5428 KERNEL_SOCKPTR(optlen));
5429 }
5430
5431 return do_tcp_setsockopt(sk, SOL_TCP, optname,
5432 KERNEL_SOCKPTR(optval), *optlen);
5433 }
5434
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 8+ messages in thread