[PATCH v3 11/14] crypto: sun8i-ce: support hash algorithms

kernel test robot lkp at intel.com
Sun Jun 21 17:07:50 EDT 2020


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 at intel.com>

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@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 54897 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20200622/2e342847/attachment-0001.gz>


More information about the linux-arm-kernel mailing list