All of lore.kernel.org
 help / color / mirror / Atom feed
* [chrome-os:chromeos-6.1 14/16] kernel/bpf/helpers.c:1470:36: warning: unused variable 'bpf_dynptr_from_mem_proto'
@ 2023-11-04 20:44 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-11-04 20:44 UTC (permalink / raw)
  To: cros-kernel-buildreports, Guenter Roeck; +Cc: oe-kbuild-all

tree:   https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-6.1
head:   9d02047200a95c6b3c244b9bbf4cbd77eaac2072
commit: 760f4cf674da090493b278a32a2fc69e6f9575cd [14/16] CHROMIUM: Introduce CONFIG_BPF_DYNPTR
config: x86_64-rhel-8.3-rust (https://download.01.org/0day-ci/archive/20231105/202311050447.G0TKLtim-lkp@intel.com/config)
compiler: clang version 15.0.7 (https://github.com/llvm/llvm-project.git 8dfdcc7b7bf66834a761bd8de445840ef68e4d1a)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231105/202311050447.G0TKLtim-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/202311050447.G0TKLtim-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> kernel/bpf/helpers.c:1470:36: warning: unused variable 'bpf_dynptr_from_mem_proto' [-Wunused-const-variable]
   static const struct bpf_func_proto bpf_dynptr_from_mem_proto = {
                                      ^
>> kernel/bpf/helpers.c:1497:36: warning: unused variable 'bpf_dynptr_read_proto' [-Wunused-const-variable]
   static const struct bpf_func_proto bpf_dynptr_read_proto = {
                                      ^
>> kernel/bpf/helpers.c:1525:36: warning: unused variable 'bpf_dynptr_write_proto' [-Wunused-const-variable]
   static const struct bpf_func_proto bpf_dynptr_write_proto = {
                                      ^
>> kernel/bpf/helpers.c:1553:36: warning: unused variable 'bpf_dynptr_data_proto' [-Wunused-const-variable]
   static const struct bpf_func_proto bpf_dynptr_data_proto = {
                                      ^
   4 warnings generated.


vim +/bpf_dynptr_from_mem_proto +1470 kernel/bpf/helpers.c

263ae152e96253 Joanne Koong 2022-05-23  1469  
dc368e1c658e4f Joanne Koong 2022-06-16 @1470  static const struct bpf_func_proto bpf_dynptr_from_mem_proto = {
263ae152e96253 Joanne Koong 2022-05-23  1471  	.func		= bpf_dynptr_from_mem,
263ae152e96253 Joanne Koong 2022-05-23  1472  	.gpl_only	= false,
263ae152e96253 Joanne Koong 2022-05-23  1473  	.ret_type	= RET_INTEGER,
263ae152e96253 Joanne Koong 2022-05-23  1474  	.arg1_type	= ARG_PTR_TO_UNINIT_MEM,
263ae152e96253 Joanne Koong 2022-05-23  1475  	.arg2_type	= ARG_CONST_SIZE_OR_ZERO,
263ae152e96253 Joanne Koong 2022-05-23  1476  	.arg3_type	= ARG_ANYTHING,
263ae152e96253 Joanne Koong 2022-05-23  1477  	.arg4_type	= ARG_PTR_TO_DYNPTR | DYNPTR_TYPE_LOCAL | MEM_UNINIT,
263ae152e96253 Joanne Koong 2022-05-23  1478  };
263ae152e96253 Joanne Koong 2022-05-23  1479  
f8d3da4ef8faf0 Joanne Koong 2022-07-06  1480  BPF_CALL_5(bpf_dynptr_read, void *, dst, u32, len, struct bpf_dynptr_kern *, src,
f8d3da4ef8faf0 Joanne Koong 2022-07-06  1481  	   u32, offset, u64, flags)
13bbbfbea7598e Joanne Koong 2022-05-23  1482  {
13bbbfbea7598e Joanne Koong 2022-05-23  1483  	int err;
13bbbfbea7598e Joanne Koong 2022-05-23  1484  
f8d3da4ef8faf0 Joanne Koong 2022-07-06  1485  	if (!src->data || flags)
13bbbfbea7598e Joanne Koong 2022-05-23  1486  		return -EINVAL;
13bbbfbea7598e Joanne Koong 2022-05-23  1487  
13bbbfbea7598e Joanne Koong 2022-05-23  1488  	err = bpf_dynptr_check_off_len(src, offset, len);
13bbbfbea7598e Joanne Koong 2022-05-23  1489  	if (err)
13bbbfbea7598e Joanne Koong 2022-05-23  1490  		return err;
13bbbfbea7598e Joanne Koong 2022-05-23  1491  
13bbbfbea7598e Joanne Koong 2022-05-23  1492  	memcpy(dst, src->data + src->offset + offset, len);
13bbbfbea7598e Joanne Koong 2022-05-23  1493  
13bbbfbea7598e Joanne Koong 2022-05-23  1494  	return 0;
13bbbfbea7598e Joanne Koong 2022-05-23  1495  }
13bbbfbea7598e Joanne Koong 2022-05-23  1496  
dc368e1c658e4f Joanne Koong 2022-06-16 @1497  static const struct bpf_func_proto bpf_dynptr_read_proto = {
13bbbfbea7598e Joanne Koong 2022-05-23  1498  	.func		= bpf_dynptr_read,
13bbbfbea7598e Joanne Koong 2022-05-23  1499  	.gpl_only	= false,
13bbbfbea7598e Joanne Koong 2022-05-23  1500  	.ret_type	= RET_INTEGER,
13bbbfbea7598e Joanne Koong 2022-05-23  1501  	.arg1_type	= ARG_PTR_TO_UNINIT_MEM,
13bbbfbea7598e Joanne Koong 2022-05-23  1502  	.arg2_type	= ARG_CONST_SIZE_OR_ZERO,
13bbbfbea7598e Joanne Koong 2022-05-23  1503  	.arg3_type	= ARG_PTR_TO_DYNPTR,
13bbbfbea7598e Joanne Koong 2022-05-23  1504  	.arg4_type	= ARG_ANYTHING,
f8d3da4ef8faf0 Joanne Koong 2022-07-06  1505  	.arg5_type	= ARG_ANYTHING,
13bbbfbea7598e Joanne Koong 2022-05-23  1506  };
13bbbfbea7598e Joanne Koong 2022-05-23  1507  
f8d3da4ef8faf0 Joanne Koong 2022-07-06  1508  BPF_CALL_5(bpf_dynptr_write, struct bpf_dynptr_kern *, dst, u32, offset, void *, src,
f8d3da4ef8faf0 Joanne Koong 2022-07-06  1509  	   u32, len, u64, flags)
13bbbfbea7598e Joanne Koong 2022-05-23  1510  {
13bbbfbea7598e Joanne Koong 2022-05-23  1511  	int err;
13bbbfbea7598e Joanne Koong 2022-05-23  1512  
f8d3da4ef8faf0 Joanne Koong 2022-07-06  1513  	if (!dst->data || flags || bpf_dynptr_is_rdonly(dst))
13bbbfbea7598e Joanne Koong 2022-05-23  1514  		return -EINVAL;
13bbbfbea7598e Joanne Koong 2022-05-23  1515  
13bbbfbea7598e Joanne Koong 2022-05-23  1516  	err = bpf_dynptr_check_off_len(dst, offset, len);
13bbbfbea7598e Joanne Koong 2022-05-23  1517  	if (err)
13bbbfbea7598e Joanne Koong 2022-05-23  1518  		return err;
13bbbfbea7598e Joanne Koong 2022-05-23  1519  
13bbbfbea7598e Joanne Koong 2022-05-23  1520  	memcpy(dst->data + dst->offset + offset, src, len);
13bbbfbea7598e Joanne Koong 2022-05-23  1521  
13bbbfbea7598e Joanne Koong 2022-05-23  1522  	return 0;
13bbbfbea7598e Joanne Koong 2022-05-23  1523  }
13bbbfbea7598e Joanne Koong 2022-05-23  1524  
dc368e1c658e4f Joanne Koong 2022-06-16 @1525  static const struct bpf_func_proto bpf_dynptr_write_proto = {
13bbbfbea7598e Joanne Koong 2022-05-23  1526  	.func		= bpf_dynptr_write,
13bbbfbea7598e Joanne Koong 2022-05-23  1527  	.gpl_only	= false,
13bbbfbea7598e Joanne Koong 2022-05-23  1528  	.ret_type	= RET_INTEGER,
13bbbfbea7598e Joanne Koong 2022-05-23  1529  	.arg1_type	= ARG_PTR_TO_DYNPTR,
13bbbfbea7598e Joanne Koong 2022-05-23  1530  	.arg2_type	= ARG_ANYTHING,
13bbbfbea7598e Joanne Koong 2022-05-23  1531  	.arg3_type	= ARG_PTR_TO_MEM | MEM_RDONLY,
13bbbfbea7598e Joanne Koong 2022-05-23  1532  	.arg4_type	= ARG_CONST_SIZE_OR_ZERO,
f8d3da4ef8faf0 Joanne Koong 2022-07-06  1533  	.arg5_type	= ARG_ANYTHING,
13bbbfbea7598e Joanne Koong 2022-05-23  1534  };
13bbbfbea7598e Joanne Koong 2022-05-23  1535  
34d4ef5775f776 Joanne Koong 2022-05-23  1536  BPF_CALL_3(bpf_dynptr_data, struct bpf_dynptr_kern *, ptr, u32, offset, u32, len)
34d4ef5775f776 Joanne Koong 2022-05-23  1537  {
34d4ef5775f776 Joanne Koong 2022-05-23  1538  	int err;
34d4ef5775f776 Joanne Koong 2022-05-23  1539  
34d4ef5775f776 Joanne Koong 2022-05-23  1540  	if (!ptr->data)
34d4ef5775f776 Joanne Koong 2022-05-23  1541  		return 0;
34d4ef5775f776 Joanne Koong 2022-05-23  1542  
34d4ef5775f776 Joanne Koong 2022-05-23  1543  	err = bpf_dynptr_check_off_len(ptr, offset, len);
34d4ef5775f776 Joanne Koong 2022-05-23  1544  	if (err)
34d4ef5775f776 Joanne Koong 2022-05-23  1545  		return 0;
34d4ef5775f776 Joanne Koong 2022-05-23  1546  
34d4ef5775f776 Joanne Koong 2022-05-23  1547  	if (bpf_dynptr_is_rdonly(ptr))
34d4ef5775f776 Joanne Koong 2022-05-23  1548  		return 0;
34d4ef5775f776 Joanne Koong 2022-05-23  1549  
34d4ef5775f776 Joanne Koong 2022-05-23  1550  	return (unsigned long)(ptr->data + ptr->offset + offset);
34d4ef5775f776 Joanne Koong 2022-05-23  1551  }
34d4ef5775f776 Joanne Koong 2022-05-23  1552  
dc368e1c658e4f Joanne Koong 2022-06-16 @1553  static const struct bpf_func_proto bpf_dynptr_data_proto = {
34d4ef5775f776 Joanne Koong 2022-05-23  1554  	.func		= bpf_dynptr_data,
34d4ef5775f776 Joanne Koong 2022-05-23  1555  	.gpl_only	= false,
34d4ef5775f776 Joanne Koong 2022-05-23  1556  	.ret_type	= RET_PTR_TO_DYNPTR_MEM_OR_NULL,
34d4ef5775f776 Joanne Koong 2022-05-23  1557  	.arg1_type	= ARG_PTR_TO_DYNPTR,
34d4ef5775f776 Joanne Koong 2022-05-23  1558  	.arg2_type	= ARG_ANYTHING,
34d4ef5775f776 Joanne Koong 2022-05-23  1559  	.arg3_type	= ARG_CONST_ALLOC_SIZE_OR_ZERO,
34d4ef5775f776 Joanne Koong 2022-05-23  1560  };
34d4ef5775f776 Joanne Koong 2022-05-23  1561  

:::::: The code at line 1470 was first introduced by commit
:::::: dc368e1c658e4f478a45e8d1d5b0c8392ca87506 bpf: Fix non-static bpf_func_proto struct definitions

:::::: TO: Joanne Koong <joannelkoong@gmail.com>
:::::: CC: Daniel Borkmann <daniel@iogearbox.net>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

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

only message in thread, other threads:[~2023-11-04 20:45 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-04 20:44 [chrome-os:chromeos-6.1 14/16] kernel/bpf/helpers.c:1470:36: warning: unused variable 'bpf_dynptr_from_mem_proto' 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.