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 <l...@intel.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-...@lists.01.org


Reply via email to