From: kernel test robot <lkp@intel.com>
To: Pavitrakumar M <pavitrakumarm@vayavyalabs.com>,
herbert@gondor.apana.org.au, linux-crypto@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev, Ruud.Derwig@synopsys.com,
manjunath.hadli@vayavyalabs.com,
Pavitrakumar M <pavitrakumarm@vayavyalabs.com>
Subject: Re: [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file
Date: Wed, 6 Mar 2024 12:08:26 +0800 [thread overview]
Message-ID: <202403061121.TsVV67xo-lkp@intel.com> (raw)
In-Reply-To: <20240305112831.3380896-5-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-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
next prev parent reply other threads:[~2024-03-06 4:09 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-05 11:28 [PATCH 0/4] Add spacc crypto driver support Pavitrakumar M
2024-03-05 11:28 ` [PATCH 1/4] Add SPAcc driver to Linux kernel Pavitrakumar M
2024-03-05 11:28 ` [PATCH 2/4] Add SPACC Kconfig and Makefile Pavitrakumar M
2024-03-06 5:42 ` Easwar Hariharan
2024-03-06 6:38 ` Pavitrakumar Managutte
2024-03-05 11:28 ` [PATCH 3/4] Add SPAcc dts overlay 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 [this message]
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
2024-03-05 21:13 ` [PATCH 0/4] Add spacc crypto driver support Eric Biggers
2024-03-06 3:46 ` Pavitrakumar Managutte
2024-03-06 4:00 ` Eric Biggers
2024-03-06 5:07 ` Pavitrakumar Managutte
-- strict thread matches above, loose matches on Subject: below --
2024-03-13 5:08 [PATCH 4/4] Enable Driver compilation in crypto Kconfig and Makefile file kernel test robot
2024-03-11 2:38 kernel test robot
2024-03-10 15:40 kernel test robot
2024-03-07 14:17 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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202403061121.TsVV67xo-lkp@intel.com \
--to=lkp@intel.com \
--cc=Ruud.Derwig@synopsys.com \
--cc=herbert@gondor.apana.org.au \
--cc=linux-crypto@vger.kernel.org \
--cc=manjunath.hadli@vayavyalabs.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=pavitrakumarm@vayavyalabs.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.