Hi "Stephan, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on char-misc/char-misc-testing] [also build test WARNING on herbert-cryptodev-2.6/master herbert-crypto-2.6/master v5.16-rc2 next-20211118] [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/Stephan-M-ller/dev-random-a-new-approach/20211122-005114 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git f4d77525679e289d4976ca03b620ac4cc5403205 config: alpha-allyesconfig (attached as .config) compiler: alpha-linux-gcc (GCC) 11.2.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/4db9c892c1827b896be5479eeb9cc4ac0d0a87b5 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Stephan-M-ller/dev-random-a-new-approach/20211122-005114 git checkout 4db9c892c1827b896be5479eeb9cc4ac0d0a87b5 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=alpha If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> drivers/char/lrng/lrng_es_archrandom.c:81:1: warning: 'inline' is not at beginning of declaration [-Wold-style-declaration] 81 | static u32 inline lrng_get_arch_data_compress(u8 *outbuf, u32 requested_bits, | ^~~~~~ vim +/inline +81 drivers/char/lrng/lrng_es_archrandom.c 80 > 81 static u32 inline lrng_get_arch_data_compress(u8 *outbuf, u32 requested_bits, 82 u32 data_multiplier) 83 { 84 SHASH_DESC_ON_STACK(shash, NULL); 85 const struct lrng_crypto_cb *crypto_cb; 86 struct lrng_drng *drng = lrng_drng_init_instance(); 87 unsigned long flags; 88 u32 ent_bits = 0, i, partial_bits = 0, 89 full_bits = requested_bits * data_multiplier; 90 void *hash; 91 92 /* Calculate oversampling for SP800-90C */ 93 if (lrng_sp80090c_compliant()) { 94 /* Complete amount of bits to be pulled */ 95 full_bits += CONFIG_LRNG_OVERSAMPLE_ES_BITS * data_multiplier; 96 /* Full blocks that will be pulled */ 97 data_multiplier = full_bits / requested_bits; 98 /* Partial block in bits to be pulled */ 99 partial_bits = full_bits - (data_multiplier * requested_bits); 100 } 101 102 lrng_hash_lock(drng, &flags); 103 crypto_cb = drng->crypto_cb; 104 hash = drng->hash; 105 106 if (crypto_cb->lrng_hash_init(shash, hash)) 107 goto out; 108 109 /* Hash all data from the CPU entropy source */ 110 for (i = 0; i < data_multiplier; i++) { 111 ent_bits = lrng_get_arch_data(outbuf, requested_bits); 112 if (!ent_bits) 113 goto out; 114 115 if (crypto_cb->lrng_hash_update(shash, outbuf, ent_bits >> 3)) 116 goto err; 117 } 118 119 /* Hash partial block, if applicable */ 120 ent_bits = lrng_get_arch_data(outbuf, partial_bits); 121 if (ent_bits && 122 crypto_cb->lrng_hash_update(shash, outbuf, ent_bits >> 3)) 123 goto err; 124 125 pr_debug("pulled %u bits from CPU RNG entropy source\n", full_bits); 126 127 /* Generate the compressed data to be returned to the caller */ 128 ent_bits = crypto_cb->lrng_hash_digestsize(hash) << 3; 129 if (requested_bits < ent_bits) { 130 u8 digest[LRNG_MAX_DIGESTSIZE]; 131 132 if (crypto_cb->lrng_hash_final(shash, digest)) 133 goto err; 134 135 /* Truncate output data to requested size */ 136 memcpy(outbuf, digest, requested_bits >> 3); 137 memzero_explicit(digest, crypto_cb->lrng_hash_digestsize(hash)); 138 ent_bits = requested_bits; 139 } else { 140 if (crypto_cb->lrng_hash_final(shash, outbuf)) 141 goto err; 142 } 143 144 out: 145 crypto_cb->lrng_hash_desc_zero(shash); 146 lrng_hash_unlock(drng, flags); 147 return ent_bits; 148 149 err: 150 ent_bits = 0; 151 goto out; 152 } 153 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org