[PATCH 04/19] crypto: caam: convert tasklets to use new tasklet_setup() API

kernel test robot lkp at intel.com
Mon Aug 17 08:28:44 EDT 2020


Hi Allen,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on cryptodev/master]
[also build test ERROR on crypto/master rockchip/for-next v5.9-rc1 next-20200817]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Allen-Pais/crypto-convert-tasklets-to-use-new-tasklet_setup/20200817-161307
base:   https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
config: arm-allyesconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>

All errors (new ones prefixed by >>):

   drivers/crypto/caam/jr.c: In function 'caam_jr_dequeue':
   drivers/crypto/caam/jr.c:207:36: error: implicit declaration of function 'from_tasklet' [-Werror=implicit-function-declaration]
     207 |  struct caam_drv_private_jr *jrp = from_tasklet(jrp, t, irqtask);
         |                                    ^~~~~~~~~~~~
   drivers/crypto/caam/jr.c:207:57: error: 'irqtask' undeclared (first use in this function); did you mean 'in_task'?
     207 |  struct caam_drv_private_jr *jrp = from_tasklet(jrp, t, irqtask);
         |                                                         ^~~~~~~
         |                                                         in_task
   drivers/crypto/caam/jr.c:207:57: note: each undeclared identifier is reported only once for each function it appears in
   In file included from drivers/crypto/caam/compat.h:18,
                    from drivers/crypto/caam/jr.c:13:
>> drivers/crypto/caam/jr.c:232:20: error: 'dev' undeclared (first use in this function); did you mean 'cdev'?
     232 |   dma_unmap_single(dev,
         |                    ^~~
   include/linux/dma-mapping.h:693:61: note: in definition of macro 'dma_unmap_single'
     693 | #define dma_unmap_single(d, a, s, r) dma_unmap_single_attrs(d, a, s, r, 0)
         |                                                             ^
   drivers/crypto/caam/jr.c: In function 'caam_jr_init':
   drivers/crypto/caam/jr.c:485:2: error: implicit declaration of function 'tasklet_setup' [-Werror=implicit-function-declaration]
     485 |  tasklet_setup(&jrp->irqtask, caam_jr_dequeue);
         |  ^~~~~~~~~~~~~
   In file included from include/linux/huge_mm.h:8,
                    from include/linux/mm.h:675,
                    from include/linux/scatterlist.h:8,
                    from include/linux/dma-mapping.h:11,
                    from drivers/crypto/caam/compat.h:18,
                    from drivers/crypto/caam/jr.c:13:
   At top level:
   drivers/crypto/caam/intern.h:212:25: warning: 'caam_fops_u64_ro' defined but not used [-Wunused-const-variable=]
     212 | DEFINE_SIMPLE_ATTRIBUTE(caam_fops_u64_ro, caam_debugfs_u64_get, NULL, "%llu\n");
         |                         ^~~~~~~~~~~~~~~~
   include/linux/fs.h:3519:37: note: in definition of macro 'DEFINE_SIMPLE_ATTRIBUTE'
    3519 | static const struct file_operations __fops = {    \
         |                                     ^~~~~~
   drivers/crypto/caam/intern.h:211:25: warning: 'caam_fops_u32_ro' defined but not used [-Wunused-const-variable=]
     211 | DEFINE_SIMPLE_ATTRIBUTE(caam_fops_u32_ro, caam_debugfs_u32_get, NULL, "%llu\n");
         |                         ^~~~~~~~~~~~~~~~
   include/linux/fs.h:3519:37: note: in definition of macro 'DEFINE_SIMPLE_ATTRIBUTE'
    3519 | static const struct file_operations __fops = {    \
         |                                     ^~~~~~
   cc1: some warnings being treated as errors

# https://github.com/0day-ci/linux/commit/788de4253aaa43e2340446894f0c6ecd67fa6a49
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Allen-Pais/crypto-convert-tasklets-to-use-new-tasklet_setup/20200817-161307
git checkout 788de4253aaa43e2340446894f0c6ecd67fa6a49
vim +232 drivers/crypto/caam/jr.c

8e8ec596e6c0144 Kim Phillips     2011-03-13  202  
2b163b5bce04546 Horia Geantă     2016-11-09  203  /* Deferred service handler, run as interrupt-fired tasklet */
788de4253aaa43e Allen Pais       2020-08-17  204  static void caam_jr_dequeue(struct tasklet_struct *t)
8e8ec596e6c0144 Kim Phillips     2011-03-13  205  {
8e8ec596e6c0144 Kim Phillips     2011-03-13  206  	int hw_idx, sw_idx, i, head, tail;
788de4253aaa43e Allen Pais       2020-08-17  207  	struct caam_drv_private_jr *jrp = from_tasklet(jrp, t, irqtask);
8e8ec596e6c0144 Kim Phillips     2011-03-13  208  	void (*usercall)(struct device *dev, u32 *desc, u32 status, void *arg);
8e8ec596e6c0144 Kim Phillips     2011-03-13  209  	u32 *userdesc, userstatus;
8e8ec596e6c0144 Kim Phillips     2011-03-13  210  	void *userarg;
16c4dd83a1b2a23 Vakul Garg       2019-03-05  211  	u32 outring_used = 0;
8e8ec596e6c0144 Kim Phillips     2011-03-13  212  
16c4dd83a1b2a23 Vakul Garg       2019-03-05  213  	while (outring_used ||
16c4dd83a1b2a23 Vakul Garg       2019-03-05  214  	       (outring_used = rd_reg32(&jrp->rregs->outring_used))) {
8e8ec596e6c0144 Kim Phillips     2011-03-13  215  
6aa7de059173a98 Mark Rutland     2017-10-23  216  		head = READ_ONCE(jrp->head);
8e8ec596e6c0144 Kim Phillips     2011-03-13  217  
a8ea07c21d40cf1 Kim Phillips     2012-06-22  218  		sw_idx = tail = jrp->tail;
8e8ec596e6c0144 Kim Phillips     2011-03-13  219  		hw_idx = jrp->out_ring_read_index;
a8ea07c21d40cf1 Kim Phillips     2012-06-22  220  
8e8ec596e6c0144 Kim Phillips     2011-03-13  221  		for (i = 0; CIRC_CNT(head, tail + i, JOBR_DEPTH) >= 1; i++) {
8e8ec596e6c0144 Kim Phillips     2011-03-13  222  			sw_idx = (tail + i) & (JOBR_DEPTH - 1);
8e8ec596e6c0144 Kim Phillips     2011-03-13  223  
6c5f898f12a3d65 Andrey Smirnov   2019-08-20  224  			if (jr_outentry_desc(jrp->outring, hw_idx) ==
261ea058f016bc0 Horia Geantă     2016-05-19  225  			    caam_dma_to_cpu(jrp->entinfo[sw_idx].desc_addr_dma))
8e8ec596e6c0144 Kim Phillips     2011-03-13  226  				break; /* found */
8e8ec596e6c0144 Kim Phillips     2011-03-13  227  		}
8e8ec596e6c0144 Kim Phillips     2011-03-13  228  		/* we should never fail to find a matching descriptor */
8e8ec596e6c0144 Kim Phillips     2011-03-13  229  		BUG_ON(CIRC_CNT(head, tail + i, JOBR_DEPTH) <= 0);
8e8ec596e6c0144 Kim Phillips     2011-03-13  230  
8e8ec596e6c0144 Kim Phillips     2011-03-13  231  		/* Unmap just-run descriptor so we can post-process */
cc98963dbaaea93 Horia Geantă     2018-08-06 @232  		dma_unmap_single(dev,
6c5f898f12a3d65 Andrey Smirnov   2019-08-20  233  				 caam_dma_to_cpu(jr_outentry_desc(jrp->outring,
6c5f898f12a3d65 Andrey Smirnov   2019-08-20  234  								  hw_idx)),
8e8ec596e6c0144 Kim Phillips     2011-03-13  235  				 jrp->entinfo[sw_idx].desc_size,
8e8ec596e6c0144 Kim Phillips     2011-03-13  236  				 DMA_TO_DEVICE);
8e8ec596e6c0144 Kim Phillips     2011-03-13  237  
8e8ec596e6c0144 Kim Phillips     2011-03-13  238  		/* mark completed, avoid matching on a recycled desc addr */
8e8ec596e6c0144 Kim Phillips     2011-03-13  239  		jrp->entinfo[sw_idx].desc_addr_dma = 0;
8e8ec596e6c0144 Kim Phillips     2011-03-13  240  
a118dfa0dbfcc8e Vakul Garg       2019-03-22  241  		/* Stash callback params */
8e8ec596e6c0144 Kim Phillips     2011-03-13  242  		usercall = jrp->entinfo[sw_idx].callbk;
8e8ec596e6c0144 Kim Phillips     2011-03-13  243  		userarg = jrp->entinfo[sw_idx].cbkarg;
8e8ec596e6c0144 Kim Phillips     2011-03-13  244  		userdesc = jrp->entinfo[sw_idx].desc_addr_virt;
6c5f898f12a3d65 Andrey Smirnov   2019-08-20  245  		userstatus = caam32_to_cpu(jr_outentry_jrstatus(jrp->outring,
6c5f898f12a3d65 Andrey Smirnov   2019-08-20  246  								hw_idx));
8e8ec596e6c0144 Kim Phillips     2011-03-13  247  
e7472422392461f Victoria Milhoan 2015-08-05  248  		/*
e7472422392461f Victoria Milhoan 2015-08-05  249  		 * Make sure all information from the job has been obtained
e7472422392461f Victoria Milhoan 2015-08-05  250  		 * before telling CAAM that the job has been removed from the
e7472422392461f Victoria Milhoan 2015-08-05  251  		 * output ring.
e7472422392461f Victoria Milhoan 2015-08-05  252  		 */
e7472422392461f Victoria Milhoan 2015-08-05  253  		mb();
e7472422392461f Victoria Milhoan 2015-08-05  254  
14a8e29cc201239 Kim Phillips     2012-06-22  255  		/* set done */
cbc22b062106993 Herbert Xu       2019-05-09  256  		wr_reg32(&jrp->rregs->outring_rmvd, 1);
8e8ec596e6c0144 Kim Phillips     2011-03-13  257  
8e8ec596e6c0144 Kim Phillips     2011-03-13  258  		jrp->out_ring_read_index = (jrp->out_ring_read_index + 1) &
8e8ec596e6c0144 Kim Phillips     2011-03-13  259  					   (JOBR_DEPTH - 1);
8e8ec596e6c0144 Kim Phillips     2011-03-13  260  
8e8ec596e6c0144 Kim Phillips     2011-03-13  261  		/*
8e8ec596e6c0144 Kim Phillips     2011-03-13  262  		 * if this job completed out-of-order, do not increment
8e8ec596e6c0144 Kim Phillips     2011-03-13  263  		 * the tail.  Otherwise, increment tail by 1 plus the
8e8ec596e6c0144 Kim Phillips     2011-03-13  264  		 * number of subsequent jobs already completed out-of-order
8e8ec596e6c0144 Kim Phillips     2011-03-13  265  		 */
8e8ec596e6c0144 Kim Phillips     2011-03-13  266  		if (sw_idx == tail) {
8e8ec596e6c0144 Kim Phillips     2011-03-13  267  			do {
8e8ec596e6c0144 Kim Phillips     2011-03-13  268  				tail = (tail + 1) & (JOBR_DEPTH - 1);
8e8ec596e6c0144 Kim Phillips     2011-03-13  269  			} while (CIRC_CNT(head, tail, JOBR_DEPTH) >= 1 &&
8e8ec596e6c0144 Kim Phillips     2011-03-13  270  				 jrp->entinfo[tail].desc_addr_dma == 0);
8e8ec596e6c0144 Kim Phillips     2011-03-13  271  
8e8ec596e6c0144 Kim Phillips     2011-03-13  272  			jrp->tail = tail;
8e8ec596e6c0144 Kim Phillips     2011-03-13  273  		}
8e8ec596e6c0144 Kim Phillips     2011-03-13  274  
8e8ec596e6c0144 Kim Phillips     2011-03-13  275  		/* Finally, execute user's callback */
8e8ec596e6c0144 Kim Phillips     2011-03-13  276  		usercall(dev, userdesc, userstatus, userarg);
16c4dd83a1b2a23 Vakul Garg       2019-03-05  277  		outring_used--;
8e8ec596e6c0144 Kim Phillips     2011-03-13  278  	}
8e8ec596e6c0144 Kim Phillips     2011-03-13  279  
8e8ec596e6c0144 Kim Phillips     2011-03-13  280  	/* reenable / unmask IRQs */
261ea058f016bc0 Horia Geantă     2016-05-19  281  	clrsetbits_32(&jrp->rregs->rconfig_lo, JRCFG_IMSK, 0);
8e8ec596e6c0144 Kim Phillips     2011-03-13  282  }
8e8ec596e6c0144 Kim Phillips     2011-03-13  283  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 75729 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-rockchip/attachments/20200817/658cd63d/attachment-0001.gz>


More information about the Linux-rockchip mailing list