Re: [PATCH v1 32/36] soc: fsl: qe: Add resource-managed muram allocators

From: kernel test robot
Date: Mon Jul 29 2024 - 23:11:31 EST


Hi Herve,

kernel test robot noticed the following build errors:

[auto build test ERROR on robh/for-next]
[also build test ERROR on linus/master v6.11-rc1 next-20240729]
[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/Herve-Codina/soc-fsl-cpm1-qmc-Update-TRNSYNC-only-in-transparent-mode/20240730-001631
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
patch link: https://lore.kernel.org/r/20240729142107.104574-33-herve.codina%40bootlin.com
patch subject: [PATCH v1 32/36] soc: fsl: qe: Add resource-managed muram allocators
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20240730/202407301032.M27FlsV4-lkp@xxxxxxxxx/config)
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240730/202407301032.M27FlsV4-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/202407301032.M27FlsV4-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

>> drivers/soc/fsl/qe/qe_common.c:217:7: error: call to undeclared function 'devres_alloc'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
217 | dr = devres_alloc(devm_cpm_muram_release, sizeof(*dr), GFP_KERNEL);
| ^
drivers/soc/fsl/qe/qe_common.c:217:7: note: did you mean 'msrs_alloc'?
arch/x86/include/asm/msr.h:328:22: note: 'msrs_alloc' declared here
328 | struct msr __percpu *msrs_alloc(void);
| ^
>> drivers/soc/fsl/qe/qe_common.c:217:5: error: incompatible integer to pointer conversion assigning to 's32 *' (aka 'int *') from 'int' [-Wint-conversion]
217 | dr = devres_alloc(devm_cpm_muram_release, sizeof(*dr), GFP_KERNEL);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/soc/fsl/qe/qe_common.c:224:3: error: call to undeclared function 'devres_add'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
224 | devres_add(dev, dr);
| ^
>> drivers/soc/fsl/qe/qe_common.c:226:3: error: call to undeclared function 'devres_free'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
226 | devres_free(dr);
| ^
drivers/soc/fsl/qe/qe_common.c:277:7: error: call to undeclared function 'devres_alloc'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
277 | dr = devres_alloc(devm_cpm_muram_release, sizeof(*dr), GFP_KERNEL);
| ^
drivers/soc/fsl/qe/qe_common.c:277:5: error: incompatible integer to pointer conversion assigning to 's32 *' (aka 'int *') from 'int' [-Wint-conversion]
277 | dr = devres_alloc(devm_cpm_muram_release, sizeof(*dr), GFP_KERNEL);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/soc/fsl/qe/qe_common.c:284:3: error: call to undeclared function 'devres_add'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
284 | devres_add(dev, dr);
| ^
drivers/soc/fsl/qe/qe_common.c:286:3: error: call to undeclared function 'devres_free'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
286 | devres_free(dr);
| ^
8 errors generated.


vim +/devres_alloc +217 drivers/soc/fsl/qe/qe_common.c

196
197 /**
198 * devm_cpm_muram_alloc - Resource-managed cpm_muram_alloc
199 * @dev: Device to allocate memory for
200 * @size: number of bytes to allocate
201 * @align: requested alignment, in bytes
202 *
203 * This function returns a non-negative offset into the muram area, or
204 * a negative errno on failure as cpm_muram_alloc() does.
205 * Use cpm_muram_addr() to get the virtual address of the area.
206 *
207 * Compare against cpm_muram_alloc(), the memory allocated by this
208 * resource-managed version is automatically freed on driver detach and so,
209 * cpm_muram_free() must not be called to release the allocated memory.
210 */
211 s32 devm_cpm_muram_alloc(struct device *dev, unsigned long size,
212 unsigned long align)
213 {
214 s32 info;
215 s32 *dr;
216
> 217 dr = devres_alloc(devm_cpm_muram_release, sizeof(*dr), GFP_KERNEL);
218 if (!dr)
219 return -ENOMEM;
220
221 info = cpm_muram_alloc(size, align);
222 if (info >= 0) {
223 *dr = info;
> 224 devres_add(dev, dr);
225 } else {
> 226 devres_free(dr);
227 }
228
229 return info;
230 }
231 EXPORT_SYMBOL(devm_cpm_muram_alloc);
232

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