Hey folks, Just FYI, this applied to the wrong tree. It should have applied to https://git.kernel.org/pub/scm/linux/kernel/git/crng/random.git Regards, Jason On Sat, Feb 12, 2022, 06:35 kernel test robot wrote: > Hi "Jason, > > I love your patch! Yet something to improve: > > [auto build test ERROR on next-20220211] > [cannot apply to char-misc/char-misc-testing linux/master linus/master > v5.17-rc3 v5.17-rc2 v5.17-rc1 v5.17-rc3] > [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] > > url: > https://github.com/0day-ci/linux/commits/Jason-A-Donenfeld/random-do-not-take-pool-spinlock-at-boot/20220212-083131 > base: 6d9bd4ad4ca08b1114e814c2c42383b8b13be631 > config: um-x86_64_defconfig ( > https://download.01.org/0day-ci/archive/20220212/202202121318.QSBkUcwP-lkp(a)intel.com/config > ) > compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 > reproduce (this is a W=1 build): > # > https://github.com/0day-ci/linux/commit/cac377f6ab22a8bfe966643ebe19812e8187de3b > git remote add linux-review https://github.com/0day-ci/linux > git fetch --no-tags linux-review > Jason-A-Donenfeld/random-do-not-take-pool-spinlock-at-boot/20220212-083131 > git checkout cac377f6ab22a8bfe966643ebe19812e8187de3b > # save the config file to linux build tree > mkdir build_dir > make W=1 O=build_dir ARCH=um SUBARCH=x86_64 SHELL=/bin/bash > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot > > All errors (new ones prefixed by >>): > > drivers/char/random.c: In function 'rand_initialize': > >> drivers/char/random.c:162:3: error: implicit declaration of function > '_mix_pool_bytes'; did you mean 'mix_pool_bytes'? > [-Werror=implicit-function-declaration] > 162 | _mix_pool_bytes(&rv, sizeof(rv)); > | ^~~~~~~~~~~~~~~ > | mix_pool_bytes > drivers/char/random.c: At top level: > drivers/char/random.c:822:13: warning: conflicting types for > '_mix_pool_bytes' > 822 | static void _mix_pool_bytes(const void *in, size_t nbytes) > | ^~~~~~~~~~~~~~~ > >> drivers/char/random.c:822:13: error: static declaration of > '_mix_pool_bytes' follows non-static declaration > drivers/char/random.c:162:3: note: previous implicit declaration of > '_mix_pool_bytes' was here > 162 | _mix_pool_bytes(&rv, sizeof(rv)); > | ^~~~~~~~~~~~~~~ > drivers/char/random.c:1109:6: warning: no previous prototype for > 'add_hwgenerator_randomness' [-Wmissing-prototypes] > 1109 | void add_hwgenerator_randomness(const void *buffer, size_t > count, > | ^~~~~~~~~~~~~~~~~~~~~~~~~~ > cc1: some warnings being treated as errors > > > vim +162 drivers/char/random.c > > 138 > 139 /* > 140 * Note that setup_arch() may call add_device_randomness() > 141 * long before we get here. This allows seeding of the pools > 142 * with some platform dependent data very early in the boot > 143 * process. But it limits our options here. We must use > 144 * statically allocated structures that already have all > 145 * initializations complete at compile time. We should also > 146 * take care not to overwrite the precious per platform data > 147 * we were given. > 148 */ > 149 int __init rand_initialize(void) > 150 { > 151 size_t i; > 152 ktime_t now = ktime_get_real(); > 153 bool arch_init = true; > 154 unsigned long rv; > 155 > 156 for (i = BLAKE2S_BLOCK_SIZE; i > 0; i -= sizeof(rv)) { > 157 if (!arch_get_random_seed_long_early(&rv) && > 158 !arch_get_random_long_early(&rv)) { > 159 rv = random_get_entropy(); > 160 arch_init = false; > 161 } > > 162 _mix_pool_bytes(&rv, sizeof(rv)); > 163 } > 164 _mix_pool_bytes(&now, sizeof(now)); > 165 _mix_pool_bytes(utsname(), sizeof(*(utsname()))); > 166 > 167 extract_entropy(base_crng.key, sizeof(base_crng.key)); > 168 ++base_crng.generation; > 169 > 170 if (arch_init && trust_cpu && crng_init < 2) { > 171 crng_init = 2; > 172 pr_notice("crng init done (trusting CPU's > manufacturer)\n"); > 173 } > 174 > 175 if (ratelimit_disable) { > 176 urandom_warning.interval = 0; > 177 unseeded_warning.interval = 0; > 178 } > 179 return 0; > 180 } > 181 > > --- > 0-DAY CI Kernel Test Service, Intel Corporation > https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org >