drivers/gpu/drm/drm_gem_shmem_helper.c:261:17: error: implicit declaration of function 'pgprot_writecombine'

From: kbuild test robot
Date: Sun Feb 02 2020 - 02:14:44 EST


Hi Thomas,

FYI, the error/warning still remains.

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 26dca6dbd62d74a5012cafab6b2d6d65a01ea69c
commit: 08b22f65b309649057edfbae1d8772b04210b486 drm/udl: Switch to SHMEM
date: 3 months ago
config: m68k-randconfig-a001-20200201 (attached as .config)
compiler: m68k-linux-gcc (GCC) 7.5.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 08b22f65b309649057edfbae1d8772b04210b486
# save the attached .config to linux build tree
GCC_VERSION=7.5.0 make.cross ARCH=m68k

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

drivers/gpu/drm/drm_gem_shmem_helper.c: In function 'drm_gem_shmem_vmap_locked':
>> drivers/gpu/drm/drm_gem_shmem_helper.c:261:17: error: implicit declaration of function 'pgprot_writecombine' [-Werror=implicit-function-declaration]
VM_MAP, pgprot_writecombine(PAGE_KERNEL));
^~~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/drm_gem_shmem_helper.c:261:17: error: incompatible type for argument 4 of 'vmap'
In file included from include/asm-generic/io.h:887:0,
from arch/m68k/include/asm/io.h:11,
from arch/m68k/include/asm/pgtable_no.h:14,
from arch/m68k/include/asm/pgtable.h:3,
from include/linux/mm.h:99,
from include/linux/scatterlist.h:8,
from include/linux/dma-buf.h:18,
from drivers/gpu/drm/drm_gem_shmem_helper.c:6:
include/linux/vmalloc.h:119:14: note: expected 'pgprot_t {aka struct <anonymous>}' but argument is of type 'int'
extern void *vmap(struct page **pages, unsigned int count,
^~~~
drivers/gpu/drm/drm_gem_shmem_helper.c: In function 'drm_gem_shmem_mmap':
>> drivers/gpu/drm/drm_gem_shmem_helper.c:540:20: error: incompatible types when assigning to type 'pgprot_t {aka struct <anonymous>}' from type 'int'
vma->vm_page_prot = pgprot_writecombine(vm_get_page_prot(vma->vm_flags));
^
cc1: some warnings being treated as errors

vim +/pgprot_writecombine +261 drivers/gpu/drm/drm_gem_shmem_helper.c

2194a63a818db7 Noralf Trønnes 2019-03-12 244
2194a63a818db7 Noralf Trønnes 2019-03-12 245 static void *drm_gem_shmem_vmap_locked(struct drm_gem_shmem_object *shmem)
2194a63a818db7 Noralf Trønnes 2019-03-12 246 {
2194a63a818db7 Noralf Trønnes 2019-03-12 247 struct drm_gem_object *obj = &shmem->base;
2194a63a818db7 Noralf Trønnes 2019-03-12 248 int ret;
2194a63a818db7 Noralf Trønnes 2019-03-12 249
2194a63a818db7 Noralf Trønnes 2019-03-12 250 if (shmem->vmap_use_count++ > 0)
2194a63a818db7 Noralf Trønnes 2019-03-12 251 return shmem->vaddr;
2194a63a818db7 Noralf Trønnes 2019-03-12 252
2194a63a818db7 Noralf Trønnes 2019-03-12 253 ret = drm_gem_shmem_get_pages(shmem);
2194a63a818db7 Noralf Trønnes 2019-03-12 254 if (ret)
2194a63a818db7 Noralf Trønnes 2019-03-12 255 goto err_zero_use;
2194a63a818db7 Noralf Trønnes 2019-03-12 256
2194a63a818db7 Noralf Trønnes 2019-03-12 257 if (obj->import_attach)
2194a63a818db7 Noralf Trønnes 2019-03-12 258 shmem->vaddr = dma_buf_vmap(obj->import_attach->dmabuf);
2194a63a818db7 Noralf Trønnes 2019-03-12 259 else
be7d9f05c53e6f Boris Brezillon 2019-05-29 260 shmem->vaddr = vmap(shmem->pages, obj->size >> PAGE_SHIFT,
be7d9f05c53e6f Boris Brezillon 2019-05-29 @261 VM_MAP, pgprot_writecombine(PAGE_KERNEL));
2194a63a818db7 Noralf Trønnes 2019-03-12 262
2194a63a818db7 Noralf Trønnes 2019-03-12 263 if (!shmem->vaddr) {
2194a63a818db7 Noralf Trønnes 2019-03-12 264 DRM_DEBUG_KMS("Failed to vmap pages\n");
2194a63a818db7 Noralf Trønnes 2019-03-12 265 ret = -ENOMEM;
2194a63a818db7 Noralf Trønnes 2019-03-12 266 goto err_put_pages;
2194a63a818db7 Noralf Trønnes 2019-03-12 267 }
2194a63a818db7 Noralf Trønnes 2019-03-12 268
2194a63a818db7 Noralf Trønnes 2019-03-12 269 return shmem->vaddr;
2194a63a818db7 Noralf Trønnes 2019-03-12 270
2194a63a818db7 Noralf Trønnes 2019-03-12 271 err_put_pages:
2194a63a818db7 Noralf Trønnes 2019-03-12 272 drm_gem_shmem_put_pages(shmem);
2194a63a818db7 Noralf Trønnes 2019-03-12 273 err_zero_use:
2194a63a818db7 Noralf Trønnes 2019-03-12 274 shmem->vmap_use_count = 0;
2194a63a818db7 Noralf Trønnes 2019-03-12 275
2194a63a818db7 Noralf Trønnes 2019-03-12 276 return ERR_PTR(ret);
2194a63a818db7 Noralf Trønnes 2019-03-12 277 }
2194a63a818db7 Noralf Trønnes 2019-03-12 278

:::::: The code at line 261 was first introduced by commit
:::::: be7d9f05c53e6fc88525f8e55cf2dae937761799 drm/gem_shmem: Use a writecombine mapping for ->vaddr

:::::: TO: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx>
:::::: CC: Rob Herring <robh@xxxxxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx Intel Corporation

Attachment: .config.gz
Description: application/gzip