Re: [PATCH v2 29/41] dmaengine: ste_dma40: convert callback to helper function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

[auto build test ERROR on v4.7-rc7]
[also build test ERROR on next-20160715]
[cannot apply to slave-dma/next xlnx/master]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Dave-Jiang/Adding-transaction-result-return-for-dmaengine/20160716-044852
config: arm-multi_v7_defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 5.3.1-8) 5.3.1 20160205
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=arm 

All errors (new ones prefixed by >>):

   drivers/dma/ste_dma40.c: In function 'dma_tasklet':
>> drivers/dma/ste_dma40.c:1599:2: error: unknown type name 'dmaengine_desc_callback'
     dmaengine_desc_callback cb;
     ^
>> drivers/dma/ste_dma40.c:1626:42: error: passing argument 2 of 'dmaengine_desc_get_callback' from incompatible pointer type [-Werror=incompatible-pointer-types]
     dmaengine_desc_get_callback(&d40d->txd, &cb);
                                             ^
   In file included from drivers/dma/ste_dma40.c:13:0:
   include/linux/dmaengine.h:1381:1: note: expected 'struct dmaengine_desc_callback *' but argument is of type 'int *'
    dmaengine_desc_get_callback(struct dma_async_tx_descriptor *tx,
    ^
>> drivers/dma/ste_dma40.c:1648:34: error: passing argument 1 of 'dmaengine_desc_callback_invoke' from incompatible pointer type [-Werror=incompatible-pointer-types]
      dmaengine_desc_callback_invoke(&cb, NULL);
                                     ^
   In file included from drivers/dma/ste_dma40.c:13:0:
   include/linux/dmaengine.h:1389:1: note: expected 'struct dmaengine_desc_callback *' but argument is of type 'int *'
    dmaengine_desc_callback_invoke(struct dmaengine_desc_callback *cb,
    ^
   cc1: some warnings being treated as errors

vim +/dmaengine_desc_callback +1599 drivers/dma/ste_dma40.c

  1593	static void dma_tasklet(unsigned long data)
  1594	{
  1595		struct d40_chan *d40c = (struct d40_chan *) data;
  1596		struct d40_desc *d40d;
  1597		unsigned long flags;
  1598		bool callback_active;
> 1599		dmaengine_desc_callback cb;
  1600	
  1601		spin_lock_irqsave(&d40c->lock, flags);
  1602	
  1603		/* Get first entry from the done list */
  1604		d40d = d40_first_done(d40c);
  1605		if (d40d == NULL) {
  1606			/* Check if we have reached here for cyclic job */
  1607			d40d = d40_first_active_get(d40c);
  1608			if (d40d == NULL || !d40d->cyclic)
  1609				goto err;
  1610		}
  1611	
  1612		if (!d40d->cyclic)
  1613			dma_cookie_complete(&d40d->txd);
  1614	
  1615		/*
  1616		 * If terminating a channel pending_tx is set to zero.
  1617		 * This prevents any finished active jobs to return to the client.
  1618		 */
  1619		if (d40c->pending_tx == 0) {
  1620			spin_unlock_irqrestore(&d40c->lock, flags);
  1621			return;
  1622		}
  1623	
  1624		/* Callback to client */
  1625		callback_active = !!(d40d->txd.flags & DMA_PREP_INTERRUPT);
> 1626		dmaengine_desc_get_callback(&d40d->txd, &cb);
  1627	
  1628		if (!d40d->cyclic) {
  1629			if (async_tx_test_ack(&d40d->txd)) {
  1630				d40_desc_remove(d40d);
  1631				d40_desc_free(d40c, d40d);
  1632			} else if (!d40d->is_in_client_list) {
  1633				d40_desc_remove(d40d);
  1634				d40_lcla_free_all(d40c, d40d);
  1635				list_add_tail(&d40d->node, &d40c->client);
  1636				d40d->is_in_client_list = true;
  1637			}
  1638		}
  1639	
  1640		d40c->pending_tx--;
  1641	
  1642		if (d40c->pending_tx)
  1643			tasklet_schedule(&d40c->tasklet);
  1644	
  1645		spin_unlock_irqrestore(&d40c->lock, flags);
  1646	
  1647		if (callback_active)
> 1648			dmaengine_desc_callback_invoke(&cb, NULL);
  1649	
  1650		return;
  1651	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: Binary data


[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux PCI]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux