Re: [PATCH 1/2] crypto: rng - Override drivers/char/random in FIPS mode

kernel test robot
2025-06-28T15:15:34Z

Hi Jay,

kernel test robot noticed the following build errors:

[auto build test ERROR on herbert-cryptodev-2.6/master]
[also build test ERROR on herbert-crypto-2.6/master linus/master v6.16-rc3 next-20250627]
[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/Jay-Wang/crypto-rng-Override-drivers-char-random-in-FIPS-mode/20250628-123147
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20250628042918.32253-2-wanjay%40amazon.com
patch subject: [PATCH 1/2] crypto: rng - Override drivers/char/random in FIPS mode
config: x86_64-buildonly-randconfig-001-20250628 (https://download.01.org/0day-ci/archive/20250628/202506282235.pPmU7tOj-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250628/202506282235.pPmU7tOj-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/202506282235.pPmU7tOj-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

>> crypto/rng.c:272:21: error: variable 'crypto_devrandom_rng' has initializer but incomplete type
272 | static const struct random_extrng crypto_devrandom_rng = {
| ^~~~~~~~~~~~~
>> crypto/rng.c:273:10: error: 'const struct random_extrng' has no member named 'extrng_read'
273 | .extrng_read = crypto_devrandom_read,
| ^~~~~~~~~~~
>> crypto/rng.c:273:24: warning: excess elements in struct initializer
273 | .extrng_read = crypto_devrandom_read,
| ^~~~~~~~~~~~~~~~~~~~~
crypto/rng.c:273:24: note: (near initialization for 'crypto_devrandom_rng')
>> crypto/rng.c:274:10: error: 'const struct random_extrng' has no member named 'owner'
274 | .owner = THIS_MODULE,
| ^~~~~
In file included from include/linux/printk.h:6,
from include/asm-generic/bug.h:22,
from arch/x86/include/asm/bug.h:103,
from arch/x86/include/asm/alternative.h:9,
from arch/x86/include/asm/barrier.h:5,
from include/linux/list.h:11,
from include/linux/swait.h:5,
from include/linux/completion.h:12,
from include/linux/crypto.h:15,
from include/crypto/algapi.h:13,
from include/crypto/internal/rng.h:12,
from crypto/rng.c:11:
include/linux/init.h:182:21: warning: excess elements in struct initializer
182 | #define THIS_MODULE ((struct module *)0)
| ^
crypto/rng.c:274:18: note: in expansion of macro 'THIS_MODULE'
274 | .owner = THIS_MODULE,
| ^~~~~~~~~~~
include/linux/init.h:182:21: note: (near initialization for 'crypto_devrandom_rng')
182 | #define THIS_MODULE ((struct module *)0)
| ^
crypto/rng.c:274:18: note: in expansion of macro 'THIS_MODULE'
274 | .owner = THIS_MODULE,
| ^~~~~~~~~~~
crypto/rng.c: In function 'crypto_rng_init':
>> crypto/rng.c:280:17: error: implicit declaration of function 'random_register_extrng'; did you mean 'crypto_register_rng'? [-Werror=implicit-function-declaration]
280 | random_register_extrng(&crypto_devrandom_rng);
| ^~~~~~~~~~~~~~~~~~~~~~
| crypto_register_rng
crypto/rng.c: In function 'crypto_rng_exit':
>> crypto/rng.c:286:9: error: implicit declaration of function 'random_unregister_extrng'; did you mean 'crypto_unregister_rng'? [-Werror=implicit-function-declaration]
286 | random_unregister_extrng();
| ^~~~~~~~~~~~~~~~~~~~~~~~
| crypto_unregister_rng
crypto/rng.c: At top level:
>> crypto/rng.c:272:35: error: storage size of 'crypto_devrandom_rng' isn't known
272 | static const struct random_extrng crypto_devrandom_rng = {
| ^~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors

vim +/crypto_devrandom_rng +272 crypto/rng.c

271
> 272 static const struct random_extrng crypto_devrandom_rng = {
> 273 .extrng_read = crypto_devrandom_read,
> 274 .owner = THIS_MODULE,
275 };
276
277 static int __init crypto_rng_init(void)
278 {
279 if (fips_enabled)
> 280 random_register_extrng(&crypto_devrandom_rng);
281 return 0;
282 }
283
284 static void __exit crypto_rng_exit(void)
285 {
> 286 random_unregister_extrng();
287 }
288

--
0-DAY CI Kernel Test Service