Hi Benjamin, I love your patch! Yet something to improve: [auto build test ERROR on media-tree/master] [also build test ERROR on linus/master v6.3-rc3 next-20230321] [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/Benjamin-Gaignard/media-videobuf2-Access-vb2_queue-bufs-array-through-helper-functions/20230321-183154 base: git://linuxtv.org/media_tree.git master patch link: https://lore.kernel.org/r/20230321102855.346732-4-benjamin.gaignard%40collabora.com patch subject: [PATCH v2 3/8] media: videobuf2: Add a module param to limit vb2 queue buffer storage config: i386-randconfig-a001 (https://download.01.org/0day-ci/archive/20230322/202303220057.J83sWVI1-lkp@xxxxxxxxx/config) compiler: gcc-11 (Debian 11.3.0-8) 11.3.0 reproduce (this is a W=1 build): # https://github.com/intel-lab-lkp/linux/commit/aab64e29070dfec3a043b5020399f79554d6cae4 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Benjamin-Gaignard/media-videobuf2-Access-vb2_queue-bufs-array-through-helper-functions/20230321-183154 git checkout aab64e29070dfec3a043b5020399f79554d6cae4 # save the config file mkdir build_dir && cp config build_dir/.config make W=1 O=build_dir ARCH=i386 olddefconfig make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Link: https://lore.kernel.org/oe-kbuild-all/202303220057.J83sWVI1-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): In file included from include/linux/module.h:22, from drivers/media/common/videobuf2/videobuf2-core.c:21: drivers/media/common/videobuf2/videobuf2-core.c: In function '__check_max_vb_buffer_per_queue': >> include/linux/moduleparam.h:150:34: error: returning 'size_t *' {aka 'unsigned int *'} from a function with incompatible return type 'long unsigned int *' [-Werror=incompatible-pointer-types] 150 | param_check_##type(name, &(value)); \ | ^ include/linux/moduleparam.h:409:75: note: in definition of macro '__param_check' 409 | static inline type __always_unused *__check_##name(void) { return(p); } | ^ include/linux/moduleparam.h:150:9: note: in expansion of macro 'param_check_ulong' 150 | param_check_##type(name, &(value)); \ | ^~~~~~~~~~~~ include/linux/moduleparam.h:127:9: note: in expansion of macro 'module_param_named' 127 | module_param_named(name, name, type, perm) | ^~~~~~~~~~~~~~~~~~ drivers/media/common/videobuf2/videobuf2-core.c:37:1: note: in expansion of macro 'module_param' 37 | module_param(max_vb_buffer_per_queue, ulong, 0644); | ^~~~~~~~~~~~ cc1: some warnings being treated as errors vim +150 include/linux/moduleparam.h ^1da177e4c3f415 Linus Torvalds 2005-04-16 100 546970bc6afc7fb Rusty Russell 2010-08-11 101 /** 546970bc6afc7fb Rusty Russell 2010-08-11 102 * module_param - typesafe helper for a module/cmdline parameter e2854a1054ab171 Zhenzhong Duan 2019-11-04 103 * @name: the variable to alter, and exposed parameter name. 546970bc6afc7fb Rusty Russell 2010-08-11 104 * @type: the type of the parameter 546970bc6afc7fb Rusty Russell 2010-08-11 105 * @perm: visibility in sysfs. 546970bc6afc7fb Rusty Russell 2010-08-11 106 * e2854a1054ab171 Zhenzhong Duan 2019-11-04 107 * @name becomes the module parameter, or (prefixed by KBUILD_MODNAME and a 546970bc6afc7fb Rusty Russell 2010-08-11 108 * ".") the kernel commandline parameter. Note that - is changed to _, so 546970bc6afc7fb Rusty Russell 2010-08-11 109 * the user can use "foo-bar=1" even for variable "foo_bar". 546970bc6afc7fb Rusty Russell 2010-08-11 110 * c6a8b84da4c28bd Randy Dunlap 2020-07-17 111 * @perm is 0 if the variable is not to appear in sysfs, or 0444 546970bc6afc7fb Rusty Russell 2010-08-11 112 * for world-readable, 0644 for root-writable, etc. Note that if it b51d23e4e9fea6f Dan Streetman 2015-06-17 113 * is writable, you may need to use kernel_param_lock() around 546970bc6afc7fb Rusty Russell 2010-08-11 114 * accesses (esp. charp, which can be kfreed when it changes). 546970bc6afc7fb Rusty Russell 2010-08-11 115 * 546970bc6afc7fb Rusty Russell 2010-08-11 116 * The @type is simply pasted to refer to a param_ops_##type and a 546970bc6afc7fb Rusty Russell 2010-08-11 117 * param_check_##type: for convenience many standard types are provided but 546970bc6afc7fb Rusty Russell 2010-08-11 118 * you can create your own by defining those variables. 546970bc6afc7fb Rusty Russell 2010-08-11 119 * 546970bc6afc7fb Rusty Russell 2010-08-11 120 * Standard types are: 7d8365771ffb0ed Paul Menzel 2020-07-03 121 * byte, hexint, short, ushort, int, uint, long, ulong 546970bc6afc7fb Rusty Russell 2010-08-11 122 * charp: a character pointer 546970bc6afc7fb Rusty Russell 2010-08-11 123 * bool: a bool, values 0/1, y/n, Y/N. 546970bc6afc7fb Rusty Russell 2010-08-11 124 * invbool: the above, only sense-reversed (N = true). 546970bc6afc7fb Rusty Russell 2010-08-11 125 */ 546970bc6afc7fb Rusty Russell 2010-08-11 126 #define module_param(name, type, perm) \ 546970bc6afc7fb Rusty Russell 2010-08-11 127 module_param_named(name, name, type, perm) 546970bc6afc7fb Rusty Russell 2010-08-11 128 3baee201b06cfaf Jani Nikula 2014-08-27 129 /** 3baee201b06cfaf Jani Nikula 2014-08-27 130 * module_param_unsafe - same as module_param but taints kernel b6d0531ec7e2ae9 Fabien Dessenne 2019-12-02 131 * @name: the variable to alter, and exposed parameter name. b6d0531ec7e2ae9 Fabien Dessenne 2019-12-02 132 * @type: the type of the parameter b6d0531ec7e2ae9 Fabien Dessenne 2019-12-02 133 * @perm: visibility in sysfs. 3baee201b06cfaf Jani Nikula 2014-08-27 134 */ 3baee201b06cfaf Jani Nikula 2014-08-27 135 #define module_param_unsafe(name, type, perm) \ 3baee201b06cfaf Jani Nikula 2014-08-27 136 module_param_named_unsafe(name, name, type, perm) 3baee201b06cfaf Jani Nikula 2014-08-27 137 546970bc6afc7fb Rusty Russell 2010-08-11 138 /** 546970bc6afc7fb Rusty Russell 2010-08-11 139 * module_param_named - typesafe helper for a renamed module/cmdline parameter 546970bc6afc7fb Rusty Russell 2010-08-11 140 * @name: a valid C identifier which is the parameter name. 546970bc6afc7fb Rusty Russell 2010-08-11 141 * @value: the actual lvalue to alter. 546970bc6afc7fb Rusty Russell 2010-08-11 142 * @type: the type of the parameter 546970bc6afc7fb Rusty Russell 2010-08-11 143 * @perm: visibility in sysfs. 546970bc6afc7fb Rusty Russell 2010-08-11 144 * 546970bc6afc7fb Rusty Russell 2010-08-11 145 * Usually it's a good idea to have variable names and user-exposed names the 546970bc6afc7fb Rusty Russell 2010-08-11 146 * same, but that's harder if the variable must be non-static or is inside a 546970bc6afc7fb Rusty Russell 2010-08-11 147 * structure. This allows exposure under a different name. 546970bc6afc7fb Rusty Russell 2010-08-11 148 */ 546970bc6afc7fb Rusty Russell 2010-08-11 149 #define module_param_named(name, value, type, perm) \ 546970bc6afc7fb Rusty Russell 2010-08-11 @150 param_check_##type(name, &(value)); \ 546970bc6afc7fb Rusty Russell 2010-08-11 151 module_param_cb(name, ¶m_ops_##type, &value, perm); \ 546970bc6afc7fb Rusty Russell 2010-08-11 152 __MODULE_PARM_TYPE(name, #type) 546970bc6afc7fb Rusty Russell 2010-08-11 153 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests