Re: [PATCH] include/linux/kfifo.h
From: kernel test robot
Date: Fri Oct 04 2024 - 05:23:25 EST
Hi Xiaofeng,
kernel test robot noticed the following build errors:
[auto build test ERROR on linus/master]
[also build test ERROR on v6.12-rc1 next-20241004]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Xiaofeng-Lian/include-linux-kfifo-h/20241003-002015
base: linus/master
patch link: https://lore.kernel.org/r/20241002161437.376042-1-1198715581lxf%40gmail.com
patch subject: [PATCH] include/linux/kfifo.h
config: x86_64-buildonly-randconfig-002-20241004 (https://download.01.org/0day-ci/archive/20241004/202410041702.fCzWLtzn-lkp@xxxxxxxxx/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/20241004/202410041702.fCzWLtzn-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410041702.fCzWLtzn-lkp@xxxxxxxxx/
All errors (new ones prefixed by >>):
In file included from drivers/crypto/hisilicon/sec/sec_drv.h:8,
from drivers/crypto/hisilicon/sec/sec_algs.c:17:
drivers/crypto/hisilicon/sec/sec_algs.c: In function 'sec_alg_skcipher_init_with_queue':
>> include/linux/kfifo.h:130:49: error: '*(struct sec_request_el **)&__tmp->buf' is a pointer; did you mean to use '->'?
130 | #define get_stack_data_type(fifo) typeof(*(fifo)->type)
| ^~
include/linux/kfifo.h:61:17: note: in definition of macro '__STRUCT_KFIFO_COMMON'
61 | datatype *type; \
| ^~~~~~~~
include/linux/kfifo.h:84:16: note: in expansion of macro '__STRUCT_KFIFO_PTR'
84 | struct __STRUCT_KFIFO_PTR(type, 0, type)
| ^~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:116:41: note: in expansion of macro 'STRUCT_KFIFO_PTR'
116 | #define DECLARE_KFIFO_PTR(fifo, type) STRUCT_KFIFO_PTR(type) fifo
| ^~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:17: note: in expansion of macro 'DECLARE_KFIFO_PTR'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:48: note: in expansion of macro 'get_stack_data_type'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:151:53: note: in expansion of macro '__STACK_SIZE'
151 | __kfifo->mask = __is_kfifo_ptr(__tmp) ? 0 : __STACK_SIZE(__tmp->buf) - 1;\
| ^~~~~~~~~~~~
drivers/crypto/hisilicon/sec/sec_algs.c:912:9: note: in expansion of macro 'INIT_KFIFO'
912 | INIT_KFIFO(ctx->queue->softqueue);
| ^~~~~~~~~~
>> include/linux/kfifo.h:130:49: error: '*(struct sec_request_el **)&__tmp->buf' is a pointer; did you mean to use '->'?
130 | #define get_stack_data_type(fifo) typeof(*(fifo)->type)
| ^~
include/linux/kfifo.h:62:23: note: in definition of macro '__STRUCT_KFIFO_COMMON'
62 | const datatype *const_type; \
| ^~~~~~~~
include/linux/kfifo.h:84:16: note: in expansion of macro '__STRUCT_KFIFO_PTR'
84 | struct __STRUCT_KFIFO_PTR(type, 0, type)
| ^~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:116:41: note: in expansion of macro 'STRUCT_KFIFO_PTR'
116 | #define DECLARE_KFIFO_PTR(fifo, type) STRUCT_KFIFO_PTR(type) fifo
| ^~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:17: note: in expansion of macro 'DECLARE_KFIFO_PTR'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:48: note: in expansion of macro 'get_stack_data_type'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:151:53: note: in expansion of macro '__STACK_SIZE'
151 | __kfifo->mask = __is_kfifo_ptr(__tmp) ? 0 : __STACK_SIZE(__tmp->buf) - 1;\
| ^~~~~~~~~~~~
drivers/crypto/hisilicon/sec/sec_algs.c:912:9: note: in expansion of macro 'INIT_KFIFO'
912 | INIT_KFIFO(ctx->queue->softqueue);
| ^~~~~~~~~~
>> include/linux/kfifo.h:130:49: error: '*(struct sec_request_el **)&__tmp->buf' is a pointer; did you mean to use '->'?
130 | #define get_stack_data_type(fifo) typeof(*(fifo)->type)
| ^~
include/linux/kfifo.h:64:17: note: in definition of macro '__STRUCT_KFIFO_COMMON'
64 | ptrtype *ptr; \
| ^~~~~~~
include/linux/kfifo.h:84:16: note: in expansion of macro '__STRUCT_KFIFO_PTR'
84 | struct __STRUCT_KFIFO_PTR(type, 0, type)
| ^~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:116:41: note: in expansion of macro 'STRUCT_KFIFO_PTR'
116 | #define DECLARE_KFIFO_PTR(fifo, type) STRUCT_KFIFO_PTR(type) fifo
| ^~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:17: note: in expansion of macro 'DECLARE_KFIFO_PTR'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:48: note: in expansion of macro 'get_stack_data_type'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:151:53: note: in expansion of macro '__STACK_SIZE'
151 | __kfifo->mask = __is_kfifo_ptr(__tmp) ? 0 : __STACK_SIZE(__tmp->buf) - 1;\
| ^~~~~~~~~~~~
drivers/crypto/hisilicon/sec/sec_algs.c:912:9: note: in expansion of macro 'INIT_KFIFO'
912 | INIT_KFIFO(ctx->queue->softqueue);
| ^~~~~~~~~~
>> include/linux/kfifo.h:130:49: error: '*(struct sec_request_el **)&__tmp->buf' is a pointer; did you mean to use '->'?
130 | #define get_stack_data_type(fifo) typeof(*(fifo)->type)
| ^~
include/linux/kfifo.h:65:17: note: in definition of macro '__STRUCT_KFIFO_COMMON'
65 | ptrtype const *ptr_const; \
| ^~~~~~~
include/linux/kfifo.h:84:16: note: in expansion of macro '__STRUCT_KFIFO_PTR'
84 | struct __STRUCT_KFIFO_PTR(type, 0, type)
| ^~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:116:41: note: in expansion of macro 'STRUCT_KFIFO_PTR'
116 | #define DECLARE_KFIFO_PTR(fifo, type) STRUCT_KFIFO_PTR(type) fifo
| ^~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:17: note: in expansion of macro 'DECLARE_KFIFO_PTR'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:48: note: in expansion of macro 'get_stack_data_type'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:151:53: note: in expansion of macro '__STACK_SIZE'
151 | __kfifo->mask = __is_kfifo_ptr(__tmp) ? 0 : __STACK_SIZE(__tmp->buf) - 1;\
| ^~~~~~~~~~~~
drivers/crypto/hisilicon/sec/sec_algs.c:912:9: note: in expansion of macro 'INIT_KFIFO'
912 | INIT_KFIFO(ctx->queue->softqueue);
| ^~~~~~~~~~
>> include/linux/kfifo.h:130:49: error: '*(struct sec_request_el **)&__tmp->buf' is a pointer; did you mean to use '->'?
130 | #define get_stack_data_type(fifo) typeof(*(fifo)->type)
| ^~
include/linux/kfifo.h:80:9: note: in definition of macro '__STRUCT_KFIFO_PTR'
80 | type buf[0]; \
| ^~~~
include/linux/kfifo.h:116:41: note: in expansion of macro 'STRUCT_KFIFO_PTR'
116 | #define DECLARE_KFIFO_PTR(fifo, type) STRUCT_KFIFO_PTR(type) fifo
| ^~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:17: note: in expansion of macro 'DECLARE_KFIFO_PTR'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:48: note: in expansion of macro 'get_stack_data_type'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:151:53: note: in expansion of macro '__STACK_SIZE'
151 | __kfifo->mask = __is_kfifo_ptr(__tmp) ? 0 : __STACK_SIZE(__tmp->buf) - 1;\
| ^~~~~~~~~~~~
drivers/crypto/hisilicon/sec/sec_algs.c:912:9: note: in expansion of macro 'INIT_KFIFO'
912 | INIT_KFIFO(ctx->queue->softqueue);
| ^~~~~~~~~~
>> include/linux/kfifo.h:130:49: error: '*(struct sec_request_el **)&__tmp->buf' is a pointer; did you mean to use '->'?
130 | #define get_stack_data_type(fifo) typeof(*(fifo)->type)
| ^~
include/linux/kfifo.h:139:66: note: in expansion of macro 'get_stack_data_type'
139 | (sizeof(*(fifo)) - sizeof(__tmp_stack)) / sizeof(get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:151:53: note: in expansion of macro '__STACK_SIZE'
151 | __kfifo->mask = __is_kfifo_ptr(__tmp) ? 0 : __STACK_SIZE(__tmp->buf) - 1;\
| ^~~~~~~~~~~~
drivers/crypto/hisilicon/sec/sec_algs.c:912:9: note: in expansion of macro 'INIT_KFIFO'
912 | INIT_KFIFO(ctx->queue->softqueue);
| ^~~~~~~~~~
--
In file included from drivers/gpu/drm/sun4i/sun4i_drv.c:11:
drivers/gpu/drm/sun4i/sun4i_drv.c: In function 'sun4i_drv_probe':
>> include/linux/kfifo.h:130:49: error: '*(struct device_node **)&__tmp->buf' is a pointer; did you mean to use '->'?
130 | #define get_stack_data_type(fifo) typeof(*(fifo)->type)
| ^~
include/linux/kfifo.h:61:17: note: in definition of macro '__STRUCT_KFIFO_COMMON'
61 | datatype *type; \
| ^~~~~~~~
include/linux/kfifo.h:84:16: note: in expansion of macro '__STRUCT_KFIFO_PTR'
84 | struct __STRUCT_KFIFO_PTR(type, 0, type)
| ^~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:116:41: note: in expansion of macro 'STRUCT_KFIFO_PTR'
116 | #define DECLARE_KFIFO_PTR(fifo, type) STRUCT_KFIFO_PTR(type) fifo
| ^~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:17: note: in expansion of macro 'DECLARE_KFIFO_PTR'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:48: note: in expansion of macro 'get_stack_data_type'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:151:53: note: in expansion of macro '__STACK_SIZE'
151 | __kfifo->mask = __is_kfifo_ptr(__tmp) ? 0 : __STACK_SIZE(__tmp->buf) - 1;\
| ^~~~~~~~~~~~
drivers/gpu/drm/sun4i/sun4i_drv.c:372:9: note: in expansion of macro 'INIT_KFIFO'
372 | INIT_KFIFO(list.fifo);
| ^~~~~~~~~~
>> include/linux/kfifo.h:130:49: error: '*(struct device_node **)&__tmp->buf' is a pointer; did you mean to use '->'?
130 | #define get_stack_data_type(fifo) typeof(*(fifo)->type)
| ^~
include/linux/kfifo.h:62:23: note: in definition of macro '__STRUCT_KFIFO_COMMON'
62 | const datatype *const_type; \
| ^~~~~~~~
include/linux/kfifo.h:84:16: note: in expansion of macro '__STRUCT_KFIFO_PTR'
84 | struct __STRUCT_KFIFO_PTR(type, 0, type)
| ^~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:116:41: note: in expansion of macro 'STRUCT_KFIFO_PTR'
116 | #define DECLARE_KFIFO_PTR(fifo, type) STRUCT_KFIFO_PTR(type) fifo
| ^~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:17: note: in expansion of macro 'DECLARE_KFIFO_PTR'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:48: note: in expansion of macro 'get_stack_data_type'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:151:53: note: in expansion of macro '__STACK_SIZE'
151 | __kfifo->mask = __is_kfifo_ptr(__tmp) ? 0 : __STACK_SIZE(__tmp->buf) - 1;\
| ^~~~~~~~~~~~
drivers/gpu/drm/sun4i/sun4i_drv.c:372:9: note: in expansion of macro 'INIT_KFIFO'
372 | INIT_KFIFO(list.fifo);
| ^~~~~~~~~~
>> include/linux/kfifo.h:130:49: error: '*(struct device_node **)&__tmp->buf' is a pointer; did you mean to use '->'?
130 | #define get_stack_data_type(fifo) typeof(*(fifo)->type)
| ^~
include/linux/kfifo.h:64:17: note: in definition of macro '__STRUCT_KFIFO_COMMON'
64 | ptrtype *ptr; \
| ^~~~~~~
include/linux/kfifo.h:84:16: note: in expansion of macro '__STRUCT_KFIFO_PTR'
84 | struct __STRUCT_KFIFO_PTR(type, 0, type)
| ^~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:116:41: note: in expansion of macro 'STRUCT_KFIFO_PTR'
116 | #define DECLARE_KFIFO_PTR(fifo, type) STRUCT_KFIFO_PTR(type) fifo
| ^~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:17: note: in expansion of macro 'DECLARE_KFIFO_PTR'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:48: note: in expansion of macro 'get_stack_data_type'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:151:53: note: in expansion of macro '__STACK_SIZE'
151 | __kfifo->mask = __is_kfifo_ptr(__tmp) ? 0 : __STACK_SIZE(__tmp->buf) - 1;\
| ^~~~~~~~~~~~
drivers/gpu/drm/sun4i/sun4i_drv.c:372:9: note: in expansion of macro 'INIT_KFIFO'
372 | INIT_KFIFO(list.fifo);
| ^~~~~~~~~~
>> include/linux/kfifo.h:130:49: error: '*(struct device_node **)&__tmp->buf' is a pointer; did you mean to use '->'?
130 | #define get_stack_data_type(fifo) typeof(*(fifo)->type)
| ^~
include/linux/kfifo.h:65:17: note: in definition of macro '__STRUCT_KFIFO_COMMON'
65 | ptrtype const *ptr_const; \
| ^~~~~~~
include/linux/kfifo.h:84:16: note: in expansion of macro '__STRUCT_KFIFO_PTR'
84 | struct __STRUCT_KFIFO_PTR(type, 0, type)
| ^~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:116:41: note: in expansion of macro 'STRUCT_KFIFO_PTR'
116 | #define DECLARE_KFIFO_PTR(fifo, type) STRUCT_KFIFO_PTR(type) fifo
| ^~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:17: note: in expansion of macro 'DECLARE_KFIFO_PTR'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:48: note: in expansion of macro 'get_stack_data_type'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:151:53: note: in expansion of macro '__STACK_SIZE'
151 | __kfifo->mask = __is_kfifo_ptr(__tmp) ? 0 : __STACK_SIZE(__tmp->buf) - 1;\
| ^~~~~~~~~~~~
drivers/gpu/drm/sun4i/sun4i_drv.c:372:9: note: in expansion of macro 'INIT_KFIFO'
372 | INIT_KFIFO(list.fifo);
| ^~~~~~~~~~
>> include/linux/kfifo.h:130:49: error: '*(struct device_node **)&__tmp->buf' is a pointer; did you mean to use '->'?
130 | #define get_stack_data_type(fifo) typeof(*(fifo)->type)
| ^~
include/linux/kfifo.h:80:9: note: in definition of macro '__STRUCT_KFIFO_PTR'
80 | type buf[0]; \
| ^~~~
include/linux/kfifo.h:116:41: note: in expansion of macro 'STRUCT_KFIFO_PTR'
116 | #define DECLARE_KFIFO_PTR(fifo, type) STRUCT_KFIFO_PTR(type) fifo
| ^~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:17: note: in expansion of macro 'DECLARE_KFIFO_PTR'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~
include/linux/kfifo.h:138:48: note: in expansion of macro 'get_stack_data_type'
138 | DECLARE_KFIFO_PTR(__tmp_stack, get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:151:53: note: in expansion of macro '__STACK_SIZE'
151 | __kfifo->mask = __is_kfifo_ptr(__tmp) ? 0 : __STACK_SIZE(__tmp->buf) - 1;\
| ^~~~~~~~~~~~
drivers/gpu/drm/sun4i/sun4i_drv.c:372:9: note: in expansion of macro 'INIT_KFIFO'
372 | INIT_KFIFO(list.fifo);
| ^~~~~~~~~~
>> include/linux/kfifo.h:130:49: error: '*(struct device_node **)&__tmp->buf' is a pointer; did you mean to use '->'?
130 | #define get_stack_data_type(fifo) typeof(*(fifo)->type)
| ^~
include/linux/kfifo.h:139:66: note: in expansion of macro 'get_stack_data_type'
139 | (sizeof(*(fifo)) - sizeof(__tmp_stack)) / sizeof(get_stack_data_type(fifo));\
| ^~~~~~~~~~~~~~~~~~~
include/linux/kfifo.h:151:53: note: in expansion of macro '__STACK_SIZE'
151 | __kfifo->mask = __is_kfifo_ptr(__tmp) ? 0 : __STACK_SIZE(__tmp->buf) - 1;\
| ^~~~~~~~~~~~
drivers/gpu/drm/sun4i/sun4i_drv.c:372:9: note: in expansion of macro 'INIT_KFIFO'
372 | INIT_KFIFO(list.fifo);
| ^~~~~~~~~~
vim +130 include/linux/kfifo.h
125
126 /**
127 * get_kfifo_data_type - macro to get type of kfifo's member
128 * @fifo: pointer of kfifo
129 */
> 130 #define get_stack_data_type(fifo) typeof(*(fifo)->type)
131
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki