Hi Vinod,

I love your patch! Yet something to improve:

[auto build test ERROR on vkoul-dmaengine/next]
[also build test ERROR on v5.9-rc2 next-20200824]
[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/Vinod-Koul/dmaengine-Add-support-for-Qcom-GSI-dma-controller/20200824-174027
base:   https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
config: arm64-allyesconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross 
ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All error/warnings (new ones prefixed by >>):

>> drivers/dma/qcom/gpi.c:7: warning: "DEBUG" redefined
       7 | #define DEBUG
         | 
   <command-line>: note: this is the location of the previous definition
   drivers/dma/qcom/gpi.c: In function 'gpi_process_imed_data_event':
>> drivers/dma/qcom/gpi.c:1048:2: error: implicit declaration of function 
>> 'kfree'; did you mean 'vfree'? [-Werror=implicit-function-declaration]
    1048 |  kfree(gpi_desc);
         |  ^~~~~
         |  vfree
   drivers/dma/qcom/gpi.c: In function 'gpi_prep_slave_sg':
>> drivers/dma/qcom/gpi.c:1772:13: error: implicit declaration of function 
>> 'kzalloc'; did you mean 'vzalloc'? [-Werror=implicit-function-declaration]
    1772 |  gpi_desc = kzalloc(sizeof(*gpi_desc), GFP_NOWAIT);
         |             ^~~~~~~
         |             vzalloc
>> drivers/dma/qcom/gpi.c:1772:11: warning: assignment to 'struct gpi_desc *' 
>> from 'int' makes pointer from integer without a cast [-Wint-conversion]
    1772 |  gpi_desc = kzalloc(sizeof(*gpi_desc), GFP_NOWAIT);
         |           ^
   cc1: some warnings being treated as errors

# 
https://github.com/0day-ci/linux/commit/25062cc46a95e9de91752963ea85b934fe7acfa1
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review 
Vinod-Koul/dmaengine-Add-support-for-Qcom-GSI-dma-controller/20200824-174027
git checkout 25062cc46a95e9de91752963ea85b934fe7acfa1
vim +1048 drivers/dma/qcom/gpi.c

   969  
   970  /* process DMA Immediate completion data events */
   971  static void gpi_process_imed_data_event(struct gpii_chan *gpii_chan,
   972                                          struct immediate_data_event 
*imed_event)
   973  {
   974          struct gpii *gpii = gpii_chan->gpii;
   975          struct gpi_ring *ch_ring = &gpii_chan->ch_ring;
   976          void *tre = ch_ring->base + (ch_ring->el_size * 
imed_event->tre_index);
   977          struct dmaengine_result result;
   978          struct gpi_desc *gpi_desc;
   979          struct virt_dma_desc *vd;
   980          unsigned long flags;
   981          u32 chid;
   982  
   983          /*
   984           * If channel not active don't process event
   985           */
   986          if (gpii_chan->pm_state != ACTIVE_STATE) {
   987                  dev_err(gpii->gpi_dev->dev, "skipping processing event 
because ch @ %s state\n",
   988                          TO_GPI_PM_STR(gpii_chan->pm_state));
   989                  return;
   990          }
   991  
   992          spin_lock_irqsave(&gpii_chan->vc.lock, flags);
   993          vd = vchan_next_desc(&gpii_chan->vc);
   994          if (!vd) {
   995                  struct gpi_ere *gpi_ere;
   996                  struct gpi_tre *gpi_tre;
   997  
   998                  spin_unlock_irqrestore(&gpii_chan->vc.lock, flags);
   999                  dev_dbg(gpii->gpi_dev->dev, "event without a pending 
descriptor!\n");
  1000                  gpi_ere = (struct gpi_ere *)imed_event;
  1001                  dev_dbg(gpii->gpi_dev->dev,
  1002                          "Event: %08x %08x %08x %08x\n",
  1003                          gpi_ere->dword[0], gpi_ere->dword[1],
  1004                          gpi_ere->dword[2], gpi_ere->dword[3]);
  1005                  gpi_tre = tre;
  1006                  dev_dbg(gpii->gpi_dev->dev,
  1007                          "Pending TRE: %08x %08x %08x %08x\n",
  1008                          gpi_tre->dword[0], gpi_tre->dword[1],
  1009                          gpi_tre->dword[2], gpi_tre->dword[3]);
  1010                  return;
  1011          }
  1012          gpi_desc = to_gpi_desc(vd);
  1013          spin_unlock_irqrestore(&gpii_chan->vc.lock, flags);
  1014  
  1015          /*
  1016           * RP pointed by Event is to last TRE processed,
  1017           * we need to update ring rp to tre + 1
  1018           */
  1019          tre += ch_ring->el_size;
  1020          if (tre >= (ch_ring->base + ch_ring->len))
  1021                  tre = ch_ring->base;
  1022          ch_ring->rp = tre;
  1023  
  1024          /* make sure rp updates are immediately visible to all cores */
  1025          smp_wmb();
  1026  
  1027          chid = imed_event->chid;
  1028          if (imed_event->code == MSM_GPI_TCE_EOT && gpii->ieob_set) {
  1029                  if (chid == GPI_RX_CHAN)
  1030                          goto gpi_free_desc;
  1031                  else
  1032                          return;
  1033          }
  1034  
  1035          if (imed_event->code == MSM_GPI_TCE_UNEXP_ERR)
  1036                  result.result = DMA_TRANS_ABORTED;
  1037          else
  1038                  result.result = DMA_TRANS_NOERROR;
  1039          result.residue = gpi_desc->len - imed_event->length;
  1040  
  1041          dma_cookie_complete(&vd->tx);
  1042          dmaengine_desc_get_callback_invoke(&vd->tx, &result);
  1043  
  1044  gpi_free_desc:
  1045          spin_lock_irqsave(&gpii_chan->vc.lock, flags);
  1046          list_del(&vd->node);
  1047          spin_unlock_irqrestore(&gpii_chan->vc.lock, flags);
> 1048          kfree(gpi_desc);
  1049          gpi_desc = NULL;
  1050  }
  1051  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

Reply via email to