[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <X/+YgTWY2k4AjxlK@google.com>
Date: Wed, 13 Jan 2021 17:04:01 -0800
From: Minchan Kim <minchan@...nel.org>
To: kernel test robot <lkp@...el.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>, kbuild-all@...ts.01.org,
Linux Memory Management List <linux-mm@...ck.org>,
LKML <linux-kernel@...r.kernel.org>, hyesoo.yu@...sung.com,
david@...hat.com, mhocko@...e.com, surenb@...gle.com,
pullip.cho@...sung.com, joaodias@...gle.com, hridya@...gle.com
Subject: Re: [PATCH v3 4/4] dma-buf: heaps: add chunk heap to dmabuf heaps
On Wed, Jan 13, 2021 at 11:11:56AM +0800, kernel test robot wrote:
> Hi Minchan,
>
> Thank you for the patch! Perhaps something to improve:
>
> [auto build test WARNING on next-20210112]
> [cannot apply to s390/features robh/for-next linux/master linus/master hnaz-linux-mm/master v5.11-rc3 v5.11-rc2 v5.11-rc1 v5.11-rc3]
> [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/Minchan-Kim/Chunk-Heap-Support-on-DMA-HEAP/20210113-092747
> base: df869cab4b3519d603806234861aa0a39df479c0
> config: mips-allyesconfig (attached as .config)
> compiler: mips-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
> # https://github.com/0day-ci/linux/commit/531ebc21d3c2584784d44714e3b4f1df46b80eee
> git remote add linux-review https://github.com/0day-ci/linux
> git fetch --no-tags linux-review Minchan-Kim/Chunk-Heap-Support-on-DMA-HEAP/20210113-092747
> git checkout 531ebc21d3c2584784d44714e3b4f1df46b80eee
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@...el.com>
>
> All warnings (new ones prefixed by >>):
>
> drivers/dma-buf/heaps/chunk_heap.c: In function 'chunk_heap_do_vmap':
> drivers/dma-buf/heaps/chunk_heap.c:215:24: error: implicit declaration of function 'vmalloc'; did you mean 'kvmalloc'? [-Werror=implicit-function-declaration]
> 215 | struct page **pages = vmalloc(sizeof(struct page *) * npages);
> | ^~~~~~~
> | kvmalloc
Looks like we need vmalloc.h.
> >> drivers/dma-buf/heaps/chunk_heap.c:215:24: warning: initialization of 'struct page **' from 'int' makes pointer from integer without a cast [-Wint-conversion]
> drivers/dma-buf/heaps/chunk_heap.c:228:10: error: implicit declaration of function 'vmap'; did you mean 'kmap'? [-Werror=implicit-function-declaration]
> 228 | vaddr = vmap(pages, npages, VM_MAP, PAGE_KERNEL);
> | ^~~~
> | kmap
We need vmap, not kmap.
> drivers/dma-buf/heaps/chunk_heap.c:228:30: error: 'VM_MAP' undeclared (first use in this function); did you mean 'VM_MTE'?
> 228 | vaddr = vmap(pages, npages, VM_MAP, PAGE_KERNEL);
> | ^~~~~~
> | VM_MTE
Looks like bot was confused since we have missed the vmalloc.h
In next spin, let's fix it.
> drivers/dma-buf/heaps/chunk_heap.c:228:30: note: each undeclared identifier is reported only once for each function it appears in
> drivers/dma-buf/heaps/chunk_heap.c:229:2: error: implicit declaration of function 'vfree'; did you mean 'kvfree'? [-Werror=implicit-function-declaration]
> 229 | vfree(pages);
> | ^~~~~
> | kvfree
> drivers/dma-buf/heaps/chunk_heap.c: In function 'chunk_heap_vunmap':
> drivers/dma-buf/heaps/chunk_heap.c:268:3: error: implicit declaration of function 'vunmap'; did you mean 'kunmap'? [-Werror=implicit-function-declaration]
> 268 | vunmap(buffer->vaddr);
> | ^~~~~~
> | kunmap
> cc1: some warnings being treated as errors
>
>
> vim +215 drivers/dma-buf/heaps/chunk_heap.c
>
> 210
> 211 static void *chunk_heap_do_vmap(struct chunk_heap_buffer *buffer)
> 212 {
> 213 struct sg_table *table = &buffer->sg_table;
> 214 int npages = PAGE_ALIGN(buffer->len) / PAGE_SIZE;
> > 215 struct page **pages = vmalloc(sizeof(struct page *) * npages);
> 216 struct page **tmp = pages;
> 217 struct sg_page_iter piter;
> 218 void *vaddr;
> 219
> 220 if (!pages)
> 221 return ERR_PTR(-ENOMEM);
> 222
> 223 for_each_sgtable_page(table, &piter, 0) {
> 224 WARN_ON(tmp - pages >= npages);
> 225 *tmp++ = sg_page_iter_page(&piter);
> 226 }
> 227
> 228 vaddr = vmap(pages, npages, VM_MAP, PAGE_KERNEL);
> 229 vfree(pages);
> 230
> 231 if (!vaddr)
> 232 return ERR_PTR(-ENOMEM);
> 233
> 234 return vaddr;
> 235 }
> 236
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Powered by blists - more mailing lists