Hi Corentin, I love your patch! Perhaps something to improve: [auto build test WARNING on sunxi/sunxi/for-next] [also build test WARNING on cryptodev/master crypto/master v5.8-rc1] [cannot apply to next-20200621] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Corentin-Labbe/crypto-allwinner-add-xRNG-and-hashes/20200622-033401 base: https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git sunxi/for-next config: sh-allmodconfig (attached as .config) compiler: sh4-linux-gcc (GCC) 9.3.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 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sh If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All warnings (new ones prefixed by >>, old ones prefixed by <<): drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c: In function 'sun8i_ce_hash_init': >> drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c:76:32: warning: variable 'algt' set but not used [-Wunused-but-set-variable] 76 | struct sun8i_ce_alg_template *algt; | ^~~~ drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c: At top level: >> drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c:175:5: warning: no previous prototype for 'sun8i_ce_hash_digest_fb' [-Wmissing-prototypes] 175 | int sun8i_ce_hash_digest_fb(struct ahash_request *areq) | ^~~~~~~~~~~~~~~~~~~~~~~ vim +/algt +76 drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c 69 70 int sun8i_ce_hash_init(struct ahash_request *areq) 71 { 72 struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq); 73 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq); 74 struct sun8i_ce_hash_tfm_ctx *tfmctx = crypto_ahash_ctx(tfm); 75 struct ahash_alg *alg = __crypto_ahash_alg(tfm->base.__crt_alg); > 76 struct sun8i_ce_alg_template *algt; 77 78 memset(rctx, 0, sizeof(struct sun8i_ce_hash_reqctx)); 79 80 algt = container_of(alg, struct sun8i_ce_alg_template, alg.hash); 81 82 ahash_request_set_tfm(&rctx->fallback_req, tfmctx->fallback_tfm); 83 rctx->fallback_req.base.flags = areq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP; 84 85 return crypto_ahash_init(&rctx->fallback_req); 86 } 87 88 int sun8i_ce_hash_export(struct ahash_request *areq, void *out) 89 { 90 struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq); 91 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq); 92 struct sun8i_ce_hash_tfm_ctx *tfmctx = crypto_ahash_ctx(tfm); 93 94 ahash_request_set_tfm(&rctx->fallback_req, tfmctx->fallback_tfm); 95 rctx->fallback_req.base.flags = areq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP; 96 97 return crypto_ahash_export(&rctx->fallback_req, out); 98 } 99 100 int sun8i_ce_hash_import(struct ahash_request *areq, const void *in) 101 { 102 struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq); 103 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq); 104 struct sun8i_ce_hash_tfm_ctx *tfmctx = crypto_ahash_ctx(tfm); 105 106 ahash_request_set_tfm(&rctx->fallback_req, tfmctx->fallback_tfm); 107 rctx->fallback_req.base.flags = areq->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP; 108 109 return crypto_ahash_import(&rctx->fallback_req, in); 110 } 111 112 int sun8i_ce_hash_final(struct ahash_request *areq) 113 { 114 struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq); 115 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq); 116 struct sun8i_ce_hash_tfm_ctx *tfmctx = crypto_ahash_ctx(tfm); 117 #ifdef CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG 118 struct ahash_alg *alg = __crypto_ahash_alg(tfm->base.__crt_alg); 119 struct sun8i_ce_alg_template *algt; 120 #endif 121 122 ahash_request_set_tfm(&rctx->fallback_req, tfmctx->fallback_tfm); 123 rctx->fallback_req.base.flags = areq->base.flags & 124 CRYPTO_TFM_REQ_MAY_SLEEP; 125 rctx->fallback_req.result = areq->result; 126 127 #ifdef CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG 128 algt = container_of(alg, struct sun8i_ce_alg_template, alg.hash); 129 algt->stat_fb++; 130 #endif 131 132 return crypto_ahash_final(&rctx->fallback_req); 133 } 134 135 int sun8i_ce_hash_update(struct ahash_request *areq) 136 { 137 struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq); 138 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq); 139 struct sun8i_ce_hash_tfm_ctx *tfmctx = crypto_ahash_ctx(tfm); 140 141 ahash_request_set_tfm(&rctx->fallback_req, tfmctx->fallback_tfm); 142 rctx->fallback_req.base.flags = areq->base.flags & 143 CRYPTO_TFM_REQ_MAY_SLEEP; 144 rctx->fallback_req.nbytes = areq->nbytes; 145 rctx->fallback_req.src = areq->src; 146 147 return crypto_ahash_update(&rctx->fallback_req); 148 } 149 150 int sun8i_ce_hash_finup(struct ahash_request *areq) 151 { 152 struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq); 153 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq); 154 struct sun8i_ce_hash_tfm_ctx *tfmctx = crypto_ahash_ctx(tfm); 155 #ifdef CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG 156 struct ahash_alg *alg = __crypto_ahash_alg(tfm->base.__crt_alg); 157 struct sun8i_ce_alg_template *algt; 158 #endif 159 160 ahash_request_set_tfm(&rctx->fallback_req, tfmctx->fallback_tfm); 161 rctx->fallback_req.base.flags = areq->base.flags & 162 CRYPTO_TFM_REQ_MAY_SLEEP; 163 164 rctx->fallback_req.nbytes = areq->nbytes; 165 rctx->fallback_req.src = areq->src; 166 rctx->fallback_req.result = areq->result; 167 #ifdef CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG 168 algt = container_of(alg, struct sun8i_ce_alg_template, alg.hash); 169 algt->stat_fb++; 170 #endif 171 172 return crypto_ahash_finup(&rctx->fallback_req); 173 } 174 > 175 int sun8i_ce_hash_digest_fb(struct ahash_request *areq) 176 { 177 struct sun8i_ce_hash_reqctx *rctx = ahash_request_ctx(areq); 178 struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq); 179 struct sun8i_ce_hash_tfm_ctx *tfmctx = crypto_ahash_ctx(tfm); 180 #ifdef CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG 181 struct ahash_alg *alg = __crypto_ahash_alg(tfm->base.__crt_alg); 182 struct sun8i_ce_alg_template *algt; 183 #endif 184 185 ahash_request_set_tfm(&rctx->fallback_req, tfmctx->fallback_tfm); 186 rctx->fallback_req.base.flags = areq->base.flags & 187 CRYPTO_TFM_REQ_MAY_SLEEP; 188 189 rctx->fallback_req.nbytes = areq->nbytes; 190 rctx->fallback_req.src = areq->src; 191 rctx->fallback_req.result = areq->result; 192 #ifdef CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG 193 algt = container_of(alg, struct sun8i_ce_alg_template, alg.hash); 194 algt->stat_fb++; 195 #endif 196 197 return crypto_ahash_digest(&rctx->fallback_req); 198 } 199 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip