lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202101131412.b5DqyOJ4-lkp@intel.com>
Date:   Wed, 13 Jan 2021 14:25:28 +0800
From:   kernel test robot <lkp@...el.com>
To:     Minchan Kim <minchan@...nel.org>,
        Andrew Morton <akpm@...ux-foundation.org>
Cc:     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

Hi Minchan,

Thank you for the patch! Yet something to improve:

[auto build test ERROR 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 errors (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
   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
>> 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
   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	
   237	static int chunk_heap_vmap(struct dma_buf *dmabuf, struct dma_buf_map *map)
   238	{
   239		struct chunk_heap_buffer *buffer = dmabuf->priv;
   240		void *vaddr;
   241	
   242		mutex_lock(&buffer->lock);
   243		if (buffer->vmap_cnt) {
   244			vaddr = buffer->vaddr;
   245		} else {
   246			vaddr = chunk_heap_do_vmap(buffer);
   247			if (IS_ERR(vaddr)) {
   248				mutex_unlock(&buffer->lock);
   249	
   250				return PTR_ERR(vaddr);
   251			}
   252			buffer->vaddr = vaddr;
   253		}
   254		buffer->vmap_cnt++;
   255		dma_buf_map_set_vaddr(map, vaddr);
   256	
   257		mutex_unlock(&buffer->lock);
   258	
   259		return 0;
   260	}
   261	
   262	static void chunk_heap_vunmap(struct dma_buf *dmabuf, struct dma_buf_map *map)
   263	{
   264		struct chunk_heap_buffer *buffer = dmabuf->priv;
   265	
   266		mutex_lock(&buffer->lock);
   267		if (!--buffer->vmap_cnt) {
 > 268			vunmap(buffer->vaddr);
   269			buffer->vaddr = NULL;
   270		}
   271		mutex_unlock(&buffer->lock);
   272	}
   273	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Download attachment ".config.gz" of type "application/gzip" (70046 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ