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 <lkp@xxxxxxxxx> 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/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip