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