* Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
@ 2024-03-07 14:17 kernel test robot
0 siblings, 0 replies; 19+ messages in thread
From: kernel test robot @ 2024-03-07 14:17 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20240305112831.3380896-5-pavitrakumarm@vayavyalabs.com>
References: <20240305112831.3380896-5-pavitrakumarm@vayavyalabs.com>
TO: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
TO: herbert@gondor.apana.org.au
TO: linux-crypto@vger.kernel.org
CC: Ruud.Derwig@synopsys.com
CC: manjunath.hadli@vayavyalabs.com
CC: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
Hi Pavitrakumar,
kernel test robot noticed the following build warnings:
[auto build test WARNING on herbert-cryptodev-2.6/master]
[also build test WARNING on herbert-crypto-2.6/master linus/master v6.8-rc7 next-20240307]
[cannot apply to xilinx-xlnx/master]
[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/Pavitrakumar-M/Add-SPAcc-driver-to-Linux-kernel/20240305-193337
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20240305112831.3380896-5-pavitrakumarm%40vayavyalabs.com
patch subject: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: m68k-randconfig-r081-20240307 (https://download.01.org/0day-ci/archive/20240307/202403072256.em3Fk3At-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 13.2.0
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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202403072256.em3Fk3At-lkp@intel.com/
New smatch warnings:
drivers/crypto/dwc-spacc/spacc_ahash.c:1057 spacc_hash_digest() error: uninitialized symbol 'total_len'.
Old smatch warnings:
drivers/crypto/dwc-spacc/spacc_ahash.c:271 spacc_hash_init_dma() error: uninitialized symbol 'sgl_buffer'.
vim +/total_len +1057 drivers/crypto/dwc-spacc/spacc_ahash.c
6ad822cec22644 Pavitrakumar M 2024-03-05 981
6ad822cec22644 Pavitrakumar M 2024-03-05 982 static int spacc_hash_digest(struct ahash_request *req)
6ad822cec22644 Pavitrakumar M 2024-03-05 983 {
6ad822cec22644 Pavitrakumar M 2024-03-05 984 int final = 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 985 int rc, total_len;
6ad822cec22644 Pavitrakumar M 2024-03-05 986 struct crypto_ahash *reqtfm = crypto_ahash_reqtfm(req);
6ad822cec22644 Pavitrakumar M 2024-03-05 987 struct spacc_crypto_ctx *tctx = crypto_ahash_ctx(reqtfm);
6ad822cec22644 Pavitrakumar M 2024-03-05 988 struct spacc_crypto_reqctx *ctx = ahash_request_ctx(req);
6ad822cec22644 Pavitrakumar M 2024-03-05 989 struct spacc_priv *priv = dev_get_drvdata(tctx->dev);
6ad822cec22644 Pavitrakumar M 2024-03-05 990
6ad822cec22644 Pavitrakumar M 2024-03-05 991 if (tctx->flag_ppp) {
6ad822cec22644 Pavitrakumar M 2024-03-05 992 /* from finup */
6ad822cec22644 Pavitrakumar M 2024-03-05 993 ctx->single_shot = 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 994 ctx->final_part_pck = 1;
6ad822cec22644 Pavitrakumar M 2024-03-05 995 final = 2;
6ad822cec22644 Pavitrakumar M 2024-03-05 996 } else {
6ad822cec22644 Pavitrakumar M 2024-03-05 997 /* direct single shot digest call */
6ad822cec22644 Pavitrakumar M 2024-03-05 998 ctx->single_shot = 1;
6ad822cec22644 Pavitrakumar M 2024-03-05 999 ctx->rem_len = 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 1000 ctx->total_nents = sg_nents(req->src);
6ad822cec22644 Pavitrakumar M 2024-03-05 1001 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1002
6ad822cec22644 Pavitrakumar M 2024-03-05 1003 if (tctx->handle < 0 || !tctx->ctx_valid ||
6ad822cec22644 Pavitrakumar M 2024-03-05 1004 req->nbytes > priv->max_msg_len)
6ad822cec22644 Pavitrakumar M 2024-03-05 1005 goto fallback;
6ad822cec22644 Pavitrakumar M 2024-03-05 1006
6ad822cec22644 Pavitrakumar M 2024-03-05 1007 rc = spacc_hash_init_dma(tctx->dev, req, final);
6ad822cec22644 Pavitrakumar M 2024-03-05 1008 if (rc < 0)
6ad822cec22644 Pavitrakumar M 2024-03-05 1009 goto fallback;
6ad822cec22644 Pavitrakumar M 2024-03-05 1010
6ad822cec22644 Pavitrakumar M 2024-03-05 1011 if (rc == 0)
6ad822cec22644 Pavitrakumar M 2024-03-05 1012 return 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 1013
6ad822cec22644 Pavitrakumar M 2024-03-05 1014 if (final) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1015 if (ctx->total_nents) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1016 /* INIT-UPDATE-UPDATE-FINUP/FINAL */
6ad822cec22644 Pavitrakumar M 2024-03-05 1017 total_len = tctx->ppp_sgl[0].length;
6ad822cec22644 Pavitrakumar M 2024-03-05 1018 } else if (req->src->length == 0 && ctx->total_nents == 0) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1019 /* zero msg handling */
6ad822cec22644 Pavitrakumar M 2024-03-05 1020 total_len = 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 1021 } else {
6ad822cec22644 Pavitrakumar M 2024-03-05 1022 /* handle INIT-FINUP sequence, process req->nbytes */
6ad822cec22644 Pavitrakumar M 2024-03-05 1023 total_len = req->nbytes;
6ad822cec22644 Pavitrakumar M 2024-03-05 1024 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1025
6ad822cec22644 Pavitrakumar M 2024-03-05 1026 rc = spacc_packet_enqueue_ddt(&priv->spacc, ctx->acb.new_handle,
6ad822cec22644 Pavitrakumar M 2024-03-05 1027 &ctx->src, &ctx->dst, total_len,
6ad822cec22644 Pavitrakumar M 2024-03-05 1028 0, total_len, 0, 0, 0);
6ad822cec22644 Pavitrakumar M 2024-03-05 1029 } else {
6ad822cec22644 Pavitrakumar M 2024-03-05 1030 rc = spacc_packet_enqueue_ddt(&priv->spacc, ctx->acb.new_handle,
6ad822cec22644 Pavitrakumar M 2024-03-05 1031 &ctx->src, &ctx->dst, req->nbytes,
6ad822cec22644 Pavitrakumar M 2024-03-05 1032 0, req->nbytes, 0, 0, 0);
6ad822cec22644 Pavitrakumar M 2024-03-05 1033 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1034
6ad822cec22644 Pavitrakumar M 2024-03-05 1035 if (rc < 0) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1036 spacc_hash_cleanup_dma(tctx->dev, req);
6ad822cec22644 Pavitrakumar M 2024-03-05 1037 spacc_close(&priv->spacc, ctx->acb.new_handle);
6ad822cec22644 Pavitrakumar M 2024-03-05 1038
6ad822cec22644 Pavitrakumar M 2024-03-05 1039 if (rc != -EBUSY) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1040 pr_debug("Failed to enqueue job, ERR: %d\n", rc);
6ad822cec22644 Pavitrakumar M 2024-03-05 1041 return rc;
6ad822cec22644 Pavitrakumar M 2024-03-05 1042 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1043
6ad822cec22644 Pavitrakumar M 2024-03-05 1044 if (!(req->base.flags & CRYPTO_TFM_REQ_MAY_BACKLOG))
6ad822cec22644 Pavitrakumar M 2024-03-05 1045 return -EBUSY;
6ad822cec22644 Pavitrakumar M 2024-03-05 1046
6ad822cec22644 Pavitrakumar M 2024-03-05 1047 goto fallback;
6ad822cec22644 Pavitrakumar M 2024-03-05 1048 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1049
6ad822cec22644 Pavitrakumar M 2024-03-05 1050 return -EINPROGRESS;
6ad822cec22644 Pavitrakumar M 2024-03-05 1051
6ad822cec22644 Pavitrakumar M 2024-03-05 1052 fallback:
6ad822cec22644 Pavitrakumar M 2024-03-05 1053 /* Start from scratch as init is not called before digest */
6ad822cec22644 Pavitrakumar M 2024-03-05 1054 ctx->fb.hash_req.base = req->base;
6ad822cec22644 Pavitrakumar M 2024-03-05 1055 ahash_request_set_tfm(&ctx->fb.hash_req, tctx->fb.hash);
6ad822cec22644 Pavitrakumar M 2024-03-05 1056
6ad822cec22644 Pavitrakumar M 2024-03-05 @1057 ctx->fb.hash_req.nbytes = total_len;
6ad822cec22644 Pavitrakumar M 2024-03-05 1058 ctx->fb.hash_req.src = req->src;
6ad822cec22644 Pavitrakumar M 2024-03-05 1059 ctx->fb.hash_req.result = req->result;
6ad822cec22644 Pavitrakumar M 2024-03-05 1060
6ad822cec22644 Pavitrakumar M 2024-03-05 1061 return crypto_ahash_digest(&ctx->fb.hash_req);
6ad822cec22644 Pavitrakumar M 2024-03-05 1062 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1063
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
@ 2024-03-13 5:08 kernel test robot
0 siblings, 0 replies; 19+ messages in thread
From: kernel test robot @ 2024-03-13 5:08 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20240305112831.3380896-5-pavitrakumarm@vayavyalabs.com>
References: <20240305112831.3380896-5-pavitrakumarm@vayavyalabs.com>
TO: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
TO: herbert@gondor.apana.org.au
TO: linux-crypto@vger.kernel.org
CC: Ruud.Derwig@synopsys.com
CC: manjunath.hadli@vayavyalabs.com
CC: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
Hi Pavitrakumar,
kernel test robot noticed the following build warnings:
[auto build test WARNING on herbert-cryptodev-2.6/master]
[also build test WARNING on herbert-crypto-2.6/master linus/master v6.8 next-20240312]
[cannot apply to xilinx-xlnx/master]
[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/Pavitrakumar-M/Add-SPAcc-driver-to-Linux-kernel/20240305-193337
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20240305112831.3380896-5-pavitrakumarm%40vayavyalabs.com
patch subject: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
:::::: branch date: 8 days ago
:::::: commit date: 8 days ago
config: i386-randconfig-141-20240308 (https://download.01.org/0day-ci/archive/20240313/202403131251.C47BWrJQ-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202403131251.C47BWrJQ-lkp@intel.com/
New smatch warnings:
drivers/crypto/dwc-spacc/spacc_skcipher.c:176 spacc_cipher_cb() warn: was && intended here instead of ||?
drivers/crypto/dwc-spacc/spacc_aead.c:1131 spacc_aead_process() error: uninitialized symbol 'ptaadsize'.
Old smatch warnings:
drivers/crypto/dwc-spacc/spacc_skcipher.c:528 spacc_cipher_process() warn: bitwise AND condition is false here
drivers/crypto/dwc-spacc/spacc_skcipher.c:751 probe_ciphers() warn: inconsistent indenting
drivers/crypto/dwc-spacc/spacc_skcipher.c:762 probe_ciphers() warn: possible memory leak of 'salg'
drivers/crypto/dwc-spacc/spacc_aead.c:1165 spacc_aead_process() error: uninitialized symbol 'ptaadsize'.
vim +176 drivers/crypto/dwc-spacc/spacc_skcipher.c
6ad822cec22644 Pavitrakumar M 2024-03-05 145
6ad822cec22644 Pavitrakumar M 2024-03-05 146 static void spacc_cipher_cb(void *spacc, void *tfm)
6ad822cec22644 Pavitrakumar M 2024-03-05 147 {
6ad822cec22644 Pavitrakumar M 2024-03-05 148 struct cipher_cb_data *cb = tfm;
6ad822cec22644 Pavitrakumar M 2024-03-05 149 int err = -1, rc;
6ad822cec22644 Pavitrakumar M 2024-03-05 150 int total_len;
6ad822cec22644 Pavitrakumar M 2024-03-05 151 struct spacc_crypto_reqctx *ctx = skcipher_request_ctx(cb->req);
6ad822cec22644 Pavitrakumar M 2024-03-05 152
6ad822cec22644 Pavitrakumar M 2024-03-05 153 u32 status_reg = readl(cb->spacc->regmap + SPACC_REG_STATUS);
6ad822cec22644 Pavitrakumar M 2024-03-05 154 u32 status_ret = (status_reg >> 24) & 0x03;
6ad822cec22644 Pavitrakumar M 2024-03-05 155
6ad822cec22644 Pavitrakumar M 2024-03-05 156 if (ctx->mode == CRYPTO_MODE_DES_CBC ||
6ad822cec22644 Pavitrakumar M 2024-03-05 157 ctx->mode == CRYPTO_MODE_3DES_CBC) {
6ad822cec22644 Pavitrakumar M 2024-03-05 158 rc = spacc_read_context(cb->spacc, cb->tctx->handle,
6ad822cec22644 Pavitrakumar M 2024-03-05 159 SPACC_CRYPTO_OPERATION, NULL, 0,
6ad822cec22644 Pavitrakumar M 2024-03-05 160 cb->req->iv, 8);
6ad822cec22644 Pavitrakumar M 2024-03-05 161 } else if (ctx->mode != CRYPTO_MODE_DES_ECB &&
6ad822cec22644 Pavitrakumar M 2024-03-05 162 ctx->mode != CRYPTO_MODE_3DES_ECB &&
6ad822cec22644 Pavitrakumar M 2024-03-05 163 ctx->mode != CRYPTO_MODE_SM4_ECB &&
6ad822cec22644 Pavitrakumar M 2024-03-05 164 ctx->mode != CRYPTO_MODE_AES_ECB &&
6ad822cec22644 Pavitrakumar M 2024-03-05 165 ctx->mode != CRYPTO_MODE_SM4_XTS &&
6ad822cec22644 Pavitrakumar M 2024-03-05 166 ctx->mode != CRYPTO_MODE_KASUMI_ECB) {
6ad822cec22644 Pavitrakumar M 2024-03-05 167 if (status_ret == 0x3) {
6ad822cec22644 Pavitrakumar M 2024-03-05 168 err = -EINVAL;
6ad822cec22644 Pavitrakumar M 2024-03-05 169 goto REQ_DST_CP_SKIP;
6ad822cec22644 Pavitrakumar M 2024-03-05 170 }
6ad822cec22644 Pavitrakumar M 2024-03-05 171 rc = spacc_read_context(cb->spacc, cb->tctx->handle,
6ad822cec22644 Pavitrakumar M 2024-03-05 172 SPACC_CRYPTO_OPERATION, NULL, 0,
6ad822cec22644 Pavitrakumar M 2024-03-05 173 cb->req->iv, 16);
6ad822cec22644 Pavitrakumar M 2024-03-05 174 }
6ad822cec22644 Pavitrakumar M 2024-03-05 175
6ad822cec22644 Pavitrakumar M 2024-03-05 @176 if (ctx->mode != CRYPTO_MODE_DES_ECB ||
6ad822cec22644 Pavitrakumar M 2024-03-05 177 ctx->mode != CRYPTO_MODE_DES_CBC ||
6ad822cec22644 Pavitrakumar M 2024-03-05 178 ctx->mode != CRYPTO_MODE_3DES_ECB ||
6ad822cec22644 Pavitrakumar M 2024-03-05 179 ctx->mode != CRYPTO_MODE_3DES_CBC) {
6ad822cec22644 Pavitrakumar M 2024-03-05 180 if (status_ret == 0x03) {
6ad822cec22644 Pavitrakumar M 2024-03-05 181 err = -EINVAL;
6ad822cec22644 Pavitrakumar M 2024-03-05 182 goto REQ_DST_CP_SKIP;
6ad822cec22644 Pavitrakumar M 2024-03-05 183 }
6ad822cec22644 Pavitrakumar M 2024-03-05 184 }
6ad822cec22644 Pavitrakumar M 2024-03-05 185
6ad822cec22644 Pavitrakumar M 2024-03-05 186 if (ctx->mode == CRYPTO_MODE_SM4_ECB && status_ret == 0x03) {
6ad822cec22644 Pavitrakumar M 2024-03-05 187 err = -EINVAL;
6ad822cec22644 Pavitrakumar M 2024-03-05 188 goto REQ_DST_CP_SKIP;
6ad822cec22644 Pavitrakumar M 2024-03-05 189 }
6ad822cec22644 Pavitrakumar M 2024-03-05 190
6ad822cec22644 Pavitrakumar M 2024-03-05 191 total_len = cb->req->cryptlen;
6ad822cec22644 Pavitrakumar M 2024-03-05 192 if (ctx->mode == CRYPTO_MODE_SM4_XTS && total_len != 16) {
6ad822cec22644 Pavitrakumar M 2024-03-05 193 if (status_ret == 0x03) {
6ad822cec22644 Pavitrakumar M 2024-03-05 194 err = -EINVAL;
6ad822cec22644 Pavitrakumar M 2024-03-05 195 goto REQ_DST_CP_SKIP;
6ad822cec22644 Pavitrakumar M 2024-03-05 196 }
6ad822cec22644 Pavitrakumar M 2024-03-05 197 }
6ad822cec22644 Pavitrakumar M 2024-03-05 198
6ad822cec22644 Pavitrakumar M 2024-03-05 199 dma_sync_sg_for_cpu(cb->tctx->dev, cb->req->dst, ctx->dst_nents,
6ad822cec22644 Pavitrakumar M 2024-03-05 200 DMA_FROM_DEVICE);
6ad822cec22644 Pavitrakumar M 2024-03-05 201
6ad822cec22644 Pavitrakumar M 2024-03-05 202 err = cb->spacc->job[cb->new_handle].job_err;
6ad822cec22644 Pavitrakumar M 2024-03-05 203 REQ_DST_CP_SKIP:
6ad822cec22644 Pavitrakumar M 2024-03-05 204 spacc_cipher_cleanup_dma(cb->tctx->dev, cb->req);
6ad822cec22644 Pavitrakumar M 2024-03-05 205 spacc_close(cb->spacc, cb->new_handle);
6ad822cec22644 Pavitrakumar M 2024-03-05 206
6ad822cec22644 Pavitrakumar M 2024-03-05 207 /* call complete */
6ad822cec22644 Pavitrakumar M 2024-03-05 208 skcipher_request_complete(cb->req, err);
6ad822cec22644 Pavitrakumar M 2024-03-05 209 }
6ad822cec22644 Pavitrakumar M 2024-03-05 210
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
@ 2024-03-11 2:38 kernel test robot
0 siblings, 0 replies; 19+ messages in thread
From: kernel test robot @ 2024-03-11 2:38 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20240305112831.3380896-5-pavitrakumarm@vayavyalabs.com>
References: <20240305112831.3380896-5-pavitrakumarm@vayavyalabs.com>
TO: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
TO: herbert@gondor.apana.org.au
TO: linux-crypto@vger.kernel.org
CC: Ruud.Derwig@synopsys.com
CC: manjunath.hadli@vayavyalabs.com
CC: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
Hi Pavitrakumar,
kernel test robot noticed the following build warnings:
[auto build test WARNING on herbert-cryptodev-2.6/master]
[also build test WARNING on herbert-crypto-2.6/master linus/master v6.8 next-20240308]
[cannot apply to xilinx-xlnx/master]
[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/Pavitrakumar-M/Add-SPAcc-driver-to-Linux-kernel/20240305-193337
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20240305112831.3380896-5-pavitrakumarm%40vayavyalabs.com
patch subject: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
:::::: branch date: 6 days ago
:::::: commit date: 6 days ago
config: i386-randconfig-141-20240308 (https://download.01.org/0day-ci/archive/20240311/202403111044.eqxBgcDl-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202403111044.eqxBgcDl-lkp@intel.com/
New smatch warnings:
drivers/crypto/dwc-spacc/spacc_skcipher.c:176 spacc_cipher_cb() warn: was && intended here instead of ||?
drivers/crypto/dwc-spacc/spacc_aead.c:1131 spacc_aead_process() error: uninitialized symbol 'ptaadsize'.
Old smatch warnings:
drivers/crypto/dwc-spacc/spacc_skcipher.c:528 spacc_cipher_process() warn: bitwise AND condition is false here
drivers/crypto/dwc-spacc/spacc_skcipher.c:751 probe_ciphers() warn: inconsistent indenting
drivers/crypto/dwc-spacc/spacc_skcipher.c:762 probe_ciphers() warn: possible memory leak of 'salg'
drivers/crypto/dwc-spacc/spacc_aead.c:1165 spacc_aead_process() error: uninitialized symbol 'ptaadsize'.
vim +176 drivers/crypto/dwc-spacc/spacc_skcipher.c
6ad822cec22644 Pavitrakumar M 2024-03-05 145
6ad822cec22644 Pavitrakumar M 2024-03-05 146 static void spacc_cipher_cb(void *spacc, void *tfm)
6ad822cec22644 Pavitrakumar M 2024-03-05 147 {
6ad822cec22644 Pavitrakumar M 2024-03-05 148 struct cipher_cb_data *cb = tfm;
6ad822cec22644 Pavitrakumar M 2024-03-05 149 int err = -1, rc;
6ad822cec22644 Pavitrakumar M 2024-03-05 150 int total_len;
6ad822cec22644 Pavitrakumar M 2024-03-05 151 struct spacc_crypto_reqctx *ctx = skcipher_request_ctx(cb->req);
6ad822cec22644 Pavitrakumar M 2024-03-05 152
6ad822cec22644 Pavitrakumar M 2024-03-05 153 u32 status_reg = readl(cb->spacc->regmap + SPACC_REG_STATUS);
6ad822cec22644 Pavitrakumar M 2024-03-05 154 u32 status_ret = (status_reg >> 24) & 0x03;
6ad822cec22644 Pavitrakumar M 2024-03-05 155
6ad822cec22644 Pavitrakumar M 2024-03-05 156 if (ctx->mode == CRYPTO_MODE_DES_CBC ||
6ad822cec22644 Pavitrakumar M 2024-03-05 157 ctx->mode == CRYPTO_MODE_3DES_CBC) {
6ad822cec22644 Pavitrakumar M 2024-03-05 158 rc = spacc_read_context(cb->spacc, cb->tctx->handle,
6ad822cec22644 Pavitrakumar M 2024-03-05 159 SPACC_CRYPTO_OPERATION, NULL, 0,
6ad822cec22644 Pavitrakumar M 2024-03-05 160 cb->req->iv, 8);
6ad822cec22644 Pavitrakumar M 2024-03-05 161 } else if (ctx->mode != CRYPTO_MODE_DES_ECB &&
6ad822cec22644 Pavitrakumar M 2024-03-05 162 ctx->mode != CRYPTO_MODE_3DES_ECB &&
6ad822cec22644 Pavitrakumar M 2024-03-05 163 ctx->mode != CRYPTO_MODE_SM4_ECB &&
6ad822cec22644 Pavitrakumar M 2024-03-05 164 ctx->mode != CRYPTO_MODE_AES_ECB &&
6ad822cec22644 Pavitrakumar M 2024-03-05 165 ctx->mode != CRYPTO_MODE_SM4_XTS &&
6ad822cec22644 Pavitrakumar M 2024-03-05 166 ctx->mode != CRYPTO_MODE_KASUMI_ECB) {
6ad822cec22644 Pavitrakumar M 2024-03-05 167 if (status_ret == 0x3) {
6ad822cec22644 Pavitrakumar M 2024-03-05 168 err = -EINVAL;
6ad822cec22644 Pavitrakumar M 2024-03-05 169 goto REQ_DST_CP_SKIP;
6ad822cec22644 Pavitrakumar M 2024-03-05 170 }
6ad822cec22644 Pavitrakumar M 2024-03-05 171 rc = spacc_read_context(cb->spacc, cb->tctx->handle,
6ad822cec22644 Pavitrakumar M 2024-03-05 172 SPACC_CRYPTO_OPERATION, NULL, 0,
6ad822cec22644 Pavitrakumar M 2024-03-05 173 cb->req->iv, 16);
6ad822cec22644 Pavitrakumar M 2024-03-05 174 }
6ad822cec22644 Pavitrakumar M 2024-03-05 175
6ad822cec22644 Pavitrakumar M 2024-03-05 @176 if (ctx->mode != CRYPTO_MODE_DES_ECB ||
6ad822cec22644 Pavitrakumar M 2024-03-05 177 ctx->mode != CRYPTO_MODE_DES_CBC ||
6ad822cec22644 Pavitrakumar M 2024-03-05 178 ctx->mode != CRYPTO_MODE_3DES_ECB ||
6ad822cec22644 Pavitrakumar M 2024-03-05 179 ctx->mode != CRYPTO_MODE_3DES_CBC) {
6ad822cec22644 Pavitrakumar M 2024-03-05 180 if (status_ret == 0x03) {
6ad822cec22644 Pavitrakumar M 2024-03-05 181 err = -EINVAL;
6ad822cec22644 Pavitrakumar M 2024-03-05 182 goto REQ_DST_CP_SKIP;
6ad822cec22644 Pavitrakumar M 2024-03-05 183 }
6ad822cec22644 Pavitrakumar M 2024-03-05 184 }
6ad822cec22644 Pavitrakumar M 2024-03-05 185
6ad822cec22644 Pavitrakumar M 2024-03-05 186 if (ctx->mode == CRYPTO_MODE_SM4_ECB && status_ret == 0x03) {
6ad822cec22644 Pavitrakumar M 2024-03-05 187 err = -EINVAL;
6ad822cec22644 Pavitrakumar M 2024-03-05 188 goto REQ_DST_CP_SKIP;
6ad822cec22644 Pavitrakumar M 2024-03-05 189 }
6ad822cec22644 Pavitrakumar M 2024-03-05 190
6ad822cec22644 Pavitrakumar M 2024-03-05 191 total_len = cb->req->cryptlen;
6ad822cec22644 Pavitrakumar M 2024-03-05 192 if (ctx->mode == CRYPTO_MODE_SM4_XTS && total_len != 16) {
6ad822cec22644 Pavitrakumar M 2024-03-05 193 if (status_ret == 0x03) {
6ad822cec22644 Pavitrakumar M 2024-03-05 194 err = -EINVAL;
6ad822cec22644 Pavitrakumar M 2024-03-05 195 goto REQ_DST_CP_SKIP;
6ad822cec22644 Pavitrakumar M 2024-03-05 196 }
6ad822cec22644 Pavitrakumar M 2024-03-05 197 }
6ad822cec22644 Pavitrakumar M 2024-03-05 198
6ad822cec22644 Pavitrakumar M 2024-03-05 199 dma_sync_sg_for_cpu(cb->tctx->dev, cb->req->dst, ctx->dst_nents,
6ad822cec22644 Pavitrakumar M 2024-03-05 200 DMA_FROM_DEVICE);
6ad822cec22644 Pavitrakumar M 2024-03-05 201
6ad822cec22644 Pavitrakumar M 2024-03-05 202 err = cb->spacc->job[cb->new_handle].job_err;
6ad822cec22644 Pavitrakumar M 2024-03-05 203 REQ_DST_CP_SKIP:
6ad822cec22644 Pavitrakumar M 2024-03-05 204 spacc_cipher_cleanup_dma(cb->tctx->dev, cb->req);
6ad822cec22644 Pavitrakumar M 2024-03-05 205 spacc_close(cb->spacc, cb->new_handle);
6ad822cec22644 Pavitrakumar M 2024-03-05 206
6ad822cec22644 Pavitrakumar M 2024-03-05 207 /* call complete */
6ad822cec22644 Pavitrakumar M 2024-03-05 208 skcipher_request_complete(cb->req, err);
6ad822cec22644 Pavitrakumar M 2024-03-05 209 }
6ad822cec22644 Pavitrakumar M 2024-03-05 210
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
@ 2024-03-10 15:40 kernel test robot
0 siblings, 0 replies; 19+ messages in thread
From: kernel test robot @ 2024-03-10 15:40 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20240305112831.3380896-5-pavitrakumarm@vayavyalabs.com>
References: <20240305112831.3380896-5-pavitrakumarm@vayavyalabs.com>
TO: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
TO: herbert@gondor.apana.org.au
TO: linux-crypto@vger.kernel.org
CC: Ruud.Derwig@synopsys.com
CC: manjunath.hadli@vayavyalabs.com
CC: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
Hi Pavitrakumar,
kernel test robot noticed the following build warnings:
[auto build test WARNING on herbert-cryptodev-2.6/master]
[also build test WARNING on herbert-crypto-2.6/master linus/master v6.8-rc7 next-20240308]
[cannot apply to xilinx-xlnx/master]
[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/Pavitrakumar-M/Add-SPAcc-driver-to-Linux-kernel/20240305-193337
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20240305112831.3380896-5-pavitrakumarm%40vayavyalabs.com
patch subject: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
:::::: branch date: 5 days ago
:::::: commit date: 5 days ago
config: powerpc-randconfig-r071-20240308 (https://download.01.org/0day-ci/archive/20240310/202403102334.sx5j7Rch-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 13.2.0
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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202403102334.sx5j7Rch-lkp@intel.com/
smatch warnings:
drivers/crypto/dwc-spacc/spacc_hal.c:320 pdu_ddt_init() warn: curly braces intended?
vim +320 drivers/crypto/dwc-spacc/spacc_hal.c
6ad822cec22644 Pavitrakumar M 2024-03-05 284
6ad822cec22644 Pavitrakumar M 2024-03-05 285 int pdu_ddt_init(struct pdu_ddt *ddt, unsigned long limit)
6ad822cec22644 Pavitrakumar M 2024-03-05 286 {
6ad822cec22644 Pavitrakumar M 2024-03-05 287 /* set the MSB if we want to use an ATOMIC
6ad822cec22644 Pavitrakumar M 2024-03-05 288 * allocation required for top half processing
6ad822cec22644 Pavitrakumar M 2024-03-05 289 */
6ad822cec22644 Pavitrakumar M 2024-03-05 290 int flag = (limit & 0x80000000);
6ad822cec22644 Pavitrakumar M 2024-03-05 291
6ad822cec22644 Pavitrakumar M 2024-03-05 292 limit &= 0x7FFFFFFF;
6ad822cec22644 Pavitrakumar M 2024-03-05 293
6ad822cec22644 Pavitrakumar M 2024-03-05 294 if (limit + 1 >= SIZE_MAX / 8) {
6ad822cec22644 Pavitrakumar M 2024-03-05 295 /* Too big to even compute DDT size */
6ad822cec22644 Pavitrakumar M 2024-03-05 296 return -1;
6ad822cec22644 Pavitrakumar M 2024-03-05 297 } else if (limit > PDU_MAX_DDT) {
6ad822cec22644 Pavitrakumar M 2024-03-05 298 size_t len = 8 * ((size_t)limit + 1);
6ad822cec22644 Pavitrakumar M 2024-03-05 299
6ad822cec22644 Pavitrakumar M 2024-03-05 300 ddt->virt = dma_alloc_coherent(ddt_device, len, &ddt->phys,
6ad822cec22644 Pavitrakumar M 2024-03-05 301 flag ? GFP_ATOMIC : GFP_KERNEL);
6ad822cec22644 Pavitrakumar M 2024-03-05 302 } else if (limit > 16) {
6ad822cec22644 Pavitrakumar M 2024-03-05 303 ddt->virt = dma_pool_alloc(ddt_pool, flag ? GFP_ATOMIC :
6ad822cec22644 Pavitrakumar M 2024-03-05 304 GFP_KERNEL, &ddt->phys);
6ad822cec22644 Pavitrakumar M 2024-03-05 305 } else if (limit > 4) {
6ad822cec22644 Pavitrakumar M 2024-03-05 306 ddt->virt = dma_pool_alloc(ddt16_pool, flag ? GFP_ATOMIC :
6ad822cec22644 Pavitrakumar M 2024-03-05 307 GFP_KERNEL, &ddt->phys);
6ad822cec22644 Pavitrakumar M 2024-03-05 308 } else {
6ad822cec22644 Pavitrakumar M 2024-03-05 309 ddt->virt = dma_pool_alloc(ddt4_pool, flag ? GFP_ATOMIC :
6ad822cec22644 Pavitrakumar M 2024-03-05 310 GFP_KERNEL, &ddt->phys);
6ad822cec22644 Pavitrakumar M 2024-03-05 311 }
6ad822cec22644 Pavitrakumar M 2024-03-05 312 ddt->idx = 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 313 ddt->len = 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 314 ddt->limit = limit;
6ad822cec22644 Pavitrakumar M 2024-03-05 315
6ad822cec22644 Pavitrakumar M 2024-03-05 316 if (!ddt->virt)
6ad822cec22644 Pavitrakumar M 2024-03-05 317 return -1;
6ad822cec22644 Pavitrakumar M 2024-03-05 318
6ad822cec22644 Pavitrakumar M 2024-03-05 319 #ifdef CONFIG_CRYPTO_DEV_SPACC_DEBUG_TRACE_DDT
6ad822cec22644 Pavitrakumar M 2024-03-05 @320 pr_debug(" DDT[%.8lx]: allocated %lu fragments\n",
6ad822cec22644 Pavitrakumar M 2024-03-05 321 (unsigned long)ddt->phys, limit);
6ad822cec22644 Pavitrakumar M 2024-03-05 322 #endif
6ad822cec22644 Pavitrakumar M 2024-03-05 323
6ad822cec22644 Pavitrakumar M 2024-03-05 324 return 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 325 }
6ad822cec22644 Pavitrakumar M 2024-03-05 326
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 19+ messages in thread* [PATCH 0/4] Add spacc crypto driver support
@ 2024-03-05 11:28 Pavitrakumar M
2024-03-05 11:28 ` [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file Pavitrakumar M
0 siblings, 1 reply; 19+ messages in thread
From: Pavitrakumar M @ 2024-03-05 11:28 UTC (permalink / raw)
To: herbert, linux-crypto; +Cc: Ruud.Derwig, manjunath.hadli, Pavitrakumar M
Add the driver for SPAcc(Security Protocol Accelerator), which is a
crypto acceleration IP from Synopsys. The SPAcc supports many cipher,
hash, aead algorithms and various modes.The driver currently supports
below,
aead:
- ccm(sm4)
- ccm(aes)
- gcm(sm4)
- gcm(aes)
- rfc8998(gcm(sm4))
- rfc7539(chacha20,poly1305)
cipher:
- cbc(sm4)
- ecb(sm4)
- ofb(sm4)
- cfb(sm4)
- ctr(sm4)
- cbc(aes)
- ecb(aes)
- ctr(aes)
- xts(aes)
- cts(cbc(aes))
- cbc(des)
- ecb(des)
- cbc(des3_ede)
- ecb(des3_ede)
- chacha20
- xts(sm4)
- cts(cbc(sm4))
- ecb(kasumi)
- f8(kasumi)
- snow3g_uea2
- cs1(cbc(aes))
- cs2(cbc(aes))
- cs1(cbc(sm4))
- cs2(cbc(sm4))
- f8(sm4)
hash:
- michael_mic
- sm3
- hmac(sm3)
- sha3-512
- sha3-384
- sha3-256
- sha3-224
- hmac(sha512)
- hmac(sha384)
- hmac(sha256)
- hmac(sha224)
- sha512
- sha384
- sha256
- sha224
- sha1
- hmac(sha1)
- md5
- hmac(md5)
- cmac(sm4)
- xcbc(aes)
- cmac(aes)
- xcbc(sm4)
- sha512-224
- hmac(sha512-224)
- sha512-256
- hmac(sha512-256)
- mac(kasumi_f9)
- mac(snow3g)
- mac(zuc)
- sslmac(sha1)
- shake128
- shake256
- cshake128
- cshake256
- kcmac128
- kcmac256
- kcmacxof128
- kcmacxof256
- sslmac(md5)
Pavitrakumar M (4):
Add SPAcc driver to Linux kernel
Add SPACC Kconfig and Makefile
Add SPAcc dts overlay
Enable Driver compilation in crypto Kconfig and Makefile file
arch/arm64/boot/dts/xilinx/Makefile | 3 +
.../arm64/boot/dts/xilinx/snps-dwc-spacc.dtso | 35 +
drivers/crypto/Kconfig | 1 +
drivers/crypto/Makefile | 1 +
drivers/crypto/dwc-spacc/Kconfig | 95 +
drivers/crypto/dwc-spacc/Makefile | 16 +
drivers/crypto/dwc-spacc/spacc_aead.c | 1386 ++++++++
drivers/crypto/dwc-spacc/spacc_ahash.c | 1216 +++++++
drivers/crypto/dwc-spacc/spacc_core.c | 3046 +++++++++++++++++
drivers/crypto/dwc-spacc/spacc_core.h | 833 +++++
drivers/crypto/dwc-spacc/spacc_device.c | 323 ++
drivers/crypto/dwc-spacc/spacc_device.h | 236 ++
drivers/crypto/dwc-spacc/spacc_hal.c | 365 ++
drivers/crypto/dwc-spacc/spacc_hal.h | 113 +
drivers/crypto/dwc-spacc/spacc_interrupt.c | 205 ++
drivers/crypto/dwc-spacc/spacc_manager.c | 670 ++++
drivers/crypto/dwc-spacc/spacc_skcipher.c | 781 +++++
17 files changed, 9325 insertions(+)
create mode 100644 arch/arm64/boot/dts/xilinx/snps-dwc-spacc.dtso
create mode 100644 drivers/crypto/dwc-spacc/Kconfig
create mode 100644 drivers/crypto/dwc-spacc/Makefile
create mode 100644 drivers/crypto/dwc-spacc/spacc_aead.c
create mode 100644 drivers/crypto/dwc-spacc/spacc_ahash.c
create mode 100644 drivers/crypto/dwc-spacc/spacc_core.c
create mode 100644 drivers/crypto/dwc-spacc/spacc_core.h
create mode 100644 drivers/crypto/dwc-spacc/spacc_device.c
create mode 100644 drivers/crypto/dwc-spacc/spacc_device.h
create mode 100644 drivers/crypto/dwc-spacc/spacc_hal.c
create mode 100644 drivers/crypto/dwc-spacc/spacc_hal.h
create mode 100644 drivers/crypto/dwc-spacc/spacc_interrupt.c
create mode 100644 drivers/crypto/dwc-spacc/spacc_manager.c
create mode 100644 drivers/crypto/dwc-spacc/spacc_skcipher.c
--
2.25.1
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
2024-03-05 11:28 [PATCH 0/4] Add spacc crypto driver support Pavitrakumar M
@ 2024-03-05 11:28 ` Pavitrakumar M
2024-03-06 4:08 ` kernel test robot
` (6 more replies)
0 siblings, 7 replies; 19+ messages in thread
From: Pavitrakumar M @ 2024-03-05 11:28 UTC (permalink / raw)
To: herbert, linux-crypto; +Cc: Ruud.Derwig, manjunath.hadli, Pavitrakumar M
Signed-off-by: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
Acked-by: Ruud Derwig <Ruud.Derwig@synopsys.com>
---
drivers/crypto/Kconfig | 1 +
drivers/crypto/Makefile | 1 +
2 files changed, 2 insertions(+)
diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig
index 3d02702456a5..aa384d138ae1 100644
--- a/drivers/crypto/Kconfig
+++ b/drivers/crypto/Kconfig
@@ -704,6 +704,7 @@ config CRYPTO_DEV_BCM_SPU
ahash, and aead algorithms with the kernel cryptographic API.
source "drivers/crypto/stm32/Kconfig"
+source "drivers/crypto/dwc-spacc/Kconfig"
config CRYPTO_DEV_SAFEXCEL
tristate "Inside Secure's SafeXcel cryptographic engine driver"
diff --git a/drivers/crypto/Makefile b/drivers/crypto/Makefile
index 95331bc6456b..4408927a5a0c 100644
--- a/drivers/crypto/Makefile
+++ b/drivers/crypto/Makefile
@@ -47,6 +47,7 @@ obj-$(CONFIG_CRYPTO_DEV_BCM_SPU) += bcm/
obj-$(CONFIG_CRYPTO_DEV_SAFEXCEL) += inside-secure/
obj-$(CONFIG_CRYPTO_DEV_ARTPEC6) += axis/
obj-y += xilinx/
+obj-y += dwc-spacc/
obj-y += hisilicon/
obj-$(CONFIG_CRYPTO_DEV_AMLOGIC_GXL) += amlogic/
obj-y += intel/
--
2.25.1
^ permalink raw reply related [flat|nested] 19+ messages in thread* Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
2024-03-05 11:28 ` [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file Pavitrakumar M
@ 2024-03-06 4:08 ` kernel test robot
2024-03-06 6:43 ` kernel test robot
` (5 subsequent siblings)
6 siblings, 0 replies; 19+ messages in thread
From: kernel test robot @ 2024-03-06 4:08 UTC (permalink / raw)
To: Pavitrakumar M, herbert, linux-crypto
Cc: oe-kbuild-all, Ruud.Derwig, manjunath.hadli, Pavitrakumar M
Hi Pavitrakumar,
kernel test robot noticed the following build warnings:
[auto build test WARNING on herbert-cryptodev-2.6/master]
[also build test WARNING on herbert-crypto-2.6/master linus/master v6.8-rc7 next-20240305]
[cannot apply to xilinx-xlnx/master]
[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/Pavitrakumar-M/Add-SPAcc-driver-to-Linux-kernel/20240305-193337
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20240305112831.3380896-5-pavitrakumarm%40vayavyalabs.com
patch subject: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
config: x86_64-randconfig-121-20240306 (https://download.01.org/0day-ci/archive/20240306/202403061121.TsVV67xo-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240306/202403061121.TsVV67xo-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/202403061121.TsVV67xo-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/crypto/dwc-spacc/spacc_core.c:1418:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:1418:44: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:1418:44: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:1421:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:1421:44: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:1421:44: sparse: got void *
>> drivers/crypto/dwc-spacc/spacc_core.c:1550:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:1550:47: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:1550:47: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:1553:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:1553:47: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:1553:47: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:1562:38: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:1562:38: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:1562:38: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:1563:49: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:1563:49: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:1563:49: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:1650:49: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:1650:49: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:1650:49: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:1651:55: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:1651:55: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:1651:55: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2513:50: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2513:50: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2513:50: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2514:50: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2514:50: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2514:50: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2515:34: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2515:34: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2515:34: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2516:34: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2516:34: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2516:34: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2517:34: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2517:34: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2517:34: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2518:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2518:33: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2518:33: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2519:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2519:33: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2519:33: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2545:63: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2545:63: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2545:63: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2550:60: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2550:60: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2550:60: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2557:65: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2557:65: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2557:65: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2560:68: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2560:68: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2560:68: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2575:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2575:33: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2575:33: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2576:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2576:33: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2576:33: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2577:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2577:42: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2577:42: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2579:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2579:33: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2579:33: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2580:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2580:33: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2580:33: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2581:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2581:33: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2581:33: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2582:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2582:33: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2582:33: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2583:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2583:33: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2583:33: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2689:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2689:42: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2689:42: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2690:58: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2690:58: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2690:58: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2698:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2698:34: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2698:34: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2716:42: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2716:42: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2716:42: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2742:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2742:45: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2742:45: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2743:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2743:45: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2743:45: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2744:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2744:38: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2744:38: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2746:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2746:38: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_core.c:2746:38: sparse: got void *
drivers/crypto/dwc-spacc/spacc_core.c:2756:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_core.c:2756:33: sparse: expected void volatile [noderef] __iomem *addr
vim +1418 drivers/crypto/dwc-spacc/spacc_core.c
6ad822cec22644 Pavitrakumar M 2024-03-05 1414
6ad822cec22644 Pavitrakumar M 2024-03-05 1415 static int _spacc_fifo_full(struct spacc_device *spacc, uint32_t prio)
6ad822cec22644 Pavitrakumar M 2024-03-05 1416 {
6ad822cec22644 Pavitrakumar M 2024-03-05 1417 if (spacc->config.is_qos)
6ad822cec22644 Pavitrakumar M 2024-03-05 @1418 return readl(spacc->regmap + SPACC_REG_FIFO_STAT) &
6ad822cec22644 Pavitrakumar M 2024-03-05 1419 SPACC_FIFO_STAT_CMDX_FULL(prio);
6ad822cec22644 Pavitrakumar M 2024-03-05 1420 else
6ad822cec22644 Pavitrakumar M 2024-03-05 1421 return readl(spacc->regmap + SPACC_REG_FIFO_STAT) &
6ad822cec22644 Pavitrakumar M 2024-03-05 1422 SPACC_FIFO_STAT_CMD0_FULL;
6ad822cec22644 Pavitrakumar M 2024-03-05 1423 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1424
6ad822cec22644 Pavitrakumar M 2024-03-05 1425 /* When proc_sz != 0 it overrides the ddt_len value
6ad822cec22644 Pavitrakumar M 2024-03-05 1426 * defined in the context referenced by 'job_idx'
6ad822cec22644 Pavitrakumar M 2024-03-05 1427 */
6ad822cec22644 Pavitrakumar M 2024-03-05 1428 int spacc_packet_enqueue_ddt_ex(struct spacc_device *spacc, int use_jb, int
6ad822cec22644 Pavitrakumar M 2024-03-05 1429 job_idx, struct pdu_ddt *src_ddt, struct pdu_ddt *dst_ddt,
6ad822cec22644 Pavitrakumar M 2024-03-05 1430 u32 proc_sz, uint32_t aad_offset, uint32_t pre_aad_sz,
6ad822cec22644 Pavitrakumar M 2024-03-05 1431 u32 post_aad_sz, uint32_t iv_offset, uint32_t prio)
6ad822cec22644 Pavitrakumar M 2024-03-05 1432 {
6ad822cec22644 Pavitrakumar M 2024-03-05 1433 int ret = CRYPTO_OK, proc_len;
6ad822cec22644 Pavitrakumar M 2024-03-05 1434 struct spacc_job *job;
6ad822cec22644 Pavitrakumar M 2024-03-05 1435
6ad822cec22644 Pavitrakumar M 2024-03-05 1436 if (job_idx < 0 || job_idx > SPACC_MAX_JOBS)
6ad822cec22644 Pavitrakumar M 2024-03-05 1437 return -ENXIO;
6ad822cec22644 Pavitrakumar M 2024-03-05 1438
6ad822cec22644 Pavitrakumar M 2024-03-05 1439 switch (prio) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1440 case SPACC_SW_CTRL_PRIO_MED:
6ad822cec22644 Pavitrakumar M 2024-03-05 1441 if (spacc->config.cmd1_fifo_depth == 0)
6ad822cec22644 Pavitrakumar M 2024-03-05 1442 return -EINVAL;
6ad822cec22644 Pavitrakumar M 2024-03-05 1443 break;
6ad822cec22644 Pavitrakumar M 2024-03-05 1444 case SPACC_SW_CTRL_PRIO_LOW:
6ad822cec22644 Pavitrakumar M 2024-03-05 1445 if (spacc->config.cmd2_fifo_depth == 0)
6ad822cec22644 Pavitrakumar M 2024-03-05 1446 return -EINVAL;
6ad822cec22644 Pavitrakumar M 2024-03-05 1447 break;
6ad822cec22644 Pavitrakumar M 2024-03-05 1448 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1449
6ad822cec22644 Pavitrakumar M 2024-03-05 1450 job = &spacc->job[job_idx];
6ad822cec22644 Pavitrakumar M 2024-03-05 1451 if (!job) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1452 ret = -EIO;
6ad822cec22644 Pavitrakumar M 2024-03-05 1453 } else {
6ad822cec22644 Pavitrakumar M 2024-03-05 1454 /* process any jobs in the jb*/
6ad822cec22644 Pavitrakumar M 2024-03-05 1455 if (use_jb && spacc_process_jb(spacc) != 0)
6ad822cec22644 Pavitrakumar M 2024-03-05 1456 goto fifo_full;
6ad822cec22644 Pavitrakumar M 2024-03-05 1457
6ad822cec22644 Pavitrakumar M 2024-03-05 1458 if (_spacc_fifo_full(spacc, prio)) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1459 if (use_jb)
6ad822cec22644 Pavitrakumar M 2024-03-05 1460 goto fifo_full;
6ad822cec22644 Pavitrakumar M 2024-03-05 1461 else
6ad822cec22644 Pavitrakumar M 2024-03-05 1462 return -EBUSY;
6ad822cec22644 Pavitrakumar M 2024-03-05 1463 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1464
6ad822cec22644 Pavitrakumar M 2024-03-05 1465 /* compute the length we must process, in decrypt mode
6ad822cec22644 Pavitrakumar M 2024-03-05 1466 * with an ICV (hash, hmac or CCM modes)
6ad822cec22644 Pavitrakumar M 2024-03-05 1467 * we must subtract the icv length from the buffer size
6ad822cec22644 Pavitrakumar M 2024-03-05 1468 */
6ad822cec22644 Pavitrakumar M 2024-03-05 1469 if (proc_sz == SPACC_AUTO_SIZE) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1470 if (job->op == OP_DECRYPT &&
6ad822cec22644 Pavitrakumar M 2024-03-05 1471 (job->hash_mode > 0 || (job->enc_mode ==
6ad822cec22644 Pavitrakumar M 2024-03-05 1472 CRYPTO_MODE_AES_CCM || job->enc_mode ==
6ad822cec22644 Pavitrakumar M 2024-03-05 1473 CRYPTO_MODE_AES_GCM)) && !(job->ctrl &
6ad822cec22644 Pavitrakumar M 2024-03-05 1474 SPACC_CTRL_MASK(SPACC_CTRL_ICV_ENC))) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1475 proc_len = src_ddt->len - job->icv_len;
6ad822cec22644 Pavitrakumar M 2024-03-05 1476 } else {
6ad822cec22644 Pavitrakumar M 2024-03-05 1477 proc_len = src_ddt->len;
6ad822cec22644 Pavitrakumar M 2024-03-05 1478 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1479 } else {
6ad822cec22644 Pavitrakumar M 2024-03-05 1480 proc_len = proc_sz;
6ad822cec22644 Pavitrakumar M 2024-03-05 1481 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1482
6ad822cec22644 Pavitrakumar M 2024-03-05 1483 if (pre_aad_sz & SPACC_AADCOPY_FLAG) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1484 job->ctrl |= SPACC_CTRL_MASK(SPACC_CTRL_AAD_COPY);
6ad822cec22644 Pavitrakumar M 2024-03-05 1485 pre_aad_sz &= ~(SPACC_AADCOPY_FLAG);
6ad822cec22644 Pavitrakumar M 2024-03-05 1486 } else {
6ad822cec22644 Pavitrakumar M 2024-03-05 1487 job->ctrl &= ~SPACC_CTRL_MASK(SPACC_CTRL_AAD_COPY);
6ad822cec22644 Pavitrakumar M 2024-03-05 1488 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1489
6ad822cec22644 Pavitrakumar M 2024-03-05 1490 job->pre_aad_sz = pre_aad_sz;
6ad822cec22644 Pavitrakumar M 2024-03-05 1491 job->post_aad_sz = post_aad_sz;
6ad822cec22644 Pavitrakumar M 2024-03-05 1492
6ad822cec22644 Pavitrakumar M 2024-03-05 1493 if (spacc->config.dma_type == SPACC_DMA_DDT) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1494 pdu_io_cached_write(spacc->regmap +
6ad822cec22644 Pavitrakumar M 2024-03-05 1495 SPACC_REG_SRC_PTR,
6ad822cec22644 Pavitrakumar M 2024-03-05 1496 (uint32_t)src_ddt->phys,
6ad822cec22644 Pavitrakumar M 2024-03-05 1497 &spacc->cache.src_ptr);
6ad822cec22644 Pavitrakumar M 2024-03-05 1498 pdu_io_cached_write(spacc->regmap +
6ad822cec22644 Pavitrakumar M 2024-03-05 1499 SPACC_REG_DST_PTR,
6ad822cec22644 Pavitrakumar M 2024-03-05 1500 (uint32_t)dst_ddt->phys,
6ad822cec22644 Pavitrakumar M 2024-03-05 1501 &spacc->cache.dst_ptr);
6ad822cec22644 Pavitrakumar M 2024-03-05 1502 } else if (spacc->config.dma_type == SPACC_DMA_LINEAR) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1503 pdu_io_cached_write(spacc->regmap +
6ad822cec22644 Pavitrakumar M 2024-03-05 1504 SPACC_REG_SRC_PTR,
6ad822cec22644 Pavitrakumar M 2024-03-05 1505 (uint32_t)src_ddt->virt[0],
6ad822cec22644 Pavitrakumar M 2024-03-05 1506 &spacc->cache.src_ptr);
6ad822cec22644 Pavitrakumar M 2024-03-05 1507 pdu_io_cached_write(spacc->regmap +
6ad822cec22644 Pavitrakumar M 2024-03-05 1508 SPACC_REG_DST_PTR,
6ad822cec22644 Pavitrakumar M 2024-03-05 1509 (uint32_t)dst_ddt->virt[0],
6ad822cec22644 Pavitrakumar M 2024-03-05 1510 &spacc->cache.dst_ptr);
6ad822cec22644 Pavitrakumar M 2024-03-05 1511 } else {
6ad822cec22644 Pavitrakumar M 2024-03-05 1512 return -EIO;
6ad822cec22644 Pavitrakumar M 2024-03-05 1513 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1514
6ad822cec22644 Pavitrakumar M 2024-03-05 1515 pdu_io_cached_write(spacc->regmap +
6ad822cec22644 Pavitrakumar M 2024-03-05 1516 SPACC_REG_PROC_LEN, proc_len -
6ad822cec22644 Pavitrakumar M 2024-03-05 1517 job->post_aad_sz,
6ad822cec22644 Pavitrakumar M 2024-03-05 1518 &spacc->cache.proc_len);
6ad822cec22644 Pavitrakumar M 2024-03-05 1519 pdu_io_cached_write(spacc->regmap +
6ad822cec22644 Pavitrakumar M 2024-03-05 1520 SPACC_REG_ICV_LEN, job->icv_len,
6ad822cec22644 Pavitrakumar M 2024-03-05 1521 &spacc->cache.icv_len);
6ad822cec22644 Pavitrakumar M 2024-03-05 1522 pdu_io_cached_write(spacc->regmap +
6ad822cec22644 Pavitrakumar M 2024-03-05 1523 SPACC_REG_ICV_OFFSET,
6ad822cec22644 Pavitrakumar M 2024-03-05 1524 job->icv_offset,
6ad822cec22644 Pavitrakumar M 2024-03-05 1525 &spacc->cache.icv_offset);
6ad822cec22644 Pavitrakumar M 2024-03-05 1526 pdu_io_cached_write(spacc->regmap +
6ad822cec22644 Pavitrakumar M 2024-03-05 1527 SPACC_REG_PRE_AAD_LEN,
6ad822cec22644 Pavitrakumar M 2024-03-05 1528 job->pre_aad_sz,
6ad822cec22644 Pavitrakumar M 2024-03-05 1529 &spacc->cache.pre_aad);
6ad822cec22644 Pavitrakumar M 2024-03-05 1530 pdu_io_cached_write(spacc->regmap +
6ad822cec22644 Pavitrakumar M 2024-03-05 1531 SPACC_REG_POST_AAD_LEN,
6ad822cec22644 Pavitrakumar M 2024-03-05 1532 job->post_aad_sz,
6ad822cec22644 Pavitrakumar M 2024-03-05 1533 &spacc->cache.post_aad);
6ad822cec22644 Pavitrakumar M 2024-03-05 1534 pdu_io_cached_write(spacc->regmap +
6ad822cec22644 Pavitrakumar M 2024-03-05 1535 SPACC_REG_IV_OFFSET, iv_offset,
6ad822cec22644 Pavitrakumar M 2024-03-05 1536 &spacc->cache.iv_offset);
6ad822cec22644 Pavitrakumar M 2024-03-05 1537 pdu_io_cached_write(spacc->regmap +
6ad822cec22644 Pavitrakumar M 2024-03-05 1538 SPACC_REG_OFFSET,
6ad822cec22644 Pavitrakumar M 2024-03-05 1539 aad_offset, &spacc->cache.offset);
6ad822cec22644 Pavitrakumar M 2024-03-05 1540 pdu_io_cached_write(spacc->regmap +
6ad822cec22644 Pavitrakumar M 2024-03-05 1541 SPACC_REG_AUX_INFO,
6ad822cec22644 Pavitrakumar M 2024-03-05 1542 AUX_DIR(job->auxinfo_dir) |
6ad822cec22644 Pavitrakumar M 2024-03-05 1543 AUX_BIT_ALIGN(job->auxinfo_bit_align) |
6ad822cec22644 Pavitrakumar M 2024-03-05 1544 AUX_CBC_CS(job->auxinfo_cs_mode),
6ad822cec22644 Pavitrakumar M 2024-03-05 1545 &spacc->cache.aux);
6ad822cec22644 Pavitrakumar M 2024-03-05 1546
6ad822cec22644 Pavitrakumar M 2024-03-05 1547 if (job->first_use == 1) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1548 writel(job->ckey_sz |
6ad822cec22644 Pavitrakumar M 2024-03-05 1549 SPACC_SET_KEY_CTX(job->ctx_idx),
6ad822cec22644 Pavitrakumar M 2024-03-05 @1550 spacc->regmap + SPACC_REG_KEY_SZ);
6ad822cec22644 Pavitrakumar M 2024-03-05 1551 writel(job->hkey_sz |
6ad822cec22644 Pavitrakumar M 2024-03-05 1552 SPACC_SET_KEY_CTX(job->ctx_idx),
6ad822cec22644 Pavitrakumar M 2024-03-05 1553 spacc->regmap + SPACC_REG_KEY_SZ);
6ad822cec22644 Pavitrakumar M 2024-03-05 1554 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1555
6ad822cec22644 Pavitrakumar M 2024-03-05 1556 job->job_swid = spacc->job_next_swid;
6ad822cec22644 Pavitrakumar M 2024-03-05 1557 spacc->job_lookup[job->job_swid] = job_idx;
6ad822cec22644 Pavitrakumar M 2024-03-05 1558 spacc->job_next_swid = (spacc->job_next_swid + 1) %
6ad822cec22644 Pavitrakumar M 2024-03-05 1559 SPACC_MAX_JOBS;
6ad822cec22644 Pavitrakumar M 2024-03-05 1560 writel(SPACC_SW_CTRL_ID_SET(job->job_swid) |
6ad822cec22644 Pavitrakumar M 2024-03-05 1561 SPACC_SW_CTRL_PRIO_SET(prio),
6ad822cec22644 Pavitrakumar M 2024-03-05 1562 spacc->regmap + SPACC_REG_SW_CTRL);
6ad822cec22644 Pavitrakumar M 2024-03-05 1563 writel(job->ctrl, spacc->regmap + SPACC_REG_CTRL);
6ad822cec22644 Pavitrakumar M 2024-03-05 1564
6ad822cec22644 Pavitrakumar M 2024-03-05 1565 /* Clear an expansion key after the first call*/
6ad822cec22644 Pavitrakumar M 2024-03-05 1566 if (job->first_use == 1) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1567 job->first_use = 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 1568 job->ctrl &= ~SPACC_CTRL_MASK(SPACC_CTRL_KEY_EXP);
6ad822cec22644 Pavitrakumar M 2024-03-05 1569 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1570 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1571
6ad822cec22644 Pavitrakumar M 2024-03-05 1572
6ad822cec22644 Pavitrakumar M 2024-03-05 1573 return ret;
6ad822cec22644 Pavitrakumar M 2024-03-05 1574 fifo_full:
6ad822cec22644 Pavitrakumar M 2024-03-05 1575 /* try to add a job to the job buffers*/
6ad822cec22644 Pavitrakumar M 2024-03-05 1576 {
6ad822cec22644 Pavitrakumar M 2024-03-05 1577 int i;
6ad822cec22644 Pavitrakumar M 2024-03-05 1578
6ad822cec22644 Pavitrakumar M 2024-03-05 1579 i = spacc->jb_head + 1;
6ad822cec22644 Pavitrakumar M 2024-03-05 1580 if (i == SPACC_MAX_JOB_BUFFERS)
6ad822cec22644 Pavitrakumar M 2024-03-05 1581 i = 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 1582
6ad822cec22644 Pavitrakumar M 2024-03-05 1583 if (i == spacc->jb_tail)
6ad822cec22644 Pavitrakumar M 2024-03-05 1584 return -EBUSY;
6ad822cec22644 Pavitrakumar M 2024-03-05 1585
6ad822cec22644 Pavitrakumar M 2024-03-05 1586 spacc->job_buffer[spacc->jb_head] = (struct spacc_job_buffer) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1587 .active = 1,
6ad822cec22644 Pavitrakumar M 2024-03-05 1588 .job_idx = job_idx,
6ad822cec22644 Pavitrakumar M 2024-03-05 1589 .src = src_ddt,
6ad822cec22644 Pavitrakumar M 2024-03-05 1590 .dst = dst_ddt,
6ad822cec22644 Pavitrakumar M 2024-03-05 1591 .proc_sz = proc_sz,
6ad822cec22644 Pavitrakumar M 2024-03-05 1592 .aad_offset = aad_offset,
6ad822cec22644 Pavitrakumar M 2024-03-05 1593 .pre_aad_sz = pre_aad_sz,
6ad822cec22644 Pavitrakumar M 2024-03-05 1594 .post_aad_sz = post_aad_sz,
6ad822cec22644 Pavitrakumar M 2024-03-05 1595 .iv_offset = iv_offset,
6ad822cec22644 Pavitrakumar M 2024-03-05 1596 .prio = prio
6ad822cec22644 Pavitrakumar M 2024-03-05 1597 };
6ad822cec22644 Pavitrakumar M 2024-03-05 1598
6ad822cec22644 Pavitrakumar M 2024-03-05 1599 spacc->jb_head = i;
6ad822cec22644 Pavitrakumar M 2024-03-05 1600
6ad822cec22644 Pavitrakumar M 2024-03-05 1601 return CRYPTO_USED_JB;
6ad822cec22644 Pavitrakumar M 2024-03-05 1602 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1603 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1604
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
2024-03-05 11:28 ` [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file Pavitrakumar M
2024-03-06 4:08 ` kernel test robot
@ 2024-03-06 6:43 ` kernel test robot
2024-03-06 6:43 ` kernel test robot
` (4 subsequent siblings)
6 siblings, 0 replies; 19+ messages in thread
From: kernel test robot @ 2024-03-06 6:43 UTC (permalink / raw)
To: Pavitrakumar M, herbert, linux-crypto
Cc: oe-kbuild-all, Ruud.Derwig, manjunath.hadli, Pavitrakumar M
Hi Pavitrakumar,
kernel test robot noticed the following build warnings:
[auto build test WARNING on herbert-cryptodev-2.6/master]
[also build test WARNING on herbert-crypto-2.6/master linus/master v6.8-rc7 next-20240305]
[cannot apply to xilinx-xlnx/master]
[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/Pavitrakumar-M/Add-SPAcc-driver-to-Linux-kernel/20240305-193337
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20240305112831.3380896-5-pavitrakumarm%40vayavyalabs.com
patch subject: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
config: csky-randconfig-r071-20240306 (https://download.01.org/0day-ci/archive/20240306/202403061413.rdjPqkel-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240306/202403061413.rdjPqkel-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/202403061413.rdjPqkel-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/crypto/dwc-spacc/spacc_core.c:2835:56: warning: 'reg_names' defined but not used [-Wunused-const-variable=]
2835 | static const struct { unsigned int addr; char *name; } reg_names[] = {
| ^~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_core.c:1395:12: warning: 'spacc_set_auxinfo' defined but not used [-Wunused-function]
1395 | static int spacc_set_auxinfo(struct spacc_device *spacc, int jobid, uint32_t
| ^~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:984:26: warning: 'names' defined but not used [-Wunused-const-variable=]
984 | static const char *const names[] = {
| ^~~~~
In file included from <command-line>:
In function 'spacc_sg_chain',
inlined from 'fixup_sg' at drivers/crypto/dwc-spacc/spacc_core.c:1115:4,
inlined from 'spacc_sgs_to_ddt' at drivers/crypto/dwc-spacc/spacc_core.c:1144:16:
include/linux/compiler_types.h:435:45: error: call to '__compiletime_assert_240' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_DEBUG_SG)
435 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:416:25: note: in definition of macro '__compiletime_assert'
416 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:435:9: note: in expansion of macro '_compiletime_assert'
435 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1082:9: note: in expansion of macro 'BUILD_BUG_ON'
1082 | BUILD_BUG_ON(IS_ENABLED(CONFIG_DEBUG_SG));
| ^~~~~~~~~~~~
In function 'spacc_sg_chain',
inlined from 'fixup_sg' at drivers/crypto/dwc-spacc/spacc_core.c:1115:4,
inlined from 'spacc_sg_to_ddt' at drivers/crypto/dwc-spacc/spacc_core.c:1252:15:
include/linux/compiler_types.h:435:45: error: call to '__compiletime_assert_240' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_DEBUG_SG)
435 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:416:25: note: in definition of macro '__compiletime_assert'
416 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:435:9: note: in expansion of macro '_compiletime_assert'
435 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1082:9: note: in expansion of macro 'BUILD_BUG_ON'
1082 | BUILD_BUG_ON(IS_ENABLED(CONFIG_DEBUG_SG));
| ^~~~~~~~~~~~
vim +/spacc_set_auxinfo +1395 drivers/crypto/dwc-spacc/spacc_core.c
6ad822cec22644 Pavitrakumar M 2024-03-05 1394
6ad822cec22644 Pavitrakumar M 2024-03-05 @1395 static int spacc_set_auxinfo(struct spacc_device *spacc, int jobid, uint32_t
6ad822cec22644 Pavitrakumar M 2024-03-05 1396 direction, uint32_t bitsize)
6ad822cec22644 Pavitrakumar M 2024-03-05 1397 {
6ad822cec22644 Pavitrakumar M 2024-03-05 1398 int ret = CRYPTO_OK;
6ad822cec22644 Pavitrakumar M 2024-03-05 1399 struct spacc_job *job;
6ad822cec22644 Pavitrakumar M 2024-03-05 1400
6ad822cec22644 Pavitrakumar M 2024-03-05 1401 if (jobid < 0 || jobid > SPACC_MAX_JOBS)
6ad822cec22644 Pavitrakumar M 2024-03-05 1402 return -ENXIO;
6ad822cec22644 Pavitrakumar M 2024-03-05 1403
6ad822cec22644 Pavitrakumar M 2024-03-05 1404 job = &spacc->job[jobid];
6ad822cec22644 Pavitrakumar M 2024-03-05 1405 if (!job) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1406 ret = -EIO;
6ad822cec22644 Pavitrakumar M 2024-03-05 1407 } else {
6ad822cec22644 Pavitrakumar M 2024-03-05 1408 job->auxinfo_dir = direction;
6ad822cec22644 Pavitrakumar M 2024-03-05 1409 job->auxinfo_bit_align = bitsize;
6ad822cec22644 Pavitrakumar M 2024-03-05 1410 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1411
6ad822cec22644 Pavitrakumar M 2024-03-05 1412 return ret;
6ad822cec22644 Pavitrakumar M 2024-03-05 1413 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1414
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
2024-03-05 11:28 ` [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file Pavitrakumar M
2024-03-06 4:08 ` kernel test robot
2024-03-06 6:43 ` kernel test robot
@ 2024-03-06 6:43 ` kernel test robot
2024-03-06 7:26 ` kernel test robot
` (3 subsequent siblings)
6 siblings, 0 replies; 19+ messages in thread
From: kernel test robot @ 2024-03-06 6:43 UTC (permalink / raw)
To: Pavitrakumar M, herbert, linux-crypto
Cc: llvm, oe-kbuild-all, Ruud.Derwig, manjunath.hadli, Pavitrakumar M
Hi Pavitrakumar,
kernel test robot noticed the following build warnings:
[auto build test WARNING on herbert-cryptodev-2.6/master]
[also build test WARNING on herbert-crypto-2.6/master linus/master v6.8-rc7 next-20240305]
[cannot apply to xilinx-xlnx/master]
[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/Pavitrakumar-M/Add-SPAcc-driver-to-Linux-kernel/20240305-193337
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20240305112831.3380896-5-pavitrakumarm%40vayavyalabs.com
patch subject: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
config: i386-buildonly-randconfig-004-20240306 (https://download.01.org/0day-ci/archive/20240306/202403061443.w2hFEVfJ-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240306/202403061443.w2hFEVfJ-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/202403061443.w2hFEVfJ-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/crypto/dwc-spacc/spacc_ahash.c:271:9: warning: variable 'sgl_buffer' is uninitialized when used here [-Wuninitialized]
271 | sgl_buffer,
| ^~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_ahash.c:231:18: note: initialize the variable 'sgl_buffer' to silence this warning
231 | char *sgl_buffer;
| ^
| = NULL
drivers/crypto/dwc-spacc/spacc_ahash.c:679:18: warning: variable 'priv' is uninitialized when used here [-Wuninitialized]
679 | spacc_close(&priv->spacc, tctx->handle);
| ^~~~
drivers/crypto/dwc-spacc/spacc_ahash.c:666:25: note: initialize the variable 'priv' to silence this warning
666 | struct spacc_priv *priv;
| ^
| = NULL
>> drivers/crypto/dwc-spacc/spacc_ahash.c:1008:6: warning: variable 'total_len' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
1008 | if (rc < 0)
| ^~~~~~
drivers/crypto/dwc-spacc/spacc_ahash.c:1057:28: note: uninitialized use occurs here
1057 | ctx->fb.hash_req.nbytes = total_len;
| ^~~~~~~~~
drivers/crypto/dwc-spacc/spacc_ahash.c:1008:2: note: remove the 'if' if its condition is always false
1008 | if (rc < 0)
| ^~~~~~~~~~~
1009 | goto fallback;
| ~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_ahash.c:1003:6: warning: variable 'total_len' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
1003 | if (tctx->handle < 0 || !tctx->ctx_valid ||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1004 | req->nbytes > priv->max_msg_len)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_ahash.c:1057:28: note: uninitialized use occurs here
1057 | ctx->fb.hash_req.nbytes = total_len;
| ^~~~~~~~~
drivers/crypto/dwc-spacc/spacc_ahash.c:1003:2: note: remove the 'if' if its condition is always false
1003 | if (tctx->handle < 0 || !tctx->ctx_valid ||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1004 | req->nbytes > priv->max_msg_len)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1005 | goto fallback;
| ~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_ahash.c:1003:6: warning: variable 'total_len' is used uninitialized whenever '||' condition is true [-Wsometimes-uninitialized]
1003 | if (tctx->handle < 0 || !tctx->ctx_valid ||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_ahash.c:1057:28: note: uninitialized use occurs here
1057 | ctx->fb.hash_req.nbytes = total_len;
| ^~~~~~~~~
drivers/crypto/dwc-spacc/spacc_ahash.c:1003:6: note: remove the '||' if its condition is always false
1003 | if (tctx->handle < 0 || !tctx->ctx_valid ||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_ahash.c:1003:6: warning: variable 'total_len' is used uninitialized whenever '||' condition is true [-Wsometimes-uninitialized]
1003 | if (tctx->handle < 0 || !tctx->ctx_valid ||
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_ahash.c:1057:28: note: uninitialized use occurs here
1057 | ctx->fb.hash_req.nbytes = total_len;
| ^~~~~~~~~
drivers/crypto/dwc-spacc/spacc_ahash.c:1003:6: note: remove the '||' if its condition is always false
1003 | if (tctx->handle < 0 || !tctx->ctx_valid ||
| ^~~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_ahash.c:985:19: note: initialize the variable 'total_len' to silence this warning
985 | int rc, total_len;
| ^
| = 0
6 warnings generated.
--
drivers/crypto/dwc-spacc/spacc_skcipher.c:149:16: warning: variable 'rc' set but not used [-Wunused-but-set-variable]
149 | int err = -1, rc;
| ^
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:176:40: warning: overlapping comparisons always evaluate to true [-Wtautological-overlap-compare]
176 | if (ctx->mode != CRYPTO_MODE_DES_ECB ||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
177 | ctx->mode != CRYPTO_MODE_DES_CBC ||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_skcipher.c:400:6: warning: variable 'ivsize' set but not used [-Wunused-but-set-variable]
400 | int ivsize;
| ^
3 warnings generated.
--
drivers/crypto/dwc-spacc/spacc_core.c:984:26: warning: unused variable 'names' [-Wunused-const-variable]
984 | static const char *const names[] = {
| ^~~~~
>> drivers/crypto/dwc-spacc/spacc_core.c:2835:56: warning: unused variable 'reg_names' [-Wunused-const-variable]
2835 | static const struct { unsigned int addr; char *name; } reg_names[] = {
| ^~~~~~~~~
2 warnings generated.
vim +1008 drivers/crypto/dwc-spacc/spacc_ahash.c
6ad822cec22644 Pavitrakumar M 2024-03-05 981
6ad822cec22644 Pavitrakumar M 2024-03-05 982 static int spacc_hash_digest(struct ahash_request *req)
6ad822cec22644 Pavitrakumar M 2024-03-05 983 {
6ad822cec22644 Pavitrakumar M 2024-03-05 984 int final = 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 985 int rc, total_len;
6ad822cec22644 Pavitrakumar M 2024-03-05 986 struct crypto_ahash *reqtfm = crypto_ahash_reqtfm(req);
6ad822cec22644 Pavitrakumar M 2024-03-05 987 struct spacc_crypto_ctx *tctx = crypto_ahash_ctx(reqtfm);
6ad822cec22644 Pavitrakumar M 2024-03-05 988 struct spacc_crypto_reqctx *ctx = ahash_request_ctx(req);
6ad822cec22644 Pavitrakumar M 2024-03-05 989 struct spacc_priv *priv = dev_get_drvdata(tctx->dev);
6ad822cec22644 Pavitrakumar M 2024-03-05 990
6ad822cec22644 Pavitrakumar M 2024-03-05 991 if (tctx->flag_ppp) {
6ad822cec22644 Pavitrakumar M 2024-03-05 992 /* from finup */
6ad822cec22644 Pavitrakumar M 2024-03-05 993 ctx->single_shot = 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 994 ctx->final_part_pck = 1;
6ad822cec22644 Pavitrakumar M 2024-03-05 995 final = 2;
6ad822cec22644 Pavitrakumar M 2024-03-05 996 } else {
6ad822cec22644 Pavitrakumar M 2024-03-05 997 /* direct single shot digest call */
6ad822cec22644 Pavitrakumar M 2024-03-05 998 ctx->single_shot = 1;
6ad822cec22644 Pavitrakumar M 2024-03-05 999 ctx->rem_len = 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 1000 ctx->total_nents = sg_nents(req->src);
6ad822cec22644 Pavitrakumar M 2024-03-05 1001 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1002
6ad822cec22644 Pavitrakumar M 2024-03-05 @1003 if (tctx->handle < 0 || !tctx->ctx_valid ||
6ad822cec22644 Pavitrakumar M 2024-03-05 1004 req->nbytes > priv->max_msg_len)
6ad822cec22644 Pavitrakumar M 2024-03-05 1005 goto fallback;
6ad822cec22644 Pavitrakumar M 2024-03-05 1006
6ad822cec22644 Pavitrakumar M 2024-03-05 1007 rc = spacc_hash_init_dma(tctx->dev, req, final);
6ad822cec22644 Pavitrakumar M 2024-03-05 @1008 if (rc < 0)
6ad822cec22644 Pavitrakumar M 2024-03-05 1009 goto fallback;
6ad822cec22644 Pavitrakumar M 2024-03-05 1010
6ad822cec22644 Pavitrakumar M 2024-03-05 1011 if (rc == 0)
6ad822cec22644 Pavitrakumar M 2024-03-05 1012 return 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 1013
6ad822cec22644 Pavitrakumar M 2024-03-05 1014 if (final) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1015 if (ctx->total_nents) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1016 /* INIT-UPDATE-UPDATE-FINUP/FINAL */
6ad822cec22644 Pavitrakumar M 2024-03-05 1017 total_len = tctx->ppp_sgl[0].length;
6ad822cec22644 Pavitrakumar M 2024-03-05 1018 } else if (req->src->length == 0 && ctx->total_nents == 0) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1019 /* zero msg handling */
6ad822cec22644 Pavitrakumar M 2024-03-05 1020 total_len = 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 1021 } else {
6ad822cec22644 Pavitrakumar M 2024-03-05 1022 /* handle INIT-FINUP sequence, process req->nbytes */
6ad822cec22644 Pavitrakumar M 2024-03-05 1023 total_len = req->nbytes;
6ad822cec22644 Pavitrakumar M 2024-03-05 1024 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1025
6ad822cec22644 Pavitrakumar M 2024-03-05 1026 rc = spacc_packet_enqueue_ddt(&priv->spacc, ctx->acb.new_handle,
6ad822cec22644 Pavitrakumar M 2024-03-05 1027 &ctx->src, &ctx->dst, total_len,
6ad822cec22644 Pavitrakumar M 2024-03-05 1028 0, total_len, 0, 0, 0);
6ad822cec22644 Pavitrakumar M 2024-03-05 1029 } else {
6ad822cec22644 Pavitrakumar M 2024-03-05 1030 rc = spacc_packet_enqueue_ddt(&priv->spacc, ctx->acb.new_handle,
6ad822cec22644 Pavitrakumar M 2024-03-05 1031 &ctx->src, &ctx->dst, req->nbytes,
6ad822cec22644 Pavitrakumar M 2024-03-05 1032 0, req->nbytes, 0, 0, 0);
6ad822cec22644 Pavitrakumar M 2024-03-05 1033 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1034
6ad822cec22644 Pavitrakumar M 2024-03-05 1035 if (rc < 0) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1036 spacc_hash_cleanup_dma(tctx->dev, req);
6ad822cec22644 Pavitrakumar M 2024-03-05 1037 spacc_close(&priv->spacc, ctx->acb.new_handle);
6ad822cec22644 Pavitrakumar M 2024-03-05 1038
6ad822cec22644 Pavitrakumar M 2024-03-05 1039 if (rc != -EBUSY) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1040 pr_debug("Failed to enqueue job, ERR: %d\n", rc);
6ad822cec22644 Pavitrakumar M 2024-03-05 1041 return rc;
6ad822cec22644 Pavitrakumar M 2024-03-05 1042 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1043
6ad822cec22644 Pavitrakumar M 2024-03-05 1044 if (!(req->base.flags & CRYPTO_TFM_REQ_MAY_BACKLOG))
6ad822cec22644 Pavitrakumar M 2024-03-05 1045 return -EBUSY;
6ad822cec22644 Pavitrakumar M 2024-03-05 1046
6ad822cec22644 Pavitrakumar M 2024-03-05 1047 goto fallback;
6ad822cec22644 Pavitrakumar M 2024-03-05 1048 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1049
6ad822cec22644 Pavitrakumar M 2024-03-05 1050 return -EINPROGRESS;
6ad822cec22644 Pavitrakumar M 2024-03-05 1051
6ad822cec22644 Pavitrakumar M 2024-03-05 1052 fallback:
6ad822cec22644 Pavitrakumar M 2024-03-05 1053 /* Start from scratch as init is not called before digest */
6ad822cec22644 Pavitrakumar M 2024-03-05 1054 ctx->fb.hash_req.base = req->base;
6ad822cec22644 Pavitrakumar M 2024-03-05 1055 ahash_request_set_tfm(&ctx->fb.hash_req, tctx->fb.hash);
6ad822cec22644 Pavitrakumar M 2024-03-05 1056
6ad822cec22644 Pavitrakumar M 2024-03-05 1057 ctx->fb.hash_req.nbytes = total_len;
6ad822cec22644 Pavitrakumar M 2024-03-05 1058 ctx->fb.hash_req.src = req->src;
6ad822cec22644 Pavitrakumar M 2024-03-05 1059 ctx->fb.hash_req.result = req->result;
6ad822cec22644 Pavitrakumar M 2024-03-05 1060
6ad822cec22644 Pavitrakumar M 2024-03-05 1061 return crypto_ahash_digest(&ctx->fb.hash_req);
6ad822cec22644 Pavitrakumar M 2024-03-05 1062 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1063
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
2024-03-05 11:28 ` [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file Pavitrakumar M
` (2 preceding siblings ...)
2024-03-06 6:43 ` kernel test robot
@ 2024-03-06 7:26 ` kernel test robot
2024-03-07 14:24 ` Dan Carpenter
` (2 subsequent siblings)
6 siblings, 0 replies; 19+ messages in thread
From: kernel test robot @ 2024-03-06 7:26 UTC (permalink / raw)
To: Pavitrakumar M, herbert, linux-crypto
Cc: oe-kbuild-all, Ruud.Derwig, manjunath.hadli, Pavitrakumar M
Hi Pavitrakumar,
kernel test robot noticed the following build warnings:
[auto build test WARNING on herbert-cryptodev-2.6/master]
[also build test WARNING on herbert-crypto-2.6/master linus/master v6.8-rc7 next-20240305]
[cannot apply to xilinx-xlnx/master]
[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/Pavitrakumar-M/Add-SPAcc-driver-to-Linux-kernel/20240305-193337
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20240305112831.3380896-5-pavitrakumarm%40vayavyalabs.com
patch subject: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
config: x86_64-randconfig-122-20240306 (https://download.01.org/0day-ci/archive/20240306/202403061522.phoAmD4a-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240306/202403061522.phoAmD4a-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/202403061522.phoAmD4a-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/crypto/dwc-spacc/spacc_interrupt.c:17:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:17:36: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:17:36: sparse: got void *
>> drivers/crypto/dwc-spacc/spacc_interrupt.c:21:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:21:17: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:21:17: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:46:63: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:46:63: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:46:63: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:54:63: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:54:63: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:54:63: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:65:25: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:65:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:65:25: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:82:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:82:33: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:82:33: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:97:35: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:97:35: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:97:35: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:108:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:108:36: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:108:36: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:112:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:112:39: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:112:39: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:114:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:114:36: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:114:36: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:116:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:116:47: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:116:47: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:121:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:121:36: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:121:36: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:123:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:123:39: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:123:39: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:130:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:130:36: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:130:36: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:139:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:139:36: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:139:36: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:140:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:140:36: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:140:36: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:142:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:142:47: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:142:47: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:147:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:147:36: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:147:36: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:149:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:149:47: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:149:47: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:154:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:154:36: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:154:36: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:156:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:156:47: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:156:47: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:161:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:161:36: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:161:36: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:163:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:163:47: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:163:47: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:168:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:168:36: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:168:36: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:170:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:170:47: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:170:47: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:175:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:175:36: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:175:36: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:177:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:177:47: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:177:47: sparse: got void *
drivers/crypto/dwc-spacc/spacc_interrupt.c:182:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_interrupt.c:182:33: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_interrupt.c:182:33: sparse: got void *
>> drivers/crypto/dwc-spacc/spacc_interrupt.c:180:6: sparse: sparse: symbol 'spacc_disable_int' was not declared. Should it be static?
--
>> drivers/crypto/dwc-spacc/spacc_device.c:106:18: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *baseaddr @@ got void [noderef] __iomem * @@
drivers/crypto/dwc-spacc/spacc_device.c:106:18: sparse: expected void *baseaddr
drivers/crypto/dwc-spacc/spacc_device.c:106:18: sparse: got void [noderef] __iomem *
>> drivers/crypto/dwc-spacc/spacc_device.c:227:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_device.c:227:36: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_device.c:227:36: sparse: got void *
>> drivers/crypto/dwc-spacc/spacc_device.c:229:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_device.c:229:36: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_device.c:229:36: sparse: got void *
drivers/crypto/dwc-spacc/spacc_device.c:233:28: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_device.c:233:28: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_device.c:233:28: sparse: got void *
--
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:15:17: sparse: sparse: symbol 'possible_ciphers' was not declared. Should it be static?
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:153:50: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_skcipher.c:153:50: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_skcipher.c:153:50: sparse: got void *
drivers/crypto/dwc-spacc/spacc_skcipher.c:477:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_skcipher.c:477:44: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_skcipher.c:477:44: sparse: got void *
drivers/crypto/dwc-spacc/spacc_skcipher.c:492:51: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_skcipher.c:492:51: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_skcipher.c:492:51: sparse: got void *
drivers/crypto/dwc-spacc/spacc_skcipher.c:509:51: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_skcipher.c:509:51: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_skcipher.c:509:51: sparse: got void *
drivers/crypto/dwc-spacc/spacc_skcipher.c:526:51: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_skcipher.c:526:51: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_skcipher.c:526:51: sparse: got void *
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:651:21: sparse: sparse: symbol 'spacc_skcipher_alg' was not declared. Should it be static?
drivers/crypto/dwc-spacc/spacc_skcipher.c: note: in included file (through include/linux/smp.h, include/linux/lockdep.h, include/linux/spinlock.h, ...):
include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true
--
>> drivers/crypto/dwc-spacc/spacc_aead.c:522:50: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_aead.c:522:50: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_aead.c:522:50: sparse: got void *
>> drivers/crypto/dwc-spacc/spacc_aead.c:1246:17: sparse: sparse: symbol 'spacc_aead_algs' was not declared. Should it be static?
drivers/crypto/dwc-spacc/spacc_aead.c: note: in included file (through include/linux/swait.h, include/linux/completion.h, include/linux/crypto.h, ...):
include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true
--
>> drivers/crypto/dwc-spacc/spacc_ahash.c:1106:24: sparse: sparse: symbol 'spacc_hash_template' was not declared. Should it be static?
drivers/crypto/dwc-spacc/spacc_ahash.c: note: in included file (through include/linux/swait.h, include/linux/completion.h, include/linux/crypto.h, ...):
include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true
include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true
--
>> drivers/crypto/dwc-spacc/spacc_hal.c:25:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_hal.c:25:25: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_hal.c:25:25: sparse: got void *
>> drivers/crypto/dwc-spacc/spacc_hal.c:46:32: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_hal.c:46:32: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_hal.c:46:32: sparse: got void *
drivers/crypto/dwc-spacc/spacc_hal.c:48:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_hal.c:48:23: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_hal.c:48:23: sparse: got void *
drivers/crypto/dwc-spacc/spacc_hal.c:57:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_hal.c:57:25: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_hal.c:57:25: sparse: got void *
drivers/crypto/dwc-spacc/spacc_hal.c:66:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_hal.c:66:25: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_hal.c:66:25: sparse: got void *
drivers/crypto/dwc-spacc/spacc_hal.c:86:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_hal.c:86:33: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_hal.c:86:33: sparse: got void *
drivers/crypto/dwc-spacc/spacc_hal.c:92:31: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/crypto/dwc-spacc/spacc_hal.c:92:31: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_hal.c:92:31: sparse: got void *
>> drivers/crypto/dwc-spacc/spacc_hal.c:103:32: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char *addr @@
drivers/crypto/dwc-spacc/spacc_hal.c:103:32: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_hal.c:103:32: sparse: got unsigned char *addr
>> drivers/crypto/dwc-spacc/spacc_hal.c:113:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got unsigned char *addr @@
drivers/crypto/dwc-spacc/spacc_hal.c:113:32: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_hal.c:113:32: sparse: got unsigned char *addr
drivers/crypto/dwc-spacc/spacc_hal.c:130:27: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char *addr @@
drivers/crypto/dwc-spacc/spacc_hal.c:130:27: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_hal.c:130:27: sparse: got unsigned char *addr
drivers/crypto/dwc-spacc/spacc_hal.c:142:27: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got unsigned char *addr @@
drivers/crypto/dwc-spacc/spacc_hal.c:142:27: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_hal.c:142:27: sparse: got unsigned char *addr
drivers/crypto/dwc-spacc/spacc_hal.c:163:27: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char *addr @@
drivers/crypto/dwc-spacc/spacc_hal.c:163:27: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_hal.c:163:27: sparse: got unsigned char *addr
drivers/crypto/dwc-spacc/spacc_hal.c:175:27: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got unsigned char *addr @@
drivers/crypto/dwc-spacc/spacc_hal.c:175:27: sparse: expected void const volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_hal.c:175:27: sparse: got unsigned char *addr
>> drivers/crypto/dwc-spacc/spacc_hal.c:212:21: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *addr @@
drivers/crypto/dwc-spacc/spacc_hal.c:212:21: sparse: expected void volatile [noderef] __iomem *addr
drivers/crypto/dwc-spacc/spacc_hal.c:212:21: sparse: got void *addr
vim +17 drivers/crypto/dwc-spacc/spacc_interrupt.c
6ad822cec22644 Pavitrakumar M 2024-03-05 8
6ad822cec22644 Pavitrakumar M 2024-03-05 9 uint32_t spacc_process_irq(struct spacc_device *spacc)
6ad822cec22644 Pavitrakumar M 2024-03-05 10 {
6ad822cec22644 Pavitrakumar M 2024-03-05 11 u32 temp, tempreg;
6ad822cec22644 Pavitrakumar M 2024-03-05 12 int x, cmd_max;
6ad822cec22644 Pavitrakumar M 2024-03-05 13 unsigned long lock_flag;
6ad822cec22644 Pavitrakumar M 2024-03-05 14
6ad822cec22644 Pavitrakumar M 2024-03-05 15 spin_lock_irqsave(&spacc->lock, lock_flag);
6ad822cec22644 Pavitrakumar M 2024-03-05 16
6ad822cec22644 Pavitrakumar M 2024-03-05 @17 temp = readl(spacc->regmap + SPACC_REG_IRQ_STAT);
6ad822cec22644 Pavitrakumar M 2024-03-05 18
6ad822cec22644 Pavitrakumar M 2024-03-05 19 /* clear interrupt pin and run registered callback */
6ad822cec22644 Pavitrakumar M 2024-03-05 20 if (temp & SPACC_IRQ_STAT_STAT) {
6ad822cec22644 Pavitrakumar M 2024-03-05 @21 SPACC_IRQ_STAT_CLEAR_STAT(spacc);
6ad822cec22644 Pavitrakumar M 2024-03-05 22 if (spacc->op_mode == SPACC_OP_MODE_IRQ) {
6ad822cec22644 Pavitrakumar M 2024-03-05 23 spacc->config.fifo_cnt <<= 2;
6ad822cec22644 Pavitrakumar M 2024-03-05 24 if (spacc->config.fifo_cnt >=
6ad822cec22644 Pavitrakumar M 2024-03-05 25 spacc->config.stat_fifo_depth)
6ad822cec22644 Pavitrakumar M 2024-03-05 26 spacc->config.fifo_cnt =
6ad822cec22644 Pavitrakumar M 2024-03-05 27 spacc->config.stat_fifo_depth;
6ad822cec22644 Pavitrakumar M 2024-03-05 28
6ad822cec22644 Pavitrakumar M 2024-03-05 29 /* update fifo count to allow more stati to pile up*/
6ad822cec22644 Pavitrakumar M 2024-03-05 30 spacc_irq_stat_enable(spacc, spacc->config.fifo_cnt);
6ad822cec22644 Pavitrakumar M 2024-03-05 31 /* reenable CMD0 empty interrupt*/
6ad822cec22644 Pavitrakumar M 2024-03-05 32 spacc_irq_cmdx_enable(spacc, 0, 0);
6ad822cec22644 Pavitrakumar M 2024-03-05 33 } else if (spacc->op_mode == SPACC_OP_MODE_WD) {
6ad822cec22644 Pavitrakumar M 2024-03-05 34 }
6ad822cec22644 Pavitrakumar M 2024-03-05 35 if (spacc->irq_cb_stat)
6ad822cec22644 Pavitrakumar M 2024-03-05 36 spacc->irq_cb_stat(spacc);
6ad822cec22644 Pavitrakumar M 2024-03-05 37 }
6ad822cec22644 Pavitrakumar M 2024-03-05 38
6ad822cec22644 Pavitrakumar M 2024-03-05 39 /* Watchdog IRQ */
6ad822cec22644 Pavitrakumar M 2024-03-05 40 if (spacc->op_mode == SPACC_OP_MODE_WD) {
6ad822cec22644 Pavitrakumar M 2024-03-05 41 if (temp & SPACC_IRQ_STAT_STAT_WD) {
6ad822cec22644 Pavitrakumar M 2024-03-05 42 if (++spacc->wdcnt == SPACC_WD_LIMIT) {
6ad822cec22644 Pavitrakumar M 2024-03-05 43 /* this happens when you get too many IRQs that
6ad822cec22644 Pavitrakumar M 2024-03-05 44 * go unanswered
6ad822cec22644 Pavitrakumar M 2024-03-05 45 */
6ad822cec22644 Pavitrakumar M 2024-03-05 46 tempreg = readl(spacc->regmap +
6ad822cec22644 Pavitrakumar M 2024-03-05 47 SPACC_REG_IRQ_EN);
6ad822cec22644 Pavitrakumar M 2024-03-05 48 spacc_irq_stat_wd_disable(spacc);
6ad822cec22644 Pavitrakumar M 2024-03-05 49 /* we set the STAT CNT to 1 so that every job
6ad822cec22644 Pavitrakumar M 2024-03-05 50 * generates an IRQ now
6ad822cec22644 Pavitrakumar M 2024-03-05 51 */
6ad822cec22644 Pavitrakumar M 2024-03-05 52 spacc_irq_stat_enable(spacc, 1);
6ad822cec22644 Pavitrakumar M 2024-03-05 53 spacc->op_mode = SPACC_OP_MODE_IRQ;
6ad822cec22644 Pavitrakumar M 2024-03-05 54 tempreg = readl(spacc->regmap +
6ad822cec22644 Pavitrakumar M 2024-03-05 55 SPACC_REG_IRQ_EN);
6ad822cec22644 Pavitrakumar M 2024-03-05 56 } else if (spacc->config.wd_timer < (0xFFFFFFUL >> 4)) {
6ad822cec22644 Pavitrakumar M 2024-03-05 57 /* if the timer isn't too high lets bump it up
6ad822cec22644 Pavitrakumar M 2024-03-05 58 * a bit so as to give the IRQ a chance to
6ad822cec22644 Pavitrakumar M 2024-03-05 59 * reply
6ad822cec22644 Pavitrakumar M 2024-03-05 60 */
6ad822cec22644 Pavitrakumar M 2024-03-05 61 spacc_set_wd_count(spacc,
6ad822cec22644 Pavitrakumar M 2024-03-05 62 spacc->config.wd_timer << 4);
6ad822cec22644 Pavitrakumar M 2024-03-05 63 }
6ad822cec22644 Pavitrakumar M 2024-03-05 64
6ad822cec22644 Pavitrakumar M 2024-03-05 65 SPACC_IRQ_STAT_CLEAR_STAT_WD(spacc);
6ad822cec22644 Pavitrakumar M 2024-03-05 66 if (spacc->irq_cb_stat_wd)
6ad822cec22644 Pavitrakumar M 2024-03-05 67 spacc->irq_cb_stat_wd(spacc);
6ad822cec22644 Pavitrakumar M 2024-03-05 68 }
6ad822cec22644 Pavitrakumar M 2024-03-05 69 }
6ad822cec22644 Pavitrakumar M 2024-03-05 70
6ad822cec22644 Pavitrakumar M 2024-03-05 71 if (spacc->op_mode == SPACC_OP_MODE_IRQ) {
6ad822cec22644 Pavitrakumar M 2024-03-05 72 cmd_max = (spacc->config.is_qos ? SPACC_CMDX_MAX_QOS :
6ad822cec22644 Pavitrakumar M 2024-03-05 73 SPACC_CMDX_MAX);
6ad822cec22644 Pavitrakumar M 2024-03-05 74 for (x = 0; x < cmd_max; x++) {
6ad822cec22644 Pavitrakumar M 2024-03-05 75 if (temp & SPACC_IRQ_STAT_CMDX(x)) {
6ad822cec22644 Pavitrakumar M 2024-03-05 76 spacc->config.fifo_cnt = 1;
6ad822cec22644 Pavitrakumar M 2024-03-05 77 /* disable CMD0 interrupt since STAT=1 */
6ad822cec22644 Pavitrakumar M 2024-03-05 78 spacc_irq_cmdx_disable(spacc, x);
6ad822cec22644 Pavitrakumar M 2024-03-05 79 spacc_irq_stat_enable(spacc,
6ad822cec22644 Pavitrakumar M 2024-03-05 80 spacc->config.fifo_cnt);
6ad822cec22644 Pavitrakumar M 2024-03-05 81
6ad822cec22644 Pavitrakumar M 2024-03-05 82 SPACC_IRQ_STAT_CLEAR_CMDX(spacc, x);
6ad822cec22644 Pavitrakumar M 2024-03-05 83 /* run registered callback */
6ad822cec22644 Pavitrakumar M 2024-03-05 84 if (spacc->irq_cb_cmdx)
6ad822cec22644 Pavitrakumar M 2024-03-05 85 spacc->irq_cb_cmdx(spacc, x);
6ad822cec22644 Pavitrakumar M 2024-03-05 86 }
6ad822cec22644 Pavitrakumar M 2024-03-05 87 }
6ad822cec22644 Pavitrakumar M 2024-03-05 88 }
6ad822cec22644 Pavitrakumar M 2024-03-05 89
6ad822cec22644 Pavitrakumar M 2024-03-05 90 spin_unlock_irqrestore(&spacc->lock, lock_flag);
6ad822cec22644 Pavitrakumar M 2024-03-05 91
6ad822cec22644 Pavitrakumar M 2024-03-05 92 return temp;
6ad822cec22644 Pavitrakumar M 2024-03-05 93 }
6ad822cec22644 Pavitrakumar M 2024-03-05 94
6ad822cec22644 Pavitrakumar M 2024-03-05 95 void spacc_set_wd_count(struct spacc_device *spacc, uint32_t val)
6ad822cec22644 Pavitrakumar M 2024-03-05 96 {
6ad822cec22644 Pavitrakumar M 2024-03-05 97 writel(val, spacc->regmap + SPACC_REG_STAT_WD_CTRL);
6ad822cec22644 Pavitrakumar M 2024-03-05 98 }
6ad822cec22644 Pavitrakumar M 2024-03-05 99
6ad822cec22644 Pavitrakumar M 2024-03-05 100 /* cmdx and cmdx_cnt depend on HW config */
6ad822cec22644 Pavitrakumar M 2024-03-05 101 /* cmdx can be 0, 1 or 2 */
6ad822cec22644 Pavitrakumar M 2024-03-05 102 /* cmdx_cnt must be 2^6 or less */
6ad822cec22644 Pavitrakumar M 2024-03-05 103 void spacc_irq_cmdx_enable(struct spacc_device *spacc, int cmdx, int cmdx_cnt)
6ad822cec22644 Pavitrakumar M 2024-03-05 104 {
6ad822cec22644 Pavitrakumar M 2024-03-05 105 u32 temp;
6ad822cec22644 Pavitrakumar M 2024-03-05 106
6ad822cec22644 Pavitrakumar M 2024-03-05 107 /* read the reg, clear the bit range and set the new value */
6ad822cec22644 Pavitrakumar M 2024-03-05 108 temp = readl(spacc->regmap + SPACC_REG_IRQ_CTRL) &
6ad822cec22644 Pavitrakumar M 2024-03-05 109 (~SPACC_IRQ_CTRL_CMDX_CNT_MASK(cmdx));
6ad822cec22644 Pavitrakumar M 2024-03-05 110 temp |= SPACC_IRQ_CTRL_CMDX_CNT_SET(cmdx, cmdx_cnt);
6ad822cec22644 Pavitrakumar M 2024-03-05 111 writel(temp | SPACC_IRQ_CTRL_CMDX_CNT_SET(cmdx, cmdx_cnt),
6ad822cec22644 Pavitrakumar M 2024-03-05 112 spacc->regmap + SPACC_REG_IRQ_CTRL);
6ad822cec22644 Pavitrakumar M 2024-03-05 113
6ad822cec22644 Pavitrakumar M 2024-03-05 114 writel(readl(spacc->regmap + SPACC_REG_IRQ_EN) |
6ad822cec22644 Pavitrakumar M 2024-03-05 115 SPACC_IRQ_EN_CMD(cmdx),
6ad822cec22644 Pavitrakumar M 2024-03-05 116 spacc->regmap + SPACC_REG_IRQ_EN);
6ad822cec22644 Pavitrakumar M 2024-03-05 117 }
6ad822cec22644 Pavitrakumar M 2024-03-05 118
6ad822cec22644 Pavitrakumar M 2024-03-05 119 void spacc_irq_cmdx_disable(struct spacc_device *spacc, int cmdx)
6ad822cec22644 Pavitrakumar M 2024-03-05 120 {
6ad822cec22644 Pavitrakumar M 2024-03-05 121 writel(readl(spacc->regmap + SPACC_REG_IRQ_EN) &
6ad822cec22644 Pavitrakumar M 2024-03-05 122 (~SPACC_IRQ_EN_CMD(cmdx)),
6ad822cec22644 Pavitrakumar M 2024-03-05 123 spacc->regmap + SPACC_REG_IRQ_EN);
6ad822cec22644 Pavitrakumar M 2024-03-05 124 }
6ad822cec22644 Pavitrakumar M 2024-03-05 125
6ad822cec22644 Pavitrakumar M 2024-03-05 126 void spacc_irq_stat_enable(struct spacc_device *spacc, int stat_cnt)
6ad822cec22644 Pavitrakumar M 2024-03-05 127 {
6ad822cec22644 Pavitrakumar M 2024-03-05 128 u32 temp;
6ad822cec22644 Pavitrakumar M 2024-03-05 129
6ad822cec22644 Pavitrakumar M 2024-03-05 130 temp = readl(spacc->regmap + SPACC_REG_IRQ_CTRL);
6ad822cec22644 Pavitrakumar M 2024-03-05 131 if (spacc->config.is_qos) {
6ad822cec22644 Pavitrakumar M 2024-03-05 132 temp &= (~SPACC_IRQ_CTRL_STAT_CNT_MASK_QOS);
6ad822cec22644 Pavitrakumar M 2024-03-05 133 temp |= SPACC_IRQ_CTRL_STAT_CNT_SET_QOS(stat_cnt);
6ad822cec22644 Pavitrakumar M 2024-03-05 134 } else {
6ad822cec22644 Pavitrakumar M 2024-03-05 135 temp &= (~SPACC_IRQ_CTRL_STAT_CNT_MASK);
6ad822cec22644 Pavitrakumar M 2024-03-05 136 temp |= SPACC_IRQ_CTRL_STAT_CNT_SET(stat_cnt);
6ad822cec22644 Pavitrakumar M 2024-03-05 137 }
6ad822cec22644 Pavitrakumar M 2024-03-05 138
6ad822cec22644 Pavitrakumar M 2024-03-05 139 writel(temp, spacc->regmap + SPACC_REG_IRQ_CTRL);
6ad822cec22644 Pavitrakumar M 2024-03-05 140 writel(readl(spacc->regmap + SPACC_REG_IRQ_EN) |
6ad822cec22644 Pavitrakumar M 2024-03-05 141 SPACC_IRQ_EN_STAT,
6ad822cec22644 Pavitrakumar M 2024-03-05 142 spacc->regmap + SPACC_REG_IRQ_EN);
6ad822cec22644 Pavitrakumar M 2024-03-05 143 }
6ad822cec22644 Pavitrakumar M 2024-03-05 144
6ad822cec22644 Pavitrakumar M 2024-03-05 145 void spacc_irq_stat_disable(struct spacc_device *spacc)
6ad822cec22644 Pavitrakumar M 2024-03-05 146 {
6ad822cec22644 Pavitrakumar M 2024-03-05 147 writel(readl(spacc->regmap + SPACC_REG_IRQ_EN) &
6ad822cec22644 Pavitrakumar M 2024-03-05 148 (~SPACC_IRQ_EN_STAT),
6ad822cec22644 Pavitrakumar M 2024-03-05 149 spacc->regmap + SPACC_REG_IRQ_EN);
6ad822cec22644 Pavitrakumar M 2024-03-05 150 }
6ad822cec22644 Pavitrakumar M 2024-03-05 151
6ad822cec22644 Pavitrakumar M 2024-03-05 152 void spacc_irq_stat_wd_enable(struct spacc_device *spacc)
6ad822cec22644 Pavitrakumar M 2024-03-05 153 {
6ad822cec22644 Pavitrakumar M 2024-03-05 154 writel(readl(spacc->regmap + SPACC_REG_IRQ_EN) |
6ad822cec22644 Pavitrakumar M 2024-03-05 155 SPACC_IRQ_EN_STAT_WD,
6ad822cec22644 Pavitrakumar M 2024-03-05 156 spacc->regmap + SPACC_REG_IRQ_EN);
6ad822cec22644 Pavitrakumar M 2024-03-05 157 }
6ad822cec22644 Pavitrakumar M 2024-03-05 158
6ad822cec22644 Pavitrakumar M 2024-03-05 159 void spacc_irq_stat_wd_disable(struct spacc_device *spacc)
6ad822cec22644 Pavitrakumar M 2024-03-05 160 {
6ad822cec22644 Pavitrakumar M 2024-03-05 161 writel(readl(spacc->regmap + SPACC_REG_IRQ_EN) &
6ad822cec22644 Pavitrakumar M 2024-03-05 162 (~SPACC_IRQ_EN_STAT_WD),
6ad822cec22644 Pavitrakumar M 2024-03-05 163 spacc->regmap + SPACC_REG_IRQ_EN);
6ad822cec22644 Pavitrakumar M 2024-03-05 164 }
6ad822cec22644 Pavitrakumar M 2024-03-05 165
6ad822cec22644 Pavitrakumar M 2024-03-05 166 void spacc_irq_glbl_enable(struct spacc_device *spacc)
6ad822cec22644 Pavitrakumar M 2024-03-05 167 {
6ad822cec22644 Pavitrakumar M 2024-03-05 168 writel(readl(spacc->regmap + SPACC_REG_IRQ_EN) |
6ad822cec22644 Pavitrakumar M 2024-03-05 169 SPACC_IRQ_EN_GLBL,
6ad822cec22644 Pavitrakumar M 2024-03-05 170 spacc->regmap + SPACC_REG_IRQ_EN);
6ad822cec22644 Pavitrakumar M 2024-03-05 171 }
6ad822cec22644 Pavitrakumar M 2024-03-05 172
6ad822cec22644 Pavitrakumar M 2024-03-05 173 void spacc_irq_glbl_disable(struct spacc_device *spacc)
6ad822cec22644 Pavitrakumar M 2024-03-05 174 {
6ad822cec22644 Pavitrakumar M 2024-03-05 @175 writel(readl(spacc->regmap + SPACC_REG_IRQ_EN) &
6ad822cec22644 Pavitrakumar M 2024-03-05 176 (~SPACC_IRQ_EN_GLBL),
6ad822cec22644 Pavitrakumar M 2024-03-05 177 spacc->regmap + SPACC_REG_IRQ_EN);
6ad822cec22644 Pavitrakumar M 2024-03-05 178 }
6ad822cec22644 Pavitrakumar M 2024-03-05 179
6ad822cec22644 Pavitrakumar M 2024-03-05 @180 void spacc_disable_int (struct spacc_device *spacc)
6ad822cec22644 Pavitrakumar M 2024-03-05 181 {
6ad822cec22644 Pavitrakumar M 2024-03-05 182 writel(0, spacc->regmap + SPACC_REG_IRQ_EN);
6ad822cec22644 Pavitrakumar M 2024-03-05 183 }
6ad822cec22644 Pavitrakumar M 2024-03-05 184
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
2024-03-05 11:28 ` [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file Pavitrakumar M
` (3 preceding siblings ...)
2024-03-06 7:26 ` kernel test robot
@ 2024-03-07 14:24 ` Dan Carpenter
2024-03-11 7:40 ` Dan Carpenter
2024-03-13 10:43 ` kernel test robot
6 siblings, 0 replies; 19+ messages in thread
From: Dan Carpenter @ 2024-03-07 14:24 UTC (permalink / raw)
To: oe-kbuild, Pavitrakumar M, herbert, linux-crypto
Cc: lkp, oe-kbuild-all, Ruud.Derwig, manjunath.hadli, Pavitrakumar M
Hi Pavitrakumar,
kernel test robot noticed the following build warnings:
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Pavitrakumar-M/Add-SPAcc-driver-to-Linux-kernel/20240305-193337
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20240305112831.3380896-5-pavitrakumarm%40vayavyalabs.com
patch subject: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
config: m68k-randconfig-r081-20240307 (https://download.01.org/0day-ci/archive/20240307/202403072256.em3Fk3At-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 13.2.0
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>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202403072256.em3Fk3At-lkp@intel.com/
New smatch warnings:
drivers/crypto/dwc-spacc/spacc_ahash.c:1057 spacc_hash_digest() error: uninitialized symbol 'total_len'.
Old smatch warnings:
drivers/crypto/dwc-spacc/spacc_ahash.c:271 spacc_hash_init_dma() error: uninitialized symbol 'sgl_buffer'.
vim +/total_len +1057 drivers/crypto/dwc-spacc/spacc_ahash.c
6ad822cec22644 Pavitrakumar M 2024-03-05 981
6ad822cec22644 Pavitrakumar M 2024-03-05 982 static int spacc_hash_digest(struct ahash_request *req)
6ad822cec22644 Pavitrakumar M 2024-03-05 983 {
6ad822cec22644 Pavitrakumar M 2024-03-05 984 int final = 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 985 int rc, total_len;
6ad822cec22644 Pavitrakumar M 2024-03-05 986 struct crypto_ahash *reqtfm = crypto_ahash_reqtfm(req);
6ad822cec22644 Pavitrakumar M 2024-03-05 987 struct spacc_crypto_ctx *tctx = crypto_ahash_ctx(reqtfm);
6ad822cec22644 Pavitrakumar M 2024-03-05 988 struct spacc_crypto_reqctx *ctx = ahash_request_ctx(req);
6ad822cec22644 Pavitrakumar M 2024-03-05 989 struct spacc_priv *priv = dev_get_drvdata(tctx->dev);
6ad822cec22644 Pavitrakumar M 2024-03-05 990
6ad822cec22644 Pavitrakumar M 2024-03-05 991 if (tctx->flag_ppp) {
6ad822cec22644 Pavitrakumar M 2024-03-05 992 /* from finup */
6ad822cec22644 Pavitrakumar M 2024-03-05 993 ctx->single_shot = 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 994 ctx->final_part_pck = 1;
6ad822cec22644 Pavitrakumar M 2024-03-05 995 final = 2;
6ad822cec22644 Pavitrakumar M 2024-03-05 996 } else {
6ad822cec22644 Pavitrakumar M 2024-03-05 997 /* direct single shot digest call */
6ad822cec22644 Pavitrakumar M 2024-03-05 998 ctx->single_shot = 1;
6ad822cec22644 Pavitrakumar M 2024-03-05 999 ctx->rem_len = 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 1000 ctx->total_nents = sg_nents(req->src);
6ad822cec22644 Pavitrakumar M 2024-03-05 1001 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1002
6ad822cec22644 Pavitrakumar M 2024-03-05 1003 if (tctx->handle < 0 || !tctx->ctx_valid ||
6ad822cec22644 Pavitrakumar M 2024-03-05 1004 req->nbytes > priv->max_msg_len)
6ad822cec22644 Pavitrakumar M 2024-03-05 1005 goto fallback;
"total_len" not intialized for these gotos
6ad822cec22644 Pavitrakumar M 2024-03-05 1006
6ad822cec22644 Pavitrakumar M 2024-03-05 1007 rc = spacc_hash_init_dma(tctx->dev, req, final);
6ad822cec22644 Pavitrakumar M 2024-03-05 1008 if (rc < 0)
6ad822cec22644 Pavitrakumar M 2024-03-05 1009 goto fallback;
6ad822cec22644 Pavitrakumar M 2024-03-05 1010
6ad822cec22644 Pavitrakumar M 2024-03-05 1011 if (rc == 0)
6ad822cec22644 Pavitrakumar M 2024-03-05 1012 return 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 1013
6ad822cec22644 Pavitrakumar M 2024-03-05 1014 if (final) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1015 if (ctx->total_nents) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1016 /* INIT-UPDATE-UPDATE-FINUP/FINAL */
6ad822cec22644 Pavitrakumar M 2024-03-05 1017 total_len = tctx->ppp_sgl[0].length;
6ad822cec22644 Pavitrakumar M 2024-03-05 1018 } else if (req->src->length == 0 && ctx->total_nents == 0) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1019 /* zero msg handling */
6ad822cec22644 Pavitrakumar M 2024-03-05 1020 total_len = 0;
6ad822cec22644 Pavitrakumar M 2024-03-05 1021 } else {
6ad822cec22644 Pavitrakumar M 2024-03-05 1022 /* handle INIT-FINUP sequence, process req->nbytes */
6ad822cec22644 Pavitrakumar M 2024-03-05 1023 total_len = req->nbytes;
6ad822cec22644 Pavitrakumar M 2024-03-05 1024 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1025
6ad822cec22644 Pavitrakumar M 2024-03-05 1026 rc = spacc_packet_enqueue_ddt(&priv->spacc, ctx->acb.new_handle,
6ad822cec22644 Pavitrakumar M 2024-03-05 1027 &ctx->src, &ctx->dst, total_len,
6ad822cec22644 Pavitrakumar M 2024-03-05 1028 0, total_len, 0, 0, 0);
6ad822cec22644 Pavitrakumar M 2024-03-05 1029 } else {
6ad822cec22644 Pavitrakumar M 2024-03-05 1030 rc = spacc_packet_enqueue_ddt(&priv->spacc, ctx->acb.new_handle,
6ad822cec22644 Pavitrakumar M 2024-03-05 1031 &ctx->src, &ctx->dst, req->nbytes,
6ad822cec22644 Pavitrakumar M 2024-03-05 1032 0, req->nbytes, 0, 0, 0);
6ad822cec22644 Pavitrakumar M 2024-03-05 1033 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1034
6ad822cec22644 Pavitrakumar M 2024-03-05 1035 if (rc < 0) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1036 spacc_hash_cleanup_dma(tctx->dev, req);
6ad822cec22644 Pavitrakumar M 2024-03-05 1037 spacc_close(&priv->spacc, ctx->acb.new_handle);
6ad822cec22644 Pavitrakumar M 2024-03-05 1038
6ad822cec22644 Pavitrakumar M 2024-03-05 1039 if (rc != -EBUSY) {
6ad822cec22644 Pavitrakumar M 2024-03-05 1040 pr_debug("Failed to enqueue job, ERR: %d\n", rc);
6ad822cec22644 Pavitrakumar M 2024-03-05 1041 return rc;
6ad822cec22644 Pavitrakumar M 2024-03-05 1042 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1043
6ad822cec22644 Pavitrakumar M 2024-03-05 1044 if (!(req->base.flags & CRYPTO_TFM_REQ_MAY_BACKLOG))
6ad822cec22644 Pavitrakumar M 2024-03-05 1045 return -EBUSY;
6ad822cec22644 Pavitrakumar M 2024-03-05 1046
6ad822cec22644 Pavitrakumar M 2024-03-05 1047 goto fallback;
6ad822cec22644 Pavitrakumar M 2024-03-05 1048 }
6ad822cec22644 Pavitrakumar M 2024-03-05 1049
6ad822cec22644 Pavitrakumar M 2024-03-05 1050 return -EINPROGRESS;
6ad822cec22644 Pavitrakumar M 2024-03-05 1051
6ad822cec22644 Pavitrakumar M 2024-03-05 1052 fallback:
6ad822cec22644 Pavitrakumar M 2024-03-05 1053 /* Start from scratch as init is not called before digest */
6ad822cec22644 Pavitrakumar M 2024-03-05 1054 ctx->fb.hash_req.base = req->base;
6ad822cec22644 Pavitrakumar M 2024-03-05 1055 ahash_request_set_tfm(&ctx->fb.hash_req, tctx->fb.hash);
6ad822cec22644 Pavitrakumar M 2024-03-05 1056
6ad822cec22644 Pavitrakumar M 2024-03-05 @1057 ctx->fb.hash_req.nbytes = total_len;
^^^^^^^^^
6ad822cec22644 Pavitrakumar M 2024-03-05 1058 ctx->fb.hash_req.src = req->src;
6ad822cec22644 Pavitrakumar M 2024-03-05 1059 ctx->fb.hash_req.result = req->result;
6ad822cec22644 Pavitrakumar M 2024-03-05 1060
6ad822cec22644 Pavitrakumar M 2024-03-05 1061 return crypto_ahash_digest(&ctx->fb.hash_req);
6ad822cec22644 Pavitrakumar M 2024-03-05 1062 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
2024-03-05 11:28 ` [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file Pavitrakumar M
` (4 preceding siblings ...)
2024-03-07 14:24 ` Dan Carpenter
@ 2024-03-11 7:40 ` Dan Carpenter
2024-03-13 10:43 ` kernel test robot
6 siblings, 0 replies; 19+ messages in thread
From: Dan Carpenter @ 2024-03-11 7:40 UTC (permalink / raw)
To: oe-kbuild, Pavitrakumar M, herbert, linux-crypto
Cc: lkp, oe-kbuild-all, Ruud.Derwig, manjunath.hadli, Pavitrakumar M
Hi Pavitrakumar,
kernel test robot noticed the following build warnings:
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Pavitrakumar-M/Add-SPAcc-driver-to-Linux-kernel/20240305-193337
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20240305112831.3380896-5-pavitrakumarm%40vayavyalabs.com
patch subject: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
config: i386-randconfig-141-20240308 (https://download.01.org/0day-ci/archive/20240311/202403111044.eqxBgcDl-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
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>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202403111044.eqxBgcDl-lkp@intel.com/
New smatch warnings:
drivers/crypto/dwc-spacc/spacc_skcipher.c:176 spacc_cipher_cb() warn: was && intended here instead of ||?
drivers/crypto/dwc-spacc/spacc_aead.c:1131 spacc_aead_process() error: uninitialized symbol 'ptaadsize'.
vim +176 drivers/crypto/dwc-spacc/spacc_skcipher.c
6ad822cec22644 Pavitrakumar M 2024-03-05 146 static void spacc_cipher_cb(void *spacc, void *tfm)
6ad822cec22644 Pavitrakumar M 2024-03-05 147 {
6ad822cec22644 Pavitrakumar M 2024-03-05 148 struct cipher_cb_data *cb = tfm;
6ad822cec22644 Pavitrakumar M 2024-03-05 149 int err = -1, rc;
6ad822cec22644 Pavitrakumar M 2024-03-05 150 int total_len;
6ad822cec22644 Pavitrakumar M 2024-03-05 151 struct spacc_crypto_reqctx *ctx = skcipher_request_ctx(cb->req);
6ad822cec22644 Pavitrakumar M 2024-03-05 152
6ad822cec22644 Pavitrakumar M 2024-03-05 153 u32 status_reg = readl(cb->spacc->regmap + SPACC_REG_STATUS);
6ad822cec22644 Pavitrakumar M 2024-03-05 154 u32 status_ret = (status_reg >> 24) & 0x03;
6ad822cec22644 Pavitrakumar M 2024-03-05 155
6ad822cec22644 Pavitrakumar M 2024-03-05 156 if (ctx->mode == CRYPTO_MODE_DES_CBC ||
6ad822cec22644 Pavitrakumar M 2024-03-05 157 ctx->mode == CRYPTO_MODE_3DES_CBC) {
6ad822cec22644 Pavitrakumar M 2024-03-05 158 rc = spacc_read_context(cb->spacc, cb->tctx->handle,
6ad822cec22644 Pavitrakumar M 2024-03-05 159 SPACC_CRYPTO_OPERATION, NULL, 0,
6ad822cec22644 Pavitrakumar M 2024-03-05 160 cb->req->iv, 8);
6ad822cec22644 Pavitrakumar M 2024-03-05 161 } else if (ctx->mode != CRYPTO_MODE_DES_ECB &&
6ad822cec22644 Pavitrakumar M 2024-03-05 162 ctx->mode != CRYPTO_MODE_3DES_ECB &&
6ad822cec22644 Pavitrakumar M 2024-03-05 163 ctx->mode != CRYPTO_MODE_SM4_ECB &&
6ad822cec22644 Pavitrakumar M 2024-03-05 164 ctx->mode != CRYPTO_MODE_AES_ECB &&
6ad822cec22644 Pavitrakumar M 2024-03-05 165 ctx->mode != CRYPTO_MODE_SM4_XTS &&
6ad822cec22644 Pavitrakumar M 2024-03-05 166 ctx->mode != CRYPTO_MODE_KASUMI_ECB) {
6ad822cec22644 Pavitrakumar M 2024-03-05 167 if (status_ret == 0x3) {
6ad822cec22644 Pavitrakumar M 2024-03-05 168 err = -EINVAL;
6ad822cec22644 Pavitrakumar M 2024-03-05 169 goto REQ_DST_CP_SKIP;
6ad822cec22644 Pavitrakumar M 2024-03-05 170 }
6ad822cec22644 Pavitrakumar M 2024-03-05 171 rc = spacc_read_context(cb->spacc, cb->tctx->handle,
6ad822cec22644 Pavitrakumar M 2024-03-05 172 SPACC_CRYPTO_OPERATION, NULL, 0,
6ad822cec22644 Pavitrakumar M 2024-03-05 173 cb->req->iv, 16);
6ad822cec22644 Pavitrakumar M 2024-03-05 174 }
6ad822cec22644 Pavitrakumar M 2024-03-05 175
6ad822cec22644 Pavitrakumar M 2024-03-05 @176 if (ctx->mode != CRYPTO_MODE_DES_ECB ||
6ad822cec22644 Pavitrakumar M 2024-03-05 177 ctx->mode != CRYPTO_MODE_DES_CBC ||
6ad822cec22644 Pavitrakumar M 2024-03-05 178 ctx->mode != CRYPTO_MODE_3DES_ECB ||
6ad822cec22644 Pavitrakumar M 2024-03-05 179 ctx->mode != CRYPTO_MODE_3DES_CBC) {
ctx->mode can't possibly be equal to multiple values at the same time
so this condition is always true. && was intended.
6ad822cec22644 Pavitrakumar M 2024-03-05 180 if (status_ret == 0x03) {
6ad822cec22644 Pavitrakumar M 2024-03-05 181 err = -EINVAL;
6ad822cec22644 Pavitrakumar M 2024-03-05 182 goto REQ_DST_CP_SKIP;
6ad822cec22644 Pavitrakumar M 2024-03-05 183 }
6ad822cec22644 Pavitrakumar M 2024-03-05 184 }
6ad822cec22644 Pavitrakumar M 2024-03-05 185
6ad822cec22644 Pavitrakumar M 2024-03-05 186 if (ctx->mode == CRYPTO_MODE_SM4_ECB && status_ret == 0x03) {
6ad822cec22644 Pavitrakumar M 2024-03-05 187 err = -EINVAL;
6ad822cec22644 Pavitrakumar M 2024-03-05 188 goto REQ_DST_CP_SKIP;
6ad822cec22644 Pavitrakumar M 2024-03-05 189 }
6ad822cec22644 Pavitrakumar M 2024-03-05 190
6ad822cec22644 Pavitrakumar M 2024-03-05 191 total_len = cb->req->cryptlen;
6ad822cec22644 Pavitrakumar M 2024-03-05 192 if (ctx->mode == CRYPTO_MODE_SM4_XTS && total_len != 16) {
6ad822cec22644 Pavitrakumar M 2024-03-05 193 if (status_ret == 0x03) {
6ad822cec22644 Pavitrakumar M 2024-03-05 194 err = -EINVAL;
6ad822cec22644 Pavitrakumar M 2024-03-05 195 goto REQ_DST_CP_SKIP;
6ad822cec22644 Pavitrakumar M 2024-03-05 196 }
6ad822cec22644 Pavitrakumar M 2024-03-05 197 }
6ad822cec22644 Pavitrakumar M 2024-03-05 198
6ad822cec22644 Pavitrakumar M 2024-03-05 199 dma_sync_sg_for_cpu(cb->tctx->dev, cb->req->dst, ctx->dst_nents,
6ad822cec22644 Pavitrakumar M 2024-03-05 200 DMA_FROM_DEVICE);
6ad822cec22644 Pavitrakumar M 2024-03-05 201
6ad822cec22644 Pavitrakumar M 2024-03-05 202 err = cb->spacc->job[cb->new_handle].job_err;
6ad822cec22644 Pavitrakumar M 2024-03-05 203 REQ_DST_CP_SKIP:
6ad822cec22644 Pavitrakumar M 2024-03-05 204 spacc_cipher_cleanup_dma(cb->tctx->dev, cb->req);
6ad822cec22644 Pavitrakumar M 2024-03-05 205 spacc_close(cb->spacc, cb->new_handle);
6ad822cec22644 Pavitrakumar M 2024-03-05 206
6ad822cec22644 Pavitrakumar M 2024-03-05 207 /* call complete */
6ad822cec22644 Pavitrakumar M 2024-03-05 208 skcipher_request_complete(cb->req, err);
6ad822cec22644 Pavitrakumar M 2024-03-05 209 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
2024-03-05 11:28 ` [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file Pavitrakumar M
` (5 preceding siblings ...)
2024-03-11 7:40 ` Dan Carpenter
@ 2024-03-13 10:43 ` kernel test robot
6 siblings, 0 replies; 19+ messages in thread
From: kernel test robot @ 2024-03-13 10:43 UTC (permalink / raw)
To: Pavitrakumar M, herbert, linux-crypto
Cc: oe-kbuild-all, Ruud.Derwig, manjunath.hadli, Pavitrakumar M
Hi Pavitrakumar,
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.8 next-20240313]
[cannot apply to xilinx-xlnx/master]
[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/Pavitrakumar-M/Add-SPAcc-driver-to-Linux-kernel/20240305-193337
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20240305112831.3380896-5-pavitrakumarm%40vayavyalabs.com
patch subject: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
config: csky-allyesconfig (https://download.01.org/0day-ci/archive/20240313/202403131810.zpesoKjk-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240313/202403131810.zpesoKjk-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/202403131810.zpesoKjk-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/crypto/dwc-spacc/spacc_core.c:2835:56: warning: 'reg_names' defined but not used [-Wunused-const-variable=]
2835 | static const struct { unsigned int addr; char *name; } reg_names[] = {
| ^~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:984:26: warning: 'names' defined but not used [-Wunused-const-variable=]
984 | static const char *const names[] = {
| ^~~~~
In file included from <command-line>:
In function 'spacc_sg_chain',
inlined from 'fixup_sg' at drivers/crypto/dwc-spacc/spacc_core.c:1115:4,
inlined from 'spacc_sgs_to_ddt' at drivers/crypto/dwc-spacc/spacc_core.c:1144:16:
>> include/linux/compiler_types.h:435:45: error: call to '__compiletime_assert_252' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_DEBUG_SG)
435 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:416:25: note: in definition of macro '__compiletime_assert'
416 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:435:9: note: in expansion of macro '_compiletime_assert'
435 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1082:9: note: in expansion of macro 'BUILD_BUG_ON'
1082 | BUILD_BUG_ON(IS_ENABLED(CONFIG_DEBUG_SG));
| ^~~~~~~~~~~~
In function 'spacc_sg_chain',
inlined from 'fixup_sg' at drivers/crypto/dwc-spacc/spacc_core.c:1115:4,
inlined from 'spacc_sg_to_ddt' at drivers/crypto/dwc-spacc/spacc_core.c:1252:15:
>> include/linux/compiler_types.h:435:45: error: call to '__compiletime_assert_252' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_DEBUG_SG)
435 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:416:25: note: in definition of macro '__compiletime_assert'
416 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:435:9: note: in expansion of macro '_compiletime_assert'
435 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1082:9: note: in expansion of macro 'BUILD_BUG_ON'
1082 | BUILD_BUG_ON(IS_ENABLED(CONFIG_DEBUG_SG));
| ^~~~~~~~~~~~
vim +/__compiletime_assert_252 +435 include/linux/compiler_types.h
eb5c2d4b45e3d2 Will Deacon 2020-07-21 421
eb5c2d4b45e3d2 Will Deacon 2020-07-21 422 #define _compiletime_assert(condition, msg, prefix, suffix) \
eb5c2d4b45e3d2 Will Deacon 2020-07-21 423 __compiletime_assert(condition, msg, prefix, suffix)
eb5c2d4b45e3d2 Will Deacon 2020-07-21 424
eb5c2d4b45e3d2 Will Deacon 2020-07-21 425 /**
eb5c2d4b45e3d2 Will Deacon 2020-07-21 426 * compiletime_assert - break build and emit msg if condition is false
eb5c2d4b45e3d2 Will Deacon 2020-07-21 427 * @condition: a compile-time constant condition to check
eb5c2d4b45e3d2 Will Deacon 2020-07-21 428 * @msg: a message to emit if condition is false
eb5c2d4b45e3d2 Will Deacon 2020-07-21 429 *
eb5c2d4b45e3d2 Will Deacon 2020-07-21 430 * In tradition of POSIX assert, this macro will break the build if the
eb5c2d4b45e3d2 Will Deacon 2020-07-21 431 * supplied condition is *false*, emitting the supplied error message if the
eb5c2d4b45e3d2 Will Deacon 2020-07-21 432 * compiler has support to do so.
eb5c2d4b45e3d2 Will Deacon 2020-07-21 433 */
eb5c2d4b45e3d2 Will Deacon 2020-07-21 434 #define compiletime_assert(condition, msg) \
eb5c2d4b45e3d2 Will Deacon 2020-07-21 @435 _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
eb5c2d4b45e3d2 Will Deacon 2020-07-21 436
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
2023-11-14 5:05 ` [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file Pavitrakumar M
@ 2023-11-15 2:00 ` kernel test robot
-1 siblings, 0 replies; 19+ messages in thread
From: kernel test robot @ 2023-11-14 13:42 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp
::::::
:::::: Manual check reason: "has kconfig file changed"
:::::: Manual check reason: "has Makefile file changed"
::::::
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20231114050525.471854-5-pavitrakumarm@vayavyalabs.com>
References: <20231114050525.471854-5-pavitrakumarm@vayavyalabs.com>
TO: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
TO: herbert@gondor.apana.org.au
TO: linux-crypto@vger.kernel.org
CC: manjunath.hadli@vayavyalabs.com
CC: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
CC: shwetar <shwetar@vayavyalabs.com>
CC: Ruud Derwig <Ruud.Derwig@synopsys.com>
Hi Pavitrakumar,
kernel test robot noticed the following build warnings:
[auto build test WARNING on herbert-cryptodev-2.6/master]
[also build test WARNING on herbert-crypto-2.6/master linus/master v6.7-rc1]
[cannot apply to xilinx-xlnx/master next-20231114]
[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/Pavitrakumar-M/Add-SPACC-driver-to-Linux-kernel/20231114-143618
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20231114050525.471854-5-pavitrakumarm%40vayavyalabs.com
patch subject: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
:::::: branch date: 7 hours ago
:::::: commit date: 7 hours ago
config: mips-allyesconfig (https://download.01.org/0day-ci/archive/20231114/202311142123.lwAnyUEZ-lkp@intel.com/config)
compiler: mips-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231114/202311142123.lwAnyUEZ-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/r/202311142123.lwAnyUEZ-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/crypto/dwc-spacc/spacc_core.c:1113:5: warning: no previous prototype for 'spacc_sgs_to_ddt' [-Wmissing-prototypes]
1113 | int spacc_sgs_to_ddt(struct device *dev,
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1179:5: warning: no previous prototype for 'modify_scatterlist' [-Wmissing-prototypes]
1179 | int modify_scatterlist(struct scatterlist *src, struct scatterlist *dst,
| ^~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1215:5: warning: no previous prototype for 'spacc_sg_to_ddt' [-Wmissing-prototypes]
1215 | int spacc_sg_to_ddt(struct device *dev, struct scatterlist *sg,
| ^~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c: In function 'spacc_fini':
drivers/crypto/dwc-spacc/spacc_core.c:2565:9: error: implicit declaration of function 'vfree'; did you mean 'kvfree'? [-Werror=implicit-function-declaration]
2565 | vfree(spacc->ctx);
| ^~~~~
| kvfree
drivers/crypto/dwc-spacc/spacc_core.c: In function 'spacc_init':
drivers/crypto/dwc-spacc/spacc_core.c:2744:22: error: implicit declaration of function 'vmalloc'; did you mean 'kvmalloc'? [-Werror=implicit-function-declaration]
2744 | spacc->ctx = vmalloc(sizeof(struct spacc_ctx) *
| ^~~~~~~
| kvmalloc
>> drivers/crypto/dwc-spacc/spacc_core.c:2744:20: warning: assignment to 'struct spacc_ctx *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
2744 | spacc->ctx = vmalloc(sizeof(struct spacc_ctx) *
| ^
>> drivers/crypto/dwc-spacc/spacc_core.c:2750:20: warning: assignment to 'struct spacc_job *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
2750 | spacc->job = vmalloc(sizeof(struct spacc_job) * SPACC_MAX_JOBS);
| ^
drivers/crypto/dwc-spacc/spacc_core.c: At top level:
drivers/crypto/dwc-spacc/spacc_core.c:2991:12: warning: 'spacc_load_skp' defined but not used [-Wunused-function]
2991 | static int spacc_load_skp(struct spacc_device *spacc, uint32_t *key, int keysz,
| ^~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:2849:13: warning: 'spacc_set_secure_mode' defined but not used [-Wunused-function]
2849 | static void spacc_set_secure_mode(struct spacc_device *spacc, int src, int dst,
| ^~~~~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:974:26: warning: 'names' defined but not used [-Wunused-const-variable=]
974 | static const char *const names[] = {
| ^~~~~
In file included from <command-line>:
In function 'spacc_sg_chain',
inlined from 'fixup_sg' at drivers/crypto/dwc-spacc/spacc_core.c:1105:4,
inlined from 'spacc_sgs_to_ddt' at drivers/crypto/dwc-spacc/spacc_core.c:1132:16:
include/linux/compiler_types.h:425:45: error: call to '__compiletime_assert_354' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_DEBUG_SG)
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:406:25: note: in definition of macro '__compiletime_assert'
406 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:425:9: note: in expansion of macro '_compiletime_assert'
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1072:9: note: in expansion of macro 'BUILD_BUG_ON'
1072 | BUILD_BUG_ON(IS_ENABLED(CONFIG_DEBUG_SG));
| ^~~~~~~~~~~~
In function 'spacc_sg_chain',
inlined from 'fixup_sg' at drivers/crypto/dwc-spacc/spacc_core.c:1105:4,
inlined from 'spacc_sg_to_ddt' at drivers/crypto/dwc-spacc/spacc_core.c:1222:15:
include/linux/compiler_types.h:425:45: error: call to '__compiletime_assert_354' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_DEBUG_SG)
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:406:25: note: in definition of macro '__compiletime_assert'
406 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:425:9: note: in expansion of macro '_compiletime_assert'
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1072:9: note: in expansion of macro 'BUILD_BUG_ON'
1072 | BUILD_BUG_ON(IS_ENABLED(CONFIG_DEBUG_SG));
| ^~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +2744 drivers/crypto/dwc-spacc/spacc_core.c
188d801c0d4bbe Pavitrakumar M 2023-11-14 2568
188d801c0d4bbe Pavitrakumar M 2023-11-14 2569 int spacc_init(void *baseaddr, struct spacc_device *spacc,
188d801c0d4bbe Pavitrakumar M 2023-11-14 2570 struct pdu_info *info)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2571 {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2572 unsigned long id;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2573 char version_string[3][16] = { "SPACC", "SPACC-PDU" };
188d801c0d4bbe Pavitrakumar M 2023-11-14 2574 char idx_string[2][16] = { "(Normal Port)", "(Secure Port)" };
188d801c0d4bbe Pavitrakumar M 2023-11-14 2575 char dma_type_string[4][16] = {"Unknown", "Scattergather", "Linear",
188d801c0d4bbe Pavitrakumar M 2023-11-14 2576 "Unknown"};
188d801c0d4bbe Pavitrakumar M 2023-11-14 2577
188d801c0d4bbe Pavitrakumar M 2023-11-14 2578 if (!baseaddr) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2579 pr_err("ERR: baseaddr is NULL\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2580 return -1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2581 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2582 if (!spacc) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2583 pr_err("ERR: spacc is NULL\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2584 return -1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2585 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2586
188d801c0d4bbe Pavitrakumar M 2023-11-14 2587 memset(spacc, 0, sizeof(*spacc));
188d801c0d4bbe Pavitrakumar M 2023-11-14 2588 spin_lock_init(&spacc->lock);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2589 spin_lock_init(&spacc->ctx_lock);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2590
188d801c0d4bbe Pavitrakumar M 2023-11-14 2591 /* assign the baseaddr*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2592 spacc->regmap = baseaddr;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2593
188d801c0d4bbe Pavitrakumar M 2023-11-14 2594 /* version info*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2595 spacc->config.version = info->spacc_version.version;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2596 spacc->config.pdu_version = (info->pdu_config.major << 4) |
188d801c0d4bbe Pavitrakumar M 2023-11-14 2597 info->pdu_config.minor;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2598 spacc->config.project = info->spacc_version.project;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2599 spacc->config.is_pdu = info->spacc_version.is_pdu;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2600 spacc->config.is_qos = info->spacc_version.qos;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2601
188d801c0d4bbe Pavitrakumar M 2023-11-14 2602 /* misc*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2603 spacc->config.is_partial = info->spacc_version.partial;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2604 spacc->config.num_ctx = info->spacc_config.num_ctx;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2605 spacc->config.ciph_page_size = 1U <<
188d801c0d4bbe Pavitrakumar M 2023-11-14 2606 info->spacc_config.ciph_ctx_page_size;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2607 spacc->config.hash_page_size = 1U <<
188d801c0d4bbe Pavitrakumar M 2023-11-14 2608 info->spacc_config.hash_ctx_page_size;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2609 spacc->config.dma_type = info->spacc_config.dma_type;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2610 spacc->config.idx = info->spacc_version.vspacc_idx;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2611 spacc->config.cmd0_fifo_depth = info->spacc_config.cmd0_fifo_depth;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2612 spacc->config.cmd1_fifo_depth = info->spacc_config.cmd1_fifo_depth;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2613 spacc->config.cmd2_fifo_depth = info->spacc_config.cmd2_fifo_depth;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2614 spacc->config.stat_fifo_depth = info->spacc_config.stat_fifo_depth;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2615 spacc->config.fifo_cnt = 1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2616
188d801c0d4bbe Pavitrakumar M 2023-11-14 2617 spacc->config.is_ivimport = info->spacc_version.ivimport;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2618
188d801c0d4bbe Pavitrakumar M 2023-11-14 2619 /* ctrl register map*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2620 if (spacc->config.version <= 0x4E)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2621 spacc->config.ctrl_map = spacc_ctrl_map[SPACC_CTRL_VER_0];
188d801c0d4bbe Pavitrakumar M 2023-11-14 2622 else if (spacc->config.version <= 0x60)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2623 spacc->config.ctrl_map = spacc_ctrl_map[SPACC_CTRL_VER_1];
188d801c0d4bbe Pavitrakumar M 2023-11-14 2624 else
188d801c0d4bbe Pavitrakumar M 2023-11-14 2625 spacc->config.ctrl_map = spacc_ctrl_map[SPACC_CTRL_VER_2];
188d801c0d4bbe Pavitrakumar M 2023-11-14 2626
188d801c0d4bbe Pavitrakumar M 2023-11-14 2627 spacc->job_next_swid = 0;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2628 spacc->wdcnt = 0;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2629 spacc->config.wd_timer = SPACC_WD_TIMER_INIT;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2630
188d801c0d4bbe Pavitrakumar M 2023-11-14 2631 /* version 4.10 uses IRQ,
188d801c0d4bbe Pavitrakumar M 2023-11-14 2632 * above uses WD and we don't support below 4.00
188d801c0d4bbe Pavitrakumar M 2023-11-14 2633 */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2634 if (spacc->config.version < 0x40) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2635 pr_err("ERR: Unsupported SPAcc version\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2636 return -EIO;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2637 } else if (spacc->config.version < 0x4B) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2638 spacc->op_mode = SPACC_OP_MODE_IRQ;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2639 } else {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2640 spacc->op_mode = SPACC_OP_MODE_WD;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2641 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2642
188d801c0d4bbe Pavitrakumar M 2023-11-14 2643 /* set threshold and enable irq
188d801c0d4bbe Pavitrakumar M 2023-11-14 2644 * on 4.11 and newer cores we can derive this
188d801c0d4bbe Pavitrakumar M 2023-11-14 2645 * from the HW reported depths.
188d801c0d4bbe Pavitrakumar M 2023-11-14 2646 */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2647 if (spacc->config.stat_fifo_depth == 1)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2648 spacc->config.ideal_stat_level = 1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2649 else if (spacc->config.stat_fifo_depth <= 4)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2650 spacc->config.ideal_stat_level = spacc->config.stat_fifo_depth
188d801c0d4bbe Pavitrakumar M 2023-11-14 2651 - 1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2652 else if (spacc->config.stat_fifo_depth <= 8)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2653 spacc->config.ideal_stat_level = spacc->config.stat_fifo_depth
188d801c0d4bbe Pavitrakumar M 2023-11-14 2654 - 2;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2655 else
188d801c0d4bbe Pavitrakumar M 2023-11-14 2656 spacc->config.ideal_stat_level = spacc->config.stat_fifo_depth
188d801c0d4bbe Pavitrakumar M 2023-11-14 2657 - 4;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2658
188d801c0d4bbe Pavitrakumar M 2023-11-14 2659 /* determine max PROClen value */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2660 writel(0xFFFFFFFF, spacc->regmap + SPACC_REG_PROC_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2661 spacc->config.max_msg_size = readl(spacc->regmap + SPACC_REG_PROC_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2662
188d801c0d4bbe Pavitrakumar M 2023-11-14 2663 /* read config info*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2664 if (spacc->config.is_pdu) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2665 pr_debug("PDU:\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2666 pr_debug(" MAJOR : %u\n", info->pdu_config.major);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2667 pr_debug(" MINOR : %u\n", info->pdu_config.minor);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2668 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2669 id = readl(spacc->regmap + SPACC_REG_ID);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2670 pr_debug("SPACC ID: (%08lx)\n", (unsigned long)id);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2671 pr_debug(" MAJOR : %x\n", info->spacc_version.major);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2672 pr_debug(" MINOR : %x\n", info->spacc_version.minor);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2673 pr_debug(" QOS : %x\n", info->spacc_version.qos);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2674 pr_debug(" IVIMPORT : %x\n", spacc->config.is_ivimport);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2675
188d801c0d4bbe Pavitrakumar M 2023-11-14 2676 if (spacc->config.version >= 0x48)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2677 pr_debug(" TYPE : %lx (%s)\n", SPACC_ID_TYPE(id),
188d801c0d4bbe Pavitrakumar M 2023-11-14 2678 version_string[SPACC_ID_TYPE(id) & 3]);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2679
188d801c0d4bbe Pavitrakumar M 2023-11-14 2680 pr_debug(" AUX : %x\n", info->spacc_version.qos);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2681 pr_debug(" IDX : %lx %s\n", SPACC_ID_VIDX(id),
188d801c0d4bbe Pavitrakumar M 2023-11-14 2682 spacc->config.is_secure ?
188d801c0d4bbe Pavitrakumar M 2023-11-14 2683 (idx_string[spacc->config.is_secure_port & 1]) : "");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2684 pr_debug(" PARTIAL : %x\n", info->spacc_version.partial);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2685 pr_debug(" PROJECT : %x\n", info->spacc_version.project);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2686 if (spacc->config.version >= 0x48)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2687 id = readl(spacc->regmap + SPACC_REG_CONFIG);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2688 else
188d801c0d4bbe Pavitrakumar M 2023-11-14 2689 id = 0xFFFFFFFF;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2690
188d801c0d4bbe Pavitrakumar M 2023-11-14 2691 pr_debug("SPACC CFG: (%08lx)\n", id);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2692 pr_debug(" CTX CNT : %u\n", info->spacc_config.num_ctx);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2693 pr_debug(" VSPACC CNT : %u\n", info->spacc_config.num_vspacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2694 pr_debug(" CIPH SZ : %-3lu bytes\n", 1UL <<
188d801c0d4bbe Pavitrakumar M 2023-11-14 2695 info->spacc_config.ciph_ctx_page_size);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2696 pr_debug(" HASH SZ : %-3lu bytes\n", 1UL <<
188d801c0d4bbe Pavitrakumar M 2023-11-14 2697 info->spacc_config.hash_ctx_page_size);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2698 pr_debug(" DMA TYPE : %u (%s)\n", info->spacc_config.dma_type,
188d801c0d4bbe Pavitrakumar M 2023-11-14 2699 dma_type_string[info->spacc_config.dma_type & 3]);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2700 pr_debug(" MAX PROCLEN: %lu bytes\n", (unsigned
188d801c0d4bbe Pavitrakumar M 2023-11-14 2701 long)spacc->config.max_msg_size);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2702 pr_debug(" FIFO CONFIG :\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2703 pr_debug(" CMD0 DEPTH: %d\n", spacc->config.cmd0_fifo_depth);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2704 if (spacc->config.is_qos) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2705 pr_debug(" CMD1 DEPTH: %d\n",
188d801c0d4bbe Pavitrakumar M 2023-11-14 2706 spacc->config.cmd1_fifo_depth);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2707 pr_debug(" CMD2 DEPTH: %d\n",
188d801c0d4bbe Pavitrakumar M 2023-11-14 2708 spacc->config.cmd2_fifo_depth);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2709 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2710 pr_debug(" STAT DEPTH: %d\n", spacc->config.stat_fifo_depth);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2711
188d801c0d4bbe Pavitrakumar M 2023-11-14 2712 if (spacc->config.dma_type == SPACC_DMA_DDT) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2713 writel(0x1234567F, baseaddr + SPACC_REG_DST_PTR);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2714 writel(0xDEADBEEF, baseaddr + SPACC_REG_SRC_PTR);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2715 if (((readl(baseaddr + SPACC_REG_DST_PTR)) !=
188d801c0d4bbe Pavitrakumar M 2023-11-14 2716 (0x1234567F & SPACC_DST_PTR_PTR)) ||
188d801c0d4bbe Pavitrakumar M 2023-11-14 2717 ((readl(baseaddr + SPACC_REG_SRC_PTR)) !=
188d801c0d4bbe Pavitrakumar M 2023-11-14 2718 (0xDEADBEEF & SPACC_SRC_PTR_PTR))) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2719 pr_err("ERR: Failed to set pointers\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2720 goto ERR;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2721 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2722 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2723
188d801c0d4bbe Pavitrakumar M 2023-11-14 2724 /* zero the IRQ CTRL/EN register
188d801c0d4bbe Pavitrakumar M 2023-11-14 2725 * (to make sure we're in a sane state)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2726 */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2727 writel(0, spacc->regmap + SPACC_REG_IRQ_CTRL);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2728 writel(0, spacc->regmap + SPACC_REG_IRQ_EN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2729 writel(0xFFFFFFFF, spacc->regmap + SPACC_REG_IRQ_STAT);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2730
188d801c0d4bbe Pavitrakumar M 2023-11-14 2731 /* init cache*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2732 memset(&spacc->cache, 0, sizeof(spacc->cache));
188d801c0d4bbe Pavitrakumar M 2023-11-14 2733 writel(0, spacc->regmap + SPACC_REG_SRC_PTR);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2734 writel(0, spacc->regmap + SPACC_REG_DST_PTR);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2735 writel(0, spacc->regmap + SPACC_REG_PROC_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2736 writel(0, spacc->regmap + SPACC_REG_ICV_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2737 writel(0, spacc->regmap + SPACC_REG_ICV_OFFSET);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2738 writel(0, spacc->regmap + SPACC_REG_PRE_AAD_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2739 writel(0, spacc->regmap + SPACC_REG_POST_AAD_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2740 writel(0, spacc->regmap + SPACC_REG_IV_OFFSET);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2741 writel(0, spacc->regmap + SPACC_REG_OFFSET);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2742 writel(0, spacc->regmap + SPACC_REG_AUX_INFO);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2743
188d801c0d4bbe Pavitrakumar M 2023-11-14 @2744 spacc->ctx = vmalloc(sizeof(struct spacc_ctx) *
188d801c0d4bbe Pavitrakumar M 2023-11-14 2745 spacc->config.num_ctx);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2746 if (!spacc->ctx) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2747 pr_err("ERR: Out of memory for ctx\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2748 goto ERR;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2749 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 @2750 spacc->job = vmalloc(sizeof(struct spacc_job) * SPACC_MAX_JOBS);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2751 if (!spacc->job) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2752 pr_err("ERR: Out of memory for job\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2753 goto ERR;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2754 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2755
188d801c0d4bbe Pavitrakumar M 2023-11-14 2756 /* initialize job_idx and lookup table */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2757 spacc_job_init_all(spacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2758
188d801c0d4bbe Pavitrakumar M 2023-11-14 2759 /* initialize contexts */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2760 spacc_ctx_init_all(spacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2761
188d801c0d4bbe Pavitrakumar M 2023-11-14 2762 /* autodetect and set string size setting*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2763 if (spacc->config.version == 0x61 || spacc->config.version >= 0x65)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2764 spacc_xof_stringsize_autodetect(spacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2765
188d801c0d4bbe Pavitrakumar M 2023-11-14 2766 return CRYPTO_OK;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2767 ERR:
188d801c0d4bbe Pavitrakumar M 2023-11-14 2768 spacc_fini(spacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2769 pr_err("ERR: Crypto Failed\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2770 return -EIO;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2771 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2772
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
@ 2023-11-15 2:00 ` kernel test robot
0 siblings, 0 replies; 19+ messages in thread
From: kernel test robot @ 2023-11-15 2:00 UTC (permalink / raw)
To: Pavitrakumar M, herbert, linux-crypto
Cc: oe-kbuild-all, manjunath.hadli, Pavitrakumar M, shwetar,
Ruud Derwig
Hi Pavitrakumar,
kernel test robot noticed the following build warnings:
[auto build test WARNING on herbert-cryptodev-2.6/master]
[also build test WARNING on herbert-crypto-2.6/master linus/master v6.7-rc1]
[cannot apply to xilinx-xlnx/master next-20231114]
[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/Pavitrakumar-M/Add-SPACC-driver-to-Linux-kernel/20231114-143618
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20231114050525.471854-5-pavitrakumarm%40vayavyalabs.com
patch subject: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
config: mips-allyesconfig (https://download.01.org/0day-ci/archive/20231114/202311142123.lwAnyUEZ-lkp@intel.com/config)
compiler: mips-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231114/202311142123.lwAnyUEZ-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 <yujie.liu@intel.com>
| Closes: https://lore.kernel.org/r/202311142123.lwAnyUEZ-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/crypto/dwc-spacc/spacc_core.c:1113:5: warning: no previous prototype for 'spacc_sgs_to_ddt' [-Wmissing-prototypes]
1113 | int spacc_sgs_to_ddt(struct device *dev,
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1179:5: warning: no previous prototype for 'modify_scatterlist' [-Wmissing-prototypes]
1179 | int modify_scatterlist(struct scatterlist *src, struct scatterlist *dst,
| ^~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1215:5: warning: no previous prototype for 'spacc_sg_to_ddt' [-Wmissing-prototypes]
1215 | int spacc_sg_to_ddt(struct device *dev, struct scatterlist *sg,
| ^~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c: In function 'spacc_fini':
drivers/crypto/dwc-spacc/spacc_core.c:2565:9: error: implicit declaration of function 'vfree'; did you mean 'kvfree'? [-Werror=implicit-function-declaration]
2565 | vfree(spacc->ctx);
| ^~~~~
| kvfree
drivers/crypto/dwc-spacc/spacc_core.c: In function 'spacc_init':
drivers/crypto/dwc-spacc/spacc_core.c:2744:22: error: implicit declaration of function 'vmalloc'; did you mean 'kvmalloc'? [-Werror=implicit-function-declaration]
2744 | spacc->ctx = vmalloc(sizeof(struct spacc_ctx) *
| ^~~~~~~
| kvmalloc
>> drivers/crypto/dwc-spacc/spacc_core.c:2744:20: warning: assignment to 'struct spacc_ctx *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
2744 | spacc->ctx = vmalloc(sizeof(struct spacc_ctx) *
| ^
>> drivers/crypto/dwc-spacc/spacc_core.c:2750:20: warning: assignment to 'struct spacc_job *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
2750 | spacc->job = vmalloc(sizeof(struct spacc_job) * SPACC_MAX_JOBS);
| ^
drivers/crypto/dwc-spacc/spacc_core.c: At top level:
drivers/crypto/dwc-spacc/spacc_core.c:2991:12: warning: 'spacc_load_skp' defined but not used [-Wunused-function]
2991 | static int spacc_load_skp(struct spacc_device *spacc, uint32_t *key, int keysz,
| ^~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:2849:13: warning: 'spacc_set_secure_mode' defined but not used [-Wunused-function]
2849 | static void spacc_set_secure_mode(struct spacc_device *spacc, int src, int dst,
| ^~~~~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:974:26: warning: 'names' defined but not used [-Wunused-const-variable=]
974 | static const char *const names[] = {
| ^~~~~
In file included from <command-line>:
In function 'spacc_sg_chain',
inlined from 'fixup_sg' at drivers/crypto/dwc-spacc/spacc_core.c:1105:4,
inlined from 'spacc_sgs_to_ddt' at drivers/crypto/dwc-spacc/spacc_core.c:1132:16:
include/linux/compiler_types.h:425:45: error: call to '__compiletime_assert_354' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_DEBUG_SG)
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:406:25: note: in definition of macro '__compiletime_assert'
406 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:425:9: note: in expansion of macro '_compiletime_assert'
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1072:9: note: in expansion of macro 'BUILD_BUG_ON'
1072 | BUILD_BUG_ON(IS_ENABLED(CONFIG_DEBUG_SG));
| ^~~~~~~~~~~~
In function 'spacc_sg_chain',
inlined from 'fixup_sg' at drivers/crypto/dwc-spacc/spacc_core.c:1105:4,
inlined from 'spacc_sg_to_ddt' at drivers/crypto/dwc-spacc/spacc_core.c:1222:15:
include/linux/compiler_types.h:425:45: error: call to '__compiletime_assert_354' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_DEBUG_SG)
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:406:25: note: in definition of macro '__compiletime_assert'
406 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:425:9: note: in expansion of macro '_compiletime_assert'
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1072:9: note: in expansion of macro 'BUILD_BUG_ON'
1072 | BUILD_BUG_ON(IS_ENABLED(CONFIG_DEBUG_SG));
| ^~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +2744 drivers/crypto/dwc-spacc/spacc_core.c
188d801c0d4bbe Pavitrakumar M 2023-11-14 2568
188d801c0d4bbe Pavitrakumar M 2023-11-14 2569 int spacc_init(void *baseaddr, struct spacc_device *spacc,
188d801c0d4bbe Pavitrakumar M 2023-11-14 2570 struct pdu_info *info)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2571 {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2572 unsigned long id;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2573 char version_string[3][16] = { "SPACC", "SPACC-PDU" };
188d801c0d4bbe Pavitrakumar M 2023-11-14 2574 char idx_string[2][16] = { "(Normal Port)", "(Secure Port)" };
188d801c0d4bbe Pavitrakumar M 2023-11-14 2575 char dma_type_string[4][16] = {"Unknown", "Scattergather", "Linear",
188d801c0d4bbe Pavitrakumar M 2023-11-14 2576 "Unknown"};
188d801c0d4bbe Pavitrakumar M 2023-11-14 2577
188d801c0d4bbe Pavitrakumar M 2023-11-14 2578 if (!baseaddr) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2579 pr_err("ERR: baseaddr is NULL\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2580 return -1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2581 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2582 if (!spacc) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2583 pr_err("ERR: spacc is NULL\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2584 return -1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2585 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2586
188d801c0d4bbe Pavitrakumar M 2023-11-14 2587 memset(spacc, 0, sizeof(*spacc));
188d801c0d4bbe Pavitrakumar M 2023-11-14 2588 spin_lock_init(&spacc->lock);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2589 spin_lock_init(&spacc->ctx_lock);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2590
188d801c0d4bbe Pavitrakumar M 2023-11-14 2591 /* assign the baseaddr*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2592 spacc->regmap = baseaddr;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2593
188d801c0d4bbe Pavitrakumar M 2023-11-14 2594 /* version info*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2595 spacc->config.version = info->spacc_version.version;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2596 spacc->config.pdu_version = (info->pdu_config.major << 4) |
188d801c0d4bbe Pavitrakumar M 2023-11-14 2597 info->pdu_config.minor;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2598 spacc->config.project = info->spacc_version.project;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2599 spacc->config.is_pdu = info->spacc_version.is_pdu;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2600 spacc->config.is_qos = info->spacc_version.qos;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2601
188d801c0d4bbe Pavitrakumar M 2023-11-14 2602 /* misc*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2603 spacc->config.is_partial = info->spacc_version.partial;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2604 spacc->config.num_ctx = info->spacc_config.num_ctx;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2605 spacc->config.ciph_page_size = 1U <<
188d801c0d4bbe Pavitrakumar M 2023-11-14 2606 info->spacc_config.ciph_ctx_page_size;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2607 spacc->config.hash_page_size = 1U <<
188d801c0d4bbe Pavitrakumar M 2023-11-14 2608 info->spacc_config.hash_ctx_page_size;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2609 spacc->config.dma_type = info->spacc_config.dma_type;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2610 spacc->config.idx = info->spacc_version.vspacc_idx;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2611 spacc->config.cmd0_fifo_depth = info->spacc_config.cmd0_fifo_depth;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2612 spacc->config.cmd1_fifo_depth = info->spacc_config.cmd1_fifo_depth;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2613 spacc->config.cmd2_fifo_depth = info->spacc_config.cmd2_fifo_depth;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2614 spacc->config.stat_fifo_depth = info->spacc_config.stat_fifo_depth;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2615 spacc->config.fifo_cnt = 1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2616
188d801c0d4bbe Pavitrakumar M 2023-11-14 2617 spacc->config.is_ivimport = info->spacc_version.ivimport;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2618
188d801c0d4bbe Pavitrakumar M 2023-11-14 2619 /* ctrl register map*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2620 if (spacc->config.version <= 0x4E)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2621 spacc->config.ctrl_map = spacc_ctrl_map[SPACC_CTRL_VER_0];
188d801c0d4bbe Pavitrakumar M 2023-11-14 2622 else if (spacc->config.version <= 0x60)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2623 spacc->config.ctrl_map = spacc_ctrl_map[SPACC_CTRL_VER_1];
188d801c0d4bbe Pavitrakumar M 2023-11-14 2624 else
188d801c0d4bbe Pavitrakumar M 2023-11-14 2625 spacc->config.ctrl_map = spacc_ctrl_map[SPACC_CTRL_VER_2];
188d801c0d4bbe Pavitrakumar M 2023-11-14 2626
188d801c0d4bbe Pavitrakumar M 2023-11-14 2627 spacc->job_next_swid = 0;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2628 spacc->wdcnt = 0;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2629 spacc->config.wd_timer = SPACC_WD_TIMER_INIT;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2630
188d801c0d4bbe Pavitrakumar M 2023-11-14 2631 /* version 4.10 uses IRQ,
188d801c0d4bbe Pavitrakumar M 2023-11-14 2632 * above uses WD and we don't support below 4.00
188d801c0d4bbe Pavitrakumar M 2023-11-14 2633 */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2634 if (spacc->config.version < 0x40) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2635 pr_err("ERR: Unsupported SPAcc version\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2636 return -EIO;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2637 } else if (spacc->config.version < 0x4B) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2638 spacc->op_mode = SPACC_OP_MODE_IRQ;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2639 } else {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2640 spacc->op_mode = SPACC_OP_MODE_WD;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2641 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2642
188d801c0d4bbe Pavitrakumar M 2023-11-14 2643 /* set threshold and enable irq
188d801c0d4bbe Pavitrakumar M 2023-11-14 2644 * on 4.11 and newer cores we can derive this
188d801c0d4bbe Pavitrakumar M 2023-11-14 2645 * from the HW reported depths.
188d801c0d4bbe Pavitrakumar M 2023-11-14 2646 */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2647 if (spacc->config.stat_fifo_depth == 1)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2648 spacc->config.ideal_stat_level = 1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2649 else if (spacc->config.stat_fifo_depth <= 4)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2650 spacc->config.ideal_stat_level = spacc->config.stat_fifo_depth
188d801c0d4bbe Pavitrakumar M 2023-11-14 2651 - 1;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2652 else if (spacc->config.stat_fifo_depth <= 8)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2653 spacc->config.ideal_stat_level = spacc->config.stat_fifo_depth
188d801c0d4bbe Pavitrakumar M 2023-11-14 2654 - 2;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2655 else
188d801c0d4bbe Pavitrakumar M 2023-11-14 2656 spacc->config.ideal_stat_level = spacc->config.stat_fifo_depth
188d801c0d4bbe Pavitrakumar M 2023-11-14 2657 - 4;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2658
188d801c0d4bbe Pavitrakumar M 2023-11-14 2659 /* determine max PROClen value */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2660 writel(0xFFFFFFFF, spacc->regmap + SPACC_REG_PROC_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2661 spacc->config.max_msg_size = readl(spacc->regmap + SPACC_REG_PROC_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2662
188d801c0d4bbe Pavitrakumar M 2023-11-14 2663 /* read config info*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2664 if (spacc->config.is_pdu) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2665 pr_debug("PDU:\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2666 pr_debug(" MAJOR : %u\n", info->pdu_config.major);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2667 pr_debug(" MINOR : %u\n", info->pdu_config.minor);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2668 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2669 id = readl(spacc->regmap + SPACC_REG_ID);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2670 pr_debug("SPACC ID: (%08lx)\n", (unsigned long)id);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2671 pr_debug(" MAJOR : %x\n", info->spacc_version.major);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2672 pr_debug(" MINOR : %x\n", info->spacc_version.minor);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2673 pr_debug(" QOS : %x\n", info->spacc_version.qos);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2674 pr_debug(" IVIMPORT : %x\n", spacc->config.is_ivimport);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2675
188d801c0d4bbe Pavitrakumar M 2023-11-14 2676 if (spacc->config.version >= 0x48)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2677 pr_debug(" TYPE : %lx (%s)\n", SPACC_ID_TYPE(id),
188d801c0d4bbe Pavitrakumar M 2023-11-14 2678 version_string[SPACC_ID_TYPE(id) & 3]);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2679
188d801c0d4bbe Pavitrakumar M 2023-11-14 2680 pr_debug(" AUX : %x\n", info->spacc_version.qos);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2681 pr_debug(" IDX : %lx %s\n", SPACC_ID_VIDX(id),
188d801c0d4bbe Pavitrakumar M 2023-11-14 2682 spacc->config.is_secure ?
188d801c0d4bbe Pavitrakumar M 2023-11-14 2683 (idx_string[spacc->config.is_secure_port & 1]) : "");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2684 pr_debug(" PARTIAL : %x\n", info->spacc_version.partial);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2685 pr_debug(" PROJECT : %x\n", info->spacc_version.project);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2686 if (spacc->config.version >= 0x48)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2687 id = readl(spacc->regmap + SPACC_REG_CONFIG);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2688 else
188d801c0d4bbe Pavitrakumar M 2023-11-14 2689 id = 0xFFFFFFFF;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2690
188d801c0d4bbe Pavitrakumar M 2023-11-14 2691 pr_debug("SPACC CFG: (%08lx)\n", id);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2692 pr_debug(" CTX CNT : %u\n", info->spacc_config.num_ctx);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2693 pr_debug(" VSPACC CNT : %u\n", info->spacc_config.num_vspacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2694 pr_debug(" CIPH SZ : %-3lu bytes\n", 1UL <<
188d801c0d4bbe Pavitrakumar M 2023-11-14 2695 info->spacc_config.ciph_ctx_page_size);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2696 pr_debug(" HASH SZ : %-3lu bytes\n", 1UL <<
188d801c0d4bbe Pavitrakumar M 2023-11-14 2697 info->spacc_config.hash_ctx_page_size);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2698 pr_debug(" DMA TYPE : %u (%s)\n", info->spacc_config.dma_type,
188d801c0d4bbe Pavitrakumar M 2023-11-14 2699 dma_type_string[info->spacc_config.dma_type & 3]);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2700 pr_debug(" MAX PROCLEN: %lu bytes\n", (unsigned
188d801c0d4bbe Pavitrakumar M 2023-11-14 2701 long)spacc->config.max_msg_size);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2702 pr_debug(" FIFO CONFIG :\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2703 pr_debug(" CMD0 DEPTH: %d\n", spacc->config.cmd0_fifo_depth);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2704 if (spacc->config.is_qos) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2705 pr_debug(" CMD1 DEPTH: %d\n",
188d801c0d4bbe Pavitrakumar M 2023-11-14 2706 spacc->config.cmd1_fifo_depth);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2707 pr_debug(" CMD2 DEPTH: %d\n",
188d801c0d4bbe Pavitrakumar M 2023-11-14 2708 spacc->config.cmd2_fifo_depth);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2709 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2710 pr_debug(" STAT DEPTH: %d\n", spacc->config.stat_fifo_depth);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2711
188d801c0d4bbe Pavitrakumar M 2023-11-14 2712 if (spacc->config.dma_type == SPACC_DMA_DDT) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2713 writel(0x1234567F, baseaddr + SPACC_REG_DST_PTR);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2714 writel(0xDEADBEEF, baseaddr + SPACC_REG_SRC_PTR);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2715 if (((readl(baseaddr + SPACC_REG_DST_PTR)) !=
188d801c0d4bbe Pavitrakumar M 2023-11-14 2716 (0x1234567F & SPACC_DST_PTR_PTR)) ||
188d801c0d4bbe Pavitrakumar M 2023-11-14 2717 ((readl(baseaddr + SPACC_REG_SRC_PTR)) !=
188d801c0d4bbe Pavitrakumar M 2023-11-14 2718 (0xDEADBEEF & SPACC_SRC_PTR_PTR))) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2719 pr_err("ERR: Failed to set pointers\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2720 goto ERR;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2721 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2722 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2723
188d801c0d4bbe Pavitrakumar M 2023-11-14 2724 /* zero the IRQ CTRL/EN register
188d801c0d4bbe Pavitrakumar M 2023-11-14 2725 * (to make sure we're in a sane state)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2726 */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2727 writel(0, spacc->regmap + SPACC_REG_IRQ_CTRL);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2728 writel(0, spacc->regmap + SPACC_REG_IRQ_EN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2729 writel(0xFFFFFFFF, spacc->regmap + SPACC_REG_IRQ_STAT);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2730
188d801c0d4bbe Pavitrakumar M 2023-11-14 2731 /* init cache*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2732 memset(&spacc->cache, 0, sizeof(spacc->cache));
188d801c0d4bbe Pavitrakumar M 2023-11-14 2733 writel(0, spacc->regmap + SPACC_REG_SRC_PTR);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2734 writel(0, spacc->regmap + SPACC_REG_DST_PTR);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2735 writel(0, spacc->regmap + SPACC_REG_PROC_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2736 writel(0, spacc->regmap + SPACC_REG_ICV_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2737 writel(0, spacc->regmap + SPACC_REG_ICV_OFFSET);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2738 writel(0, spacc->regmap + SPACC_REG_PRE_AAD_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2739 writel(0, spacc->regmap + SPACC_REG_POST_AAD_LEN);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2740 writel(0, spacc->regmap + SPACC_REG_IV_OFFSET);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2741 writel(0, spacc->regmap + SPACC_REG_OFFSET);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2742 writel(0, spacc->regmap + SPACC_REG_AUX_INFO);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2743
188d801c0d4bbe Pavitrakumar M 2023-11-14 @2744 spacc->ctx = vmalloc(sizeof(struct spacc_ctx) *
188d801c0d4bbe Pavitrakumar M 2023-11-14 2745 spacc->config.num_ctx);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2746 if (!spacc->ctx) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2747 pr_err("ERR: Out of memory for ctx\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2748 goto ERR;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2749 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 @2750 spacc->job = vmalloc(sizeof(struct spacc_job) * SPACC_MAX_JOBS);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2751 if (!spacc->job) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 2752 pr_err("ERR: Out of memory for job\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2753 goto ERR;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2754 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2755
188d801c0d4bbe Pavitrakumar M 2023-11-14 2756 /* initialize job_idx and lookup table */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2757 spacc_job_init_all(spacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2758
188d801c0d4bbe Pavitrakumar M 2023-11-14 2759 /* initialize contexts */
188d801c0d4bbe Pavitrakumar M 2023-11-14 2760 spacc_ctx_init_all(spacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2761
188d801c0d4bbe Pavitrakumar M 2023-11-14 2762 /* autodetect and set string size setting*/
188d801c0d4bbe Pavitrakumar M 2023-11-14 2763 if (spacc->config.version == 0x61 || spacc->config.version >= 0x65)
188d801c0d4bbe Pavitrakumar M 2023-11-14 2764 spacc_xof_stringsize_autodetect(spacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2765
188d801c0d4bbe Pavitrakumar M 2023-11-14 2766 return CRYPTO_OK;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2767 ERR:
188d801c0d4bbe Pavitrakumar M 2023-11-14 2768 spacc_fini(spacc);
188d801c0d4bbe Pavitrakumar M 2023-11-14 2769 pr_err("ERR: Crypto Failed\n");
188d801c0d4bbe Pavitrakumar M 2023-11-14 2770 return -EIO;
188d801c0d4bbe Pavitrakumar M 2023-11-14 2771 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 2772
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
2023-11-14 5:05 ` [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file Pavitrakumar M
@ 2023-11-15 1:58 ` kernel test robot
-1 siblings, 0 replies; 19+ messages in thread
From: kernel test robot @ 2023-11-14 11:45 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp
::::::
:::::: Manual check reason: "has kconfig file changed"
:::::: Manual check reason: "has Makefile file changed"
::::::
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20231114050525.471854-5-pavitrakumarm@vayavyalabs.com>
References: <20231114050525.471854-5-pavitrakumarm@vayavyalabs.com>
TO: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
TO: herbert@gondor.apana.org.au
TO: linux-crypto@vger.kernel.org
CC: manjunath.hadli@vayavyalabs.com
CC: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
CC: shwetar <shwetar@vayavyalabs.com>
CC: Ruud Derwig <Ruud.Derwig@synopsys.com>
Hi Pavitrakumar,
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.7-rc1]
[cannot apply to xilinx-xlnx/master next-20231114]
[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/Pavitrakumar-M/Add-SPACC-driver-to-Linux-kernel/20231114-143618
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20231114050525.471854-5-pavitrakumarm%40vayavyalabs.com
patch subject: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
:::::: branch date: 5 hours ago
:::::: commit date: 5 hours ago
config: microblaze-defconfig (https://download.01.org/0day-ci/archive/20231114/202311141906.Ai9VGcKQ-lkp@intel.com/config)
compiler: microblaze-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231114/202311141906.Ai9VGcKQ-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/r/202311141906.Ai9VGcKQ-lkp@intel.com/
All errors (new ones prefixed by >>):
microblaze-linux-ld: drivers/crypto/dwc-spacc/spacc_ahash.o: in function `zero_message_process':
>> drivers/crypto/dwc-spacc/spacc_ahash.c:427:(.text+0x284): undefined reference to `sm3_zero_message_hash'
vim +427 drivers/crypto/dwc-spacc/spacc_ahash.c
188d801c0d4bbe Pavitrakumar M 2023-11-14 417
188d801c0d4bbe Pavitrakumar M 2023-11-14 418 static int zero_message_process(struct ahash_request *req)
188d801c0d4bbe Pavitrakumar M 2023-11-14 419 {
188d801c0d4bbe Pavitrakumar M 2023-11-14 420 struct crypto_ahash *tfm = crypto_ahash_reqtfm(req);
188d801c0d4bbe Pavitrakumar M 2023-11-14 421 int digest_sz = crypto_ahash_digestsize(tfm);
188d801c0d4bbe Pavitrakumar M 2023-11-14 422 const struct spacc_alg *salg = spacc_tfm_ahash(&tfm->base);
188d801c0d4bbe Pavitrakumar M 2023-11-14 423
188d801c0d4bbe Pavitrakumar M 2023-11-14 424 switch (salg->mode->id) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 425 case CRYPTO_MODE_HASH_SM3:
188d801c0d4bbe Pavitrakumar M 2023-11-14 426 case CRYPTO_MODE_HMAC_SM3:
188d801c0d4bbe Pavitrakumar M 2023-11-14 @427 memcpy(req->result, sm3_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 428 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 429
188d801c0d4bbe Pavitrakumar M 2023-11-14 430 case CRYPTO_MODE_HMAC_SHA224:
188d801c0d4bbe Pavitrakumar M 2023-11-14 431 case CRYPTO_MODE_HASH_SHA224:
188d801c0d4bbe Pavitrakumar M 2023-11-14 432 memcpy(req->result, sha224_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 433 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 434
188d801c0d4bbe Pavitrakumar M 2023-11-14 435 case CRYPTO_MODE_HMAC_SHA256:
188d801c0d4bbe Pavitrakumar M 2023-11-14 436 case CRYPTO_MODE_HASH_SHA256:
188d801c0d4bbe Pavitrakumar M 2023-11-14 437 memcpy(req->result, sha256_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 438 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 439
188d801c0d4bbe Pavitrakumar M 2023-11-14 440 case CRYPTO_MODE_HMAC_SHA384:
188d801c0d4bbe Pavitrakumar M 2023-11-14 441 case CRYPTO_MODE_HASH_SHA384:
188d801c0d4bbe Pavitrakumar M 2023-11-14 442 memcpy(req->result, sha384_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 443 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 444
188d801c0d4bbe Pavitrakumar M 2023-11-14 445 case CRYPTO_MODE_HMAC_SHA512:
188d801c0d4bbe Pavitrakumar M 2023-11-14 446 case CRYPTO_MODE_HASH_SHA512:
188d801c0d4bbe Pavitrakumar M 2023-11-14 447 memcpy(req->result, sha512_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 448 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 449
188d801c0d4bbe Pavitrakumar M 2023-11-14 450 case CRYPTO_MODE_HMAC_MD5:
188d801c0d4bbe Pavitrakumar M 2023-11-14 451 case CRYPTO_MODE_HASH_MD5:
188d801c0d4bbe Pavitrakumar M 2023-11-14 452 memcpy(req->result, md5_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 453 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 454
188d801c0d4bbe Pavitrakumar M 2023-11-14 455 case CRYPTO_MODE_HMAC_SHA1:
188d801c0d4bbe Pavitrakumar M 2023-11-14 456 case CRYPTO_MODE_HASH_SHA1:
188d801c0d4bbe Pavitrakumar M 2023-11-14 457 memcpy(req->result, sha1_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 458 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 459
188d801c0d4bbe Pavitrakumar M 2023-11-14 460 case CRYPTO_MODE_MAC_XCBC:
188d801c0d4bbe Pavitrakumar M 2023-11-14 461 memcpy(req->result, xcbc_aes_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 462 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 463
188d801c0d4bbe Pavitrakumar M 2023-11-14 464 case CRYPTO_MODE_MAC_CMAC:
188d801c0d4bbe Pavitrakumar M 2023-11-14 465 memcpy(req->result, cmac_aes_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 466 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 467
188d801c0d4bbe Pavitrakumar M 2023-11-14 468 case CRYPTO_MODE_HASH_SHA3_224:
188d801c0d4bbe Pavitrakumar M 2023-11-14 469 memcpy(req->result, sha3_224_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 470 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 471
188d801c0d4bbe Pavitrakumar M 2023-11-14 472 case CRYPTO_MODE_HASH_SHA3_256:
188d801c0d4bbe Pavitrakumar M 2023-11-14 473 memcpy(req->result, sha3_256_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 474 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 475
188d801c0d4bbe Pavitrakumar M 2023-11-14 476 case CRYPTO_MODE_HASH_SHA3_384:
188d801c0d4bbe Pavitrakumar M 2023-11-14 477 memcpy(req->result, sha3_384_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 478 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 479
188d801c0d4bbe Pavitrakumar M 2023-11-14 480 case CRYPTO_MODE_HASH_SHA3_512:
188d801c0d4bbe Pavitrakumar M 2023-11-14 481 memcpy(req->result, sha3_512_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 482 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 483
188d801c0d4bbe Pavitrakumar M 2023-11-14 484 case CRYPTO_MODE_MAC_MICHAEL:
188d801c0d4bbe Pavitrakumar M 2023-11-14 485 memcpy(req->result, michael_mic_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 486 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 487
188d801c0d4bbe Pavitrakumar M 2023-11-14 488 case CRYPTO_MODE_MAC_SM4_XCBC:
188d801c0d4bbe Pavitrakumar M 2023-11-14 489 memcpy(req->result, sm4_xcbc128_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 490 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 491
188d801c0d4bbe Pavitrakumar M 2023-11-14 492 default:
188d801c0d4bbe Pavitrakumar M 2023-11-14 493 return -EINVAL;
188d801c0d4bbe Pavitrakumar M 2023-11-14 494 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 495
188d801c0d4bbe Pavitrakumar M 2023-11-14 496 return 0;
188d801c0d4bbe Pavitrakumar M 2023-11-14 497 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 498
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
@ 2023-11-15 1:58 ` kernel test robot
0 siblings, 0 replies; 19+ messages in thread
From: kernel test robot @ 2023-11-15 1:58 UTC (permalink / raw)
To: Pavitrakumar M, herbert, linux-crypto
Cc: oe-kbuild-all, manjunath.hadli, Pavitrakumar M, shwetar,
Ruud Derwig
Hi Pavitrakumar,
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.7-rc1]
[cannot apply to xilinx-xlnx/master next-20231114]
[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/Pavitrakumar-M/Add-SPACC-driver-to-Linux-kernel/20231114-143618
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20231114050525.471854-5-pavitrakumarm%40vayavyalabs.com
patch subject: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
config: microblaze-defconfig (https://download.01.org/0day-ci/archive/20231114/202311141906.Ai9VGcKQ-lkp@intel.com/config)
compiler: microblaze-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231114/202311141906.Ai9VGcKQ-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 <yujie.liu@intel.com>
| Closes: https://lore.kernel.org/r/202311141906.Ai9VGcKQ-lkp@intel.com/
All errors (new ones prefixed by >>):
microblaze-linux-ld: drivers/crypto/dwc-spacc/spacc_ahash.o: in function `zero_message_process':
>> drivers/crypto/dwc-spacc/spacc_ahash.c:427:(.text+0x284): undefined reference to `sm3_zero_message_hash'
vim +427 drivers/crypto/dwc-spacc/spacc_ahash.c
188d801c0d4bbe Pavitrakumar M 2023-11-14 417
188d801c0d4bbe Pavitrakumar M 2023-11-14 418 static int zero_message_process(struct ahash_request *req)
188d801c0d4bbe Pavitrakumar M 2023-11-14 419 {
188d801c0d4bbe Pavitrakumar M 2023-11-14 420 struct crypto_ahash *tfm = crypto_ahash_reqtfm(req);
188d801c0d4bbe Pavitrakumar M 2023-11-14 421 int digest_sz = crypto_ahash_digestsize(tfm);
188d801c0d4bbe Pavitrakumar M 2023-11-14 422 const struct spacc_alg *salg = spacc_tfm_ahash(&tfm->base);
188d801c0d4bbe Pavitrakumar M 2023-11-14 423
188d801c0d4bbe Pavitrakumar M 2023-11-14 424 switch (salg->mode->id) {
188d801c0d4bbe Pavitrakumar M 2023-11-14 425 case CRYPTO_MODE_HASH_SM3:
188d801c0d4bbe Pavitrakumar M 2023-11-14 426 case CRYPTO_MODE_HMAC_SM3:
188d801c0d4bbe Pavitrakumar M 2023-11-14 @427 memcpy(req->result, sm3_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 428 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 429
188d801c0d4bbe Pavitrakumar M 2023-11-14 430 case CRYPTO_MODE_HMAC_SHA224:
188d801c0d4bbe Pavitrakumar M 2023-11-14 431 case CRYPTO_MODE_HASH_SHA224:
188d801c0d4bbe Pavitrakumar M 2023-11-14 432 memcpy(req->result, sha224_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 433 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 434
188d801c0d4bbe Pavitrakumar M 2023-11-14 435 case CRYPTO_MODE_HMAC_SHA256:
188d801c0d4bbe Pavitrakumar M 2023-11-14 436 case CRYPTO_MODE_HASH_SHA256:
188d801c0d4bbe Pavitrakumar M 2023-11-14 437 memcpy(req->result, sha256_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 438 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 439
188d801c0d4bbe Pavitrakumar M 2023-11-14 440 case CRYPTO_MODE_HMAC_SHA384:
188d801c0d4bbe Pavitrakumar M 2023-11-14 441 case CRYPTO_MODE_HASH_SHA384:
188d801c0d4bbe Pavitrakumar M 2023-11-14 442 memcpy(req->result, sha384_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 443 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 444
188d801c0d4bbe Pavitrakumar M 2023-11-14 445 case CRYPTO_MODE_HMAC_SHA512:
188d801c0d4bbe Pavitrakumar M 2023-11-14 446 case CRYPTO_MODE_HASH_SHA512:
188d801c0d4bbe Pavitrakumar M 2023-11-14 447 memcpy(req->result, sha512_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 448 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 449
188d801c0d4bbe Pavitrakumar M 2023-11-14 450 case CRYPTO_MODE_HMAC_MD5:
188d801c0d4bbe Pavitrakumar M 2023-11-14 451 case CRYPTO_MODE_HASH_MD5:
188d801c0d4bbe Pavitrakumar M 2023-11-14 452 memcpy(req->result, md5_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 453 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 454
188d801c0d4bbe Pavitrakumar M 2023-11-14 455 case CRYPTO_MODE_HMAC_SHA1:
188d801c0d4bbe Pavitrakumar M 2023-11-14 456 case CRYPTO_MODE_HASH_SHA1:
188d801c0d4bbe Pavitrakumar M 2023-11-14 457 memcpy(req->result, sha1_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 458 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 459
188d801c0d4bbe Pavitrakumar M 2023-11-14 460 case CRYPTO_MODE_MAC_XCBC:
188d801c0d4bbe Pavitrakumar M 2023-11-14 461 memcpy(req->result, xcbc_aes_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 462 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 463
188d801c0d4bbe Pavitrakumar M 2023-11-14 464 case CRYPTO_MODE_MAC_CMAC:
188d801c0d4bbe Pavitrakumar M 2023-11-14 465 memcpy(req->result, cmac_aes_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 466 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 467
188d801c0d4bbe Pavitrakumar M 2023-11-14 468 case CRYPTO_MODE_HASH_SHA3_224:
188d801c0d4bbe Pavitrakumar M 2023-11-14 469 memcpy(req->result, sha3_224_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 470 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 471
188d801c0d4bbe Pavitrakumar M 2023-11-14 472 case CRYPTO_MODE_HASH_SHA3_256:
188d801c0d4bbe Pavitrakumar M 2023-11-14 473 memcpy(req->result, sha3_256_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 474 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 475
188d801c0d4bbe Pavitrakumar M 2023-11-14 476 case CRYPTO_MODE_HASH_SHA3_384:
188d801c0d4bbe Pavitrakumar M 2023-11-14 477 memcpy(req->result, sha3_384_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 478 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 479
188d801c0d4bbe Pavitrakumar M 2023-11-14 480 case CRYPTO_MODE_HASH_SHA3_512:
188d801c0d4bbe Pavitrakumar M 2023-11-14 481 memcpy(req->result, sha3_512_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 482 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 483
188d801c0d4bbe Pavitrakumar M 2023-11-14 484 case CRYPTO_MODE_MAC_MICHAEL:
188d801c0d4bbe Pavitrakumar M 2023-11-14 485 memcpy(req->result, michael_mic_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 486 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 487
188d801c0d4bbe Pavitrakumar M 2023-11-14 488 case CRYPTO_MODE_MAC_SM4_XCBC:
188d801c0d4bbe Pavitrakumar M 2023-11-14 489 memcpy(req->result, sm4_xcbc128_zero_message_hash, digest_sz);
188d801c0d4bbe Pavitrakumar M 2023-11-14 490 break;
188d801c0d4bbe Pavitrakumar M 2023-11-14 491
188d801c0d4bbe Pavitrakumar M 2023-11-14 492 default:
188d801c0d4bbe Pavitrakumar M 2023-11-14 493 return -EINVAL;
188d801c0d4bbe Pavitrakumar M 2023-11-14 494 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 495
188d801c0d4bbe Pavitrakumar M 2023-11-14 496 return 0;
188d801c0d4bbe Pavitrakumar M 2023-11-14 497 }
188d801c0d4bbe Pavitrakumar M 2023-11-14 498
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
2023-11-14 5:05 ` [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file Pavitrakumar M
@ 2023-11-15 1:57 ` kernel test robot
-1 siblings, 0 replies; 19+ messages in thread
From: kernel test robot @ 2023-11-14 10:40 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp
::::::
:::::: Manual check reason: "fbc bf32999b1541d795110480a5f3d440b141a59001 and parent 6b861c580cdcb69bd4cfe72d325e92c7ee572003 have different kconfig"
:::::: Manual check reason: "has kconfig file changed"
:::::: Manual check reason: "has Makefile file changed"
::::::
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20231114050525.471854-5-pavitrakumarm@vayavyalabs.com>
References: <20231114050525.471854-5-pavitrakumarm@vayavyalabs.com>
TO: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
TO: herbert@gondor.apana.org.au
TO: linux-crypto@vger.kernel.org
CC: manjunath.hadli@vayavyalabs.com
CC: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
CC: shwetar <shwetar@vayavyalabs.com>
CC: Ruud Derwig <Ruud.Derwig@synopsys.com>
Hi Pavitrakumar,
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.7-rc1]
[cannot apply to xilinx-xlnx/master next-20231114]
[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/Pavitrakumar-M/Add-SPACC-driver-to-Linux-kernel/20231114-143618
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20231114050525.471854-5-pavitrakumarm%40vayavyalabs.com
patch subject: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
:::::: branch date: 4 hours ago
:::::: commit date: 4 hours ago
config: csky-randconfig-001-20231114 (https://download.01.org/0day-ci/archive/20231114/202311141830.g6TK9OTS-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231114/202311141830.g6TK9OTS-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/r/202311141830.g6TK9OTS-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:87:5: warning: no previous prototype for 'spacc_skcipher_fallback' [-Wmissing-prototypes]
87 | int spacc_skcipher_fallback(unsigned char *name, struct skcipher_request *req,
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_skcipher.c: In function 'spacc_cipher_cb':
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:131:18: warning: variable 'rc' set but not used [-Wunused-but-set-variable]
131 | int err, rc;
| ^~
drivers/crypto/dwc-spacc/spacc_skcipher.c: At top level:
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:155:5: warning: no previous prototype for 'spacc_cipher_init_dma' [-Wmissing-prototypes]
155 | int spacc_cipher_init_dma(struct device *dev, struct skcipher_request *req)
| ^~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:179:5: warning: no previous prototype for 'spacc_cipher_cra_init' [-Wmissing-prototypes]
179 | int spacc_cipher_cra_init(struct crypto_tfm *tfm)
| ^~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:210:5: warning: no previous prototype for 'spacc_cipher_setkey' [-Wmissing-prototypes]
210 | int spacc_cipher_setkey(struct crypto_skcipher *tfm, const u8 *key,
| ^~~~~~~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:283:5: warning: no previous prototype for 'spacc_cipher_process' [-Wmissing-prototypes]
283 | int spacc_cipher_process(struct skcipher_request *req, int enc_dec)
| ^~~~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_skcipher.c: In function 'spacc_cipher_process':
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:293:13: warning: variable 'ivsize' set but not used [-Wunused-but-set-variable]
293 | int ivsize;
| ^~~~~~
drivers/crypto/dwc-spacc/spacc_skcipher.c: At top level:
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:473:5: warning: no previous prototype for 'spacc_cipher_encrypt' [-Wmissing-prototypes]
473 | int spacc_cipher_encrypt(struct skcipher_request *req)
| ^~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:487:5: warning: no previous prototype for 'spacc_cipher_decrypt' [-Wmissing-prototypes]
487 | int spacc_cipher_decrypt(struct skcipher_request *req)
| ^~~~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_skcipher.c: In function 'probe_ciphers':
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:533:59: warning: '%s' directive output may be truncated writing up to 5299 bytes into a region of size 128 [-Wformat-truncation=]
533 | snprintf(calg->cra_name, sizeof(calg->cra_name), "%s", mode->name);
| ^~
In function 'spacc_init_calg',
inlined from 'spacc_register_cipher' at drivers/crypto/dwc-spacc/spacc_skcipher.c:549:2,
inlined from 'probe_ciphers' at drivers/crypto/dwc-spacc/spacc_skcipher.c:596:11:
drivers/crypto/dwc-spacc/spacc_skcipher.c:533:9: note: 'snprintf' output between 1 and 5300 bytes into a destination of size 128
533 | snprintf(calg->cra_name, sizeof(calg->cra_name), "%s", mode->name);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_skcipher.c: In function 'probe_ciphers':
drivers/crypto/dwc-spacc/spacc_skcipher.c:535:25: warning: '%s' directive output may be truncated writing up to 5299 bytes into a region of size 122 [-Wformat-truncation=]
535 | "spacc-%s", mode->name);
| ^~
In function 'spacc_init_calg',
inlined from 'spacc_register_cipher' at drivers/crypto/dwc-spacc/spacc_skcipher.c:549:2,
inlined from 'probe_ciphers' at drivers/crypto/dwc-spacc/spacc_skcipher.c:596:11:
drivers/crypto/dwc-spacc/spacc_skcipher.c:534:9: note: 'snprintf' output between 7 and 5306 bytes into a destination of size 128
534 | snprintf(calg->cra_driver_name, sizeof(calg->cra_driver_name),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
535 | "spacc-%s", mode->name);
| ~~~~~~~~~~~~~~~~~~~~~~~
--
>> drivers/crypto/dwc-spacc/spacc_core.c:1113:5: warning: no previous prototype for 'spacc_sgs_to_ddt' [-Wmissing-prototypes]
1113 | int spacc_sgs_to_ddt(struct device *dev,
| ^~~~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_core.c:1179:5: warning: no previous prototype for 'modify_scatterlist' [-Wmissing-prototypes]
1179 | int modify_scatterlist(struct scatterlist *src, struct scatterlist *dst,
| ^~~~~~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_core.c:1215:5: warning: no previous prototype for 'spacc_sg_to_ddt' [-Wmissing-prototypes]
1215 | int spacc_sg_to_ddt(struct device *dev, struct scatterlist *sg,
| ^~~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_core.c:2991:12: warning: 'spacc_load_skp' defined but not used [-Wunused-function]
2991 | static int spacc_load_skp(struct spacc_device *spacc, uint32_t *key, int keysz,
| ^~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_core.c:2849:13: warning: 'spacc_set_secure_mode' defined but not used [-Wunused-function]
2849 | static void spacc_set_secure_mode(struct spacc_device *spacc, int src, int dst,
| ^~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_core.c:974:26: warning: 'names' defined but not used [-Wunused-const-variable=]
974 | static const char *const names[] = {
| ^~~~~
In file included from <command-line>:
In function 'spacc_sg_chain',
inlined from 'fixup_sg' at drivers/crypto/dwc-spacc/spacc_core.c:1105:4,
inlined from 'spacc_sgs_to_ddt' at drivers/crypto/dwc-spacc/spacc_core.c:1132:16:
>> include/linux/compiler_types.h:425:45: error: call to '__compiletime_assert_235' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_DEBUG_SG)
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:406:25: note: in definition of macro '__compiletime_assert'
406 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:425:9: note: in expansion of macro '_compiletime_assert'
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1072:9: note: in expansion of macro 'BUILD_BUG_ON'
1072 | BUILD_BUG_ON(IS_ENABLED(CONFIG_DEBUG_SG));
| ^~~~~~~~~~~~
In function 'spacc_sg_chain',
inlined from 'fixup_sg' at drivers/crypto/dwc-spacc/spacc_core.c:1105:4,
inlined from 'spacc_sg_to_ddt' at drivers/crypto/dwc-spacc/spacc_core.c:1222:15:
>> include/linux/compiler_types.h:425:45: error: call to '__compiletime_assert_235' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_DEBUG_SG)
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:406:25: note: in definition of macro '__compiletime_assert'
406 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:425:9: note: in expansion of macro '_compiletime_assert'
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1072:9: note: in expansion of macro 'BUILD_BUG_ON'
1072 | BUILD_BUG_ON(IS_ENABLED(CONFIG_DEBUG_SG));
| ^~~~~~~~~~~~
--
>> drivers/crypto/dwc-spacc/spacc_ahash.c:499:5: warning: no previous prototype for 'do_shash' [-Wmissing-prototypes]
499 | int do_shash(unsigned char *name, unsigned char *result,
| ^~~~~~~~
drivers/crypto/dwc-spacc/spacc_ahash.c: In function 'spacc_hash_final':
>> drivers/crypto/dwc-spacc/spacc_ahash.c:1007:13: warning: variable 'err' set but not used [-Wunused-but-set-variable]
1007 | int err;
| ^~~
drivers/crypto/dwc-spacc/spacc_ahash.c: In function 'probe_hashes':
>> drivers/crypto/dwc-spacc/spacc_ahash.c:177:59: warning: '%s' directive output may be truncated writing up to 8479 bytes into a region of size 128 [-Wformat-truncation=]
177 | snprintf(calg->cra_name, sizeof(calg->cra_name), "%s", mode->name);
| ^~
In function 'spacc_init_calg',
inlined from 'spacc_register_hash' at drivers/crypto/dwc-spacc/spacc_ahash.c:1164:2,
inlined from 'probe_hashes' at drivers/crypto/dwc-spacc/spacc_ahash.c:1211:9:
drivers/crypto/dwc-spacc/spacc_ahash.c:177:9: note: 'snprintf' output between 1 and 8480 bytes into a destination of size 128
177 | snprintf(calg->cra_name, sizeof(calg->cra_name), "%s", mode->name);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_ahash.c: In function 'probe_hashes':
drivers/crypto/dwc-spacc/spacc_ahash.c:179:25: warning: '%s' directive output may be truncated writing up to 8479 bytes into a region of size 122 [-Wformat-truncation=]
179 | "spacc-%s", mode->name);
| ^~
In function 'spacc_init_calg',
inlined from 'spacc_register_hash' at drivers/crypto/dwc-spacc/spacc_ahash.c:1164:2,
inlined from 'probe_hashes' at drivers/crypto/dwc-spacc/spacc_ahash.c:1211:9:
drivers/crypto/dwc-spacc/spacc_ahash.c:178:9: note: 'snprintf' output between 7 and 8486 bytes into a destination of size 128
178 | snprintf(calg->cra_driver_name, sizeof(calg->cra_driver_name),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
179 | "spacc-%s", mode->name);
| ~~~~~~~~~~~~~~~~~~~~~~~
--
>> drivers/crypto/dwc-spacc/spacc_interrupt.c:188:6: warning: no previous prototype for 'spacc_disable_int' [-Wmissing-prototypes]
188 | void spacc_disable_int (struct spacc_device *spacc)
| ^~~~~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_interrupt.c:194:13: warning: no previous prototype for 'spacc_irq_handler' [-Wmissing-prototypes]
194 | irqreturn_t spacc_irq_handler(int irq, void *dev)
| ^~~~~~~~~~~~~~~~~
--
drivers/crypto/dwc-spacc/spacc_hal.c: In function 'pdu_get_version':
>> drivers/crypto/dwc-spacc/spacc_hal.c:19:28: warning: variable 'ver' set but not used [-Wunused-but-set-variable]
19 | unsigned long tmp, ver;
| ^~~
drivers/crypto/dwc-spacc/spacc_hal.c: At top level:
>> drivers/crypto/dwc-spacc/spacc_hal.c:374:5: warning: no previous prototype for 'pdu_sg_to_ddt' [-Wmissing-prototypes]
374 | int pdu_sg_to_ddt(struct scatterlist *sg, int sg_count, struct pdu_ddt *ddt)
| ^~~~~~~~~~~~~
--
drivers/crypto/dwc-spacc/spacc_aead.c: In function 'spacc_aead_init_dma':
>> drivers/crypto/dwc-spacc/spacc_aead.c:256:31: warning: variable 'buf' set but not used [-Wunused-but-set-variable]
256 | char *buf = sg_virt(req->src);
| ^~~
vim +/__compiletime_assert_235 +425 include/linux/compiler_types.h
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 411
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 412 #define _compiletime_assert(condition, msg, prefix, suffix) \
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 413 __compiletime_assert(condition, msg, prefix, suffix)
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 414
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 415 /**
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 416 * compiletime_assert - break build and emit msg if condition is false
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 417 * @condition: a compile-time constant condition to check
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 418 * @msg: a message to emit if condition is false
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 419 *
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 420 * In tradition of POSIX assert, this macro will break the build if the
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 421 * supplied condition is *false*, emitting the supplied error message if the
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 422 * compiler has support to do so.
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 423 */
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 424 #define compiletime_assert(condition, msg) \
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 @425 _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 426
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
@ 2023-11-15 1:57 ` kernel test robot
0 siblings, 0 replies; 19+ messages in thread
From: kernel test robot @ 2023-11-15 1:57 UTC (permalink / raw)
To: Pavitrakumar M, herbert, linux-crypto
Cc: oe-kbuild-all, manjunath.hadli, Pavitrakumar M, shwetar,
Ruud Derwig
Hi Pavitrakumar,
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.7-rc1]
[cannot apply to xilinx-xlnx/master next-20231114]
[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/Pavitrakumar-M/Add-SPACC-driver-to-Linux-kernel/20231114-143618
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/20231114050525.471854-5-pavitrakumarm%40vayavyalabs.com
patch subject: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
config: csky-randconfig-001-20231114 (https://download.01.org/0day-ci/archive/20231114/202311141830.g6TK9OTS-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231114/202311141830.g6TK9OTS-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 <yujie.liu@intel.com>
| Closes: https://lore.kernel.org/r/202311141830.g6TK9OTS-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:87:5: warning: no previous prototype for 'spacc_skcipher_fallback' [-Wmissing-prototypes]
87 | int spacc_skcipher_fallback(unsigned char *name, struct skcipher_request *req,
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_skcipher.c: In function 'spacc_cipher_cb':
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:131:18: warning: variable 'rc' set but not used [-Wunused-but-set-variable]
131 | int err, rc;
| ^~
drivers/crypto/dwc-spacc/spacc_skcipher.c: At top level:
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:155:5: warning: no previous prototype for 'spacc_cipher_init_dma' [-Wmissing-prototypes]
155 | int spacc_cipher_init_dma(struct device *dev, struct skcipher_request *req)
| ^~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:179:5: warning: no previous prototype for 'spacc_cipher_cra_init' [-Wmissing-prototypes]
179 | int spacc_cipher_cra_init(struct crypto_tfm *tfm)
| ^~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:210:5: warning: no previous prototype for 'spacc_cipher_setkey' [-Wmissing-prototypes]
210 | int spacc_cipher_setkey(struct crypto_skcipher *tfm, const u8 *key,
| ^~~~~~~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:283:5: warning: no previous prototype for 'spacc_cipher_process' [-Wmissing-prototypes]
283 | int spacc_cipher_process(struct skcipher_request *req, int enc_dec)
| ^~~~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_skcipher.c: In function 'spacc_cipher_process':
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:293:13: warning: variable 'ivsize' set but not used [-Wunused-but-set-variable]
293 | int ivsize;
| ^~~~~~
drivers/crypto/dwc-spacc/spacc_skcipher.c: At top level:
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:473:5: warning: no previous prototype for 'spacc_cipher_encrypt' [-Wmissing-prototypes]
473 | int spacc_cipher_encrypt(struct skcipher_request *req)
| ^~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:487:5: warning: no previous prototype for 'spacc_cipher_decrypt' [-Wmissing-prototypes]
487 | int spacc_cipher_decrypt(struct skcipher_request *req)
| ^~~~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_skcipher.c: In function 'probe_ciphers':
>> drivers/crypto/dwc-spacc/spacc_skcipher.c:533:59: warning: '%s' directive output may be truncated writing up to 5299 bytes into a region of size 128 [-Wformat-truncation=]
533 | snprintf(calg->cra_name, sizeof(calg->cra_name), "%s", mode->name);
| ^~
In function 'spacc_init_calg',
inlined from 'spacc_register_cipher' at drivers/crypto/dwc-spacc/spacc_skcipher.c:549:2,
inlined from 'probe_ciphers' at drivers/crypto/dwc-spacc/spacc_skcipher.c:596:11:
drivers/crypto/dwc-spacc/spacc_skcipher.c:533:9: note: 'snprintf' output between 1 and 5300 bytes into a destination of size 128
533 | snprintf(calg->cra_name, sizeof(calg->cra_name), "%s", mode->name);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_skcipher.c: In function 'probe_ciphers':
drivers/crypto/dwc-spacc/spacc_skcipher.c:535:25: warning: '%s' directive output may be truncated writing up to 5299 bytes into a region of size 122 [-Wformat-truncation=]
535 | "spacc-%s", mode->name);
| ^~
In function 'spacc_init_calg',
inlined from 'spacc_register_cipher' at drivers/crypto/dwc-spacc/spacc_skcipher.c:549:2,
inlined from 'probe_ciphers' at drivers/crypto/dwc-spacc/spacc_skcipher.c:596:11:
drivers/crypto/dwc-spacc/spacc_skcipher.c:534:9: note: 'snprintf' output between 7 and 5306 bytes into a destination of size 128
534 | snprintf(calg->cra_driver_name, sizeof(calg->cra_driver_name),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
535 | "spacc-%s", mode->name);
| ~~~~~~~~~~~~~~~~~~~~~~~
--
>> drivers/crypto/dwc-spacc/spacc_core.c:1113:5: warning: no previous prototype for 'spacc_sgs_to_ddt' [-Wmissing-prototypes]
1113 | int spacc_sgs_to_ddt(struct device *dev,
| ^~~~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_core.c:1179:5: warning: no previous prototype for 'modify_scatterlist' [-Wmissing-prototypes]
1179 | int modify_scatterlist(struct scatterlist *src, struct scatterlist *dst,
| ^~~~~~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_core.c:1215:5: warning: no previous prototype for 'spacc_sg_to_ddt' [-Wmissing-prototypes]
1215 | int spacc_sg_to_ddt(struct device *dev, struct scatterlist *sg,
| ^~~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_core.c:2991:12: warning: 'spacc_load_skp' defined but not used [-Wunused-function]
2991 | static int spacc_load_skp(struct spacc_device *spacc, uint32_t *key, int keysz,
| ^~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_core.c:2849:13: warning: 'spacc_set_secure_mode' defined but not used [-Wunused-function]
2849 | static void spacc_set_secure_mode(struct spacc_device *spacc, int src, int dst,
| ^~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_core.c:974:26: warning: 'names' defined but not used [-Wunused-const-variable=]
974 | static const char *const names[] = {
| ^~~~~
In file included from <command-line>:
In function 'spacc_sg_chain',
inlined from 'fixup_sg' at drivers/crypto/dwc-spacc/spacc_core.c:1105:4,
inlined from 'spacc_sgs_to_ddt' at drivers/crypto/dwc-spacc/spacc_core.c:1132:16:
>> include/linux/compiler_types.h:425:45: error: call to '__compiletime_assert_235' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_DEBUG_SG)
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:406:25: note: in definition of macro '__compiletime_assert'
406 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:425:9: note: in expansion of macro '_compiletime_assert'
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1072:9: note: in expansion of macro 'BUILD_BUG_ON'
1072 | BUILD_BUG_ON(IS_ENABLED(CONFIG_DEBUG_SG));
| ^~~~~~~~~~~~
In function 'spacc_sg_chain',
inlined from 'fixup_sg' at drivers/crypto/dwc-spacc/spacc_core.c:1105:4,
inlined from 'spacc_sg_to_ddt' at drivers/crypto/dwc-spacc/spacc_core.c:1222:15:
>> include/linux/compiler_types.h:425:45: error: call to '__compiletime_assert_235' declared with attribute error: BUILD_BUG_ON failed: IS_ENABLED(CONFIG_DEBUG_SG)
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:406:25: note: in definition of macro '__compiletime_assert'
406 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:425:9: note: in expansion of macro '_compiletime_assert'
425 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_core.c:1072:9: note: in expansion of macro 'BUILD_BUG_ON'
1072 | BUILD_BUG_ON(IS_ENABLED(CONFIG_DEBUG_SG));
| ^~~~~~~~~~~~
--
>> drivers/crypto/dwc-spacc/spacc_ahash.c:499:5: warning: no previous prototype for 'do_shash' [-Wmissing-prototypes]
499 | int do_shash(unsigned char *name, unsigned char *result,
| ^~~~~~~~
drivers/crypto/dwc-spacc/spacc_ahash.c: In function 'spacc_hash_final':
>> drivers/crypto/dwc-spacc/spacc_ahash.c:1007:13: warning: variable 'err' set but not used [-Wunused-but-set-variable]
1007 | int err;
| ^~~
drivers/crypto/dwc-spacc/spacc_ahash.c: In function 'probe_hashes':
>> drivers/crypto/dwc-spacc/spacc_ahash.c:177:59: warning: '%s' directive output may be truncated writing up to 8479 bytes into a region of size 128 [-Wformat-truncation=]
177 | snprintf(calg->cra_name, sizeof(calg->cra_name), "%s", mode->name);
| ^~
In function 'spacc_init_calg',
inlined from 'spacc_register_hash' at drivers/crypto/dwc-spacc/spacc_ahash.c:1164:2,
inlined from 'probe_hashes' at drivers/crypto/dwc-spacc/spacc_ahash.c:1211:9:
drivers/crypto/dwc-spacc/spacc_ahash.c:177:9: note: 'snprintf' output between 1 and 8480 bytes into a destination of size 128
177 | snprintf(calg->cra_name, sizeof(calg->cra_name), "%s", mode->name);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/dwc-spacc/spacc_ahash.c: In function 'probe_hashes':
drivers/crypto/dwc-spacc/spacc_ahash.c:179:25: warning: '%s' directive output may be truncated writing up to 8479 bytes into a region of size 122 [-Wformat-truncation=]
179 | "spacc-%s", mode->name);
| ^~
In function 'spacc_init_calg',
inlined from 'spacc_register_hash' at drivers/crypto/dwc-spacc/spacc_ahash.c:1164:2,
inlined from 'probe_hashes' at drivers/crypto/dwc-spacc/spacc_ahash.c:1211:9:
drivers/crypto/dwc-spacc/spacc_ahash.c:178:9: note: 'snprintf' output between 7 and 8486 bytes into a destination of size 128
178 | snprintf(calg->cra_driver_name, sizeof(calg->cra_driver_name),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
179 | "spacc-%s", mode->name);
| ~~~~~~~~~~~~~~~~~~~~~~~
--
>> drivers/crypto/dwc-spacc/spacc_interrupt.c:188:6: warning: no previous prototype for 'spacc_disable_int' [-Wmissing-prototypes]
188 | void spacc_disable_int (struct spacc_device *spacc)
| ^~~~~~~~~~~~~~~~~
>> drivers/crypto/dwc-spacc/spacc_interrupt.c:194:13: warning: no previous prototype for 'spacc_irq_handler' [-Wmissing-prototypes]
194 | irqreturn_t spacc_irq_handler(int irq, void *dev)
| ^~~~~~~~~~~~~~~~~
--
drivers/crypto/dwc-spacc/spacc_hal.c: In function 'pdu_get_version':
>> drivers/crypto/dwc-spacc/spacc_hal.c:19:28: warning: variable 'ver' set but not used [-Wunused-but-set-variable]
19 | unsigned long tmp, ver;
| ^~~
drivers/crypto/dwc-spacc/spacc_hal.c: At top level:
>> drivers/crypto/dwc-spacc/spacc_hal.c:374:5: warning: no previous prototype for 'pdu_sg_to_ddt' [-Wmissing-prototypes]
374 | int pdu_sg_to_ddt(struct scatterlist *sg, int sg_count, struct pdu_ddt *ddt)
| ^~~~~~~~~~~~~
--
drivers/crypto/dwc-spacc/spacc_aead.c: In function 'spacc_aead_init_dma':
>> drivers/crypto/dwc-spacc/spacc_aead.c:256:31: warning: variable 'buf' set but not used [-Wunused-but-set-variable]
256 | char *buf = sg_virt(req->src);
| ^~~
vim +/__compiletime_assert_235 +425 include/linux/compiler_types.h
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 411
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 412 #define _compiletime_assert(condition, msg, prefix, suffix) \
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 413 __compiletime_assert(condition, msg, prefix, suffix)
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 414
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 415 /**
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 416 * compiletime_assert - break build and emit msg if condition is false
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 417 * @condition: a compile-time constant condition to check
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 418 * @msg: a message to emit if condition is false
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 419 *
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 420 * In tradition of POSIX assert, this macro will break the build if the
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 421 * supplied condition is *false*, emitting the supplied error message if the
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 422 * compiler has support to do so.
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 423 */
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 424 #define compiletime_assert(condition, msg) \
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 @425 _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
eb5c2d4b45e3d2d5 Will Deacon 2020-07-21 426
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH 0/4] Add crypto spacc driver to support cipher, hash and aead
@ 2023-11-14 5:05 Pavitrakumar M
2023-11-14 5:05 ` [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file Pavitrakumar M
0 siblings, 1 reply; 19+ messages in thread
From: Pavitrakumar M @ 2023-11-14 5:05 UTC (permalink / raw)
To: herbert, linux-crypto; +Cc: manjunath.hadli, Pavitrakumar M
Add the driver for SPAcc(Security Protocol Accelerator), which is a
crypto acceleration IP from Synopsys. The SPAcc supports many cipher,
hash and aead algorithms and various modes.The driver currently supports
below modes
aead:
- ccm(sm4)
- ccm(aes)
- gcm(sm4)
- gcm(aes)
- rfc8998(gcm(sm4))
- rfc7539(chacha20,poly1305)
cipher:
- cbc(sm4)
- ecb(sm4)
- ofb(sm4)
- cfb(sm4)
- ctr(sm4)
- cbc(aes)
- ecb(aes)
- ctr(aes)
- xts(aes)
- cts(cbc(aes))
- cbc(des)
- ecb(des)
- cbc(des3_ede)
- ecb(des3_ede)
- chacha20
- xts(sm4)
- cts(cbc(sm4))
- ecb(kasumi)
- f8(kasumi)
- snow3g_uea2
- cs1(cbc(aes))
- cs2(cbc(aes))
- cs1(cbc(sm4))
- cs2(cbc(sm4))
- f8(sm4)
hash:
- michael_mic
- sm3
- hmac(sm3)
- sha3-512
- sha3-384
- sha3-256
- sha3-224
- hmac(sha512)
- hmac(sha384)
- hmac(sha256)
- hmac(sha224)
- sha512
- sha384
- sha256
- sha224
- sha1
- hmac(sha1)
- md5
- hmac(md5)
- cmac(sm4)
- xcbc(aes)
- cmac(aes)
- xcbc(sm4)
- sha512-224
- hmac(sha512-224)
- sha512-256
- hmac(sha512-256)
- mac(kasumi_f9)
- mac(snow3g)
- mac(zuc)
- sslmac(sha1)
- shake128
- shake256
- cshake128
- cshake256
- kcmac128
- kcmac256
- kcmacxof128
- kcmacxof256
- sslmac(md5)
Pavitrakumar M (4):
Add SPACC driver to Linux kernel
Add SPACC Kconfig and Makefile
Add SPAcc dts overlay
Enable Driver compilation in crypto Kconfig and Makefile file
arch/arm64/boot/dts/xilinx/Makefile | 3 +
.../arm64/boot/dts/xilinx/snps-dwc-spacc.dtso | 35 +
drivers/crypto/Kconfig | 1 +
drivers/crypto/Makefile | 1 +
drivers/crypto/dwc-spacc/Kconfig | 95 +
drivers/crypto/dwc-spacc/Makefile | 16 +
drivers/crypto/dwc-spacc/spacc_aead.c | 1352 ++++++++
drivers/crypto/dwc-spacc/spacc_ahash.c | 1241 +++++++
drivers/crypto/dwc-spacc/spacc_core.c | 3044 +++++++++++++++++
drivers/crypto/dwc-spacc/spacc_core.h | 821 +++++
drivers/crypto/dwc-spacc/spacc_device.c | 322 ++
drivers/crypto/dwc-spacc/spacc_device.h | 238 ++
drivers/crypto/dwc-spacc/spacc_hal.c | 390 +++
drivers/crypto/dwc-spacc/spacc_hal.h | 113 +
drivers/crypto/dwc-spacc/spacc_interrupt.c | 216 ++
drivers/crypto/dwc-spacc/spacc_manager.c | 707 ++++
drivers/crypto/dwc-spacc/spacc_skcipher.c | 629 ++++
17 files changed, 9224 insertions(+)
create mode 100644 arch/arm64/boot/dts/xilinx/snps-dwc-spacc.dtso
create mode 100644 drivers/crypto/dwc-spacc/Kconfig
create mode 100644 drivers/crypto/dwc-spacc/Makefile
create mode 100755 drivers/crypto/dwc-spacc/spacc_aead.c
create mode 100644 drivers/crypto/dwc-spacc/spacc_ahash.c
create mode 100644 drivers/crypto/dwc-spacc/spacc_core.c
create mode 100755 drivers/crypto/dwc-spacc/spacc_core.h
create mode 100644 drivers/crypto/dwc-spacc/spacc_device.c
create mode 100755 drivers/crypto/dwc-spacc/spacc_device.h
create mode 100644 drivers/crypto/dwc-spacc/spacc_hal.c
create mode 100755 drivers/crypto/dwc-spacc/spacc_hal.h
create mode 100644 drivers/crypto/dwc-spacc/spacc_interrupt.c
create mode 100644 drivers/crypto/dwc-spacc/spacc_manager.c
create mode 100644 drivers/crypto/dwc-spacc/spacc_skcipher.c
--
2.25.1
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
2023-11-14 5:05 [PATCH 0/4] Add crypto spacc driver to support cipher, hash and aead Pavitrakumar M
@ 2023-11-14 5:05 ` Pavitrakumar M
0 siblings, 0 replies; 19+ messages in thread
From: Pavitrakumar M @ 2023-11-14 5:05 UTC (permalink / raw)
To: herbert, linux-crypto
Cc: manjunath.hadli, Pavitrakumar M, shwetar, Ruud Derwig
Signed-off-by: shwetar <shwetar@vayavyalabs.com>
Signed-off-by: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
Acked-by: Ruud Derwig <Ruud.Derwig@synopsys.com>
---
drivers/crypto/Kconfig | 1 +
drivers/crypto/Makefile | 1 +
2 files changed, 2 insertions(+)
diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig
index 79c3bb9c99c3..c80b63438b55 100644
--- a/drivers/crypto/Kconfig
+++ b/drivers/crypto/Kconfig
@@ -703,6 +703,7 @@ config CRYPTO_DEV_BCM_SPU
ahash, and aead algorithms with the kernel cryptographic API.
source "drivers/crypto/stm32/Kconfig"
+source "drivers/crypto/dwc-spacc/Kconfig"
config CRYPTO_DEV_SAFEXCEL
tristate "Inside Secure's SafeXcel cryptographic engine driver"
diff --git a/drivers/crypto/Makefile b/drivers/crypto/Makefile
index d859d6a5f3a4..25558a26c4e3 100644
--- a/drivers/crypto/Makefile
+++ b/drivers/crypto/Makefile
@@ -47,6 +47,7 @@ obj-$(CONFIG_CRYPTO_DEV_BCM_SPU) += bcm/
obj-$(CONFIG_CRYPTO_DEV_SAFEXCEL) += inside-secure/
obj-$(CONFIG_CRYPTO_DEV_ARTPEC6) += axis/
obj-y += xilinx/
+obj-y += dwc-spacc/
obj-y += hisilicon/
obj-$(CONFIG_CRYPTO_DEV_AMLOGIC_GXL) += amlogic/
obj-y += intel/
--
2.25.1
^ permalink raw reply related [flat|nested] 19+ messages in thread
end of thread, other threads:[~2024-03-13 10:43 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-07 14:17 [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2024-03-13 5:08 kernel test robot
2024-03-11 2:38 kernel test robot
2024-03-10 15:40 kernel test robot
2024-03-05 11:28 [PATCH 0/4] Add spacc crypto driver support Pavitrakumar M
2024-03-05 11:28 ` [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file Pavitrakumar M
2024-03-06 4:08 ` kernel test robot
2024-03-06 6:43 ` kernel test robot
2024-03-06 6:43 ` kernel test robot
2024-03-06 7:26 ` kernel test robot
2024-03-07 14:24 ` Dan Carpenter
2024-03-11 7:40 ` Dan Carpenter
2024-03-13 10:43 ` kernel test robot
2023-11-14 13:42 kernel test robot
2023-11-15 2:00 ` kernel test robot
2023-11-14 11:45 kernel test robot
2023-11-15 1:58 ` kernel test robot
2023-11-14 10:40 kernel test robot
2023-11-15 1:57 ` kernel test robot
2023-11-14 5:05 [PATCH 0/4] Add crypto spacc driver to support cipher, hash and aead Pavitrakumar M
2023-11-14 5:05 ` [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file Pavitrakumar M
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.