Re: [PATCH v2 2/2] drm/xe: Select CONFIG_DEVICE_PRIVATE when DRM_XE_GPUSVM is selected

kernel test robot
2026-01-20T23:18:05Z

Hi Thomas,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-xe/drm-xe-next]
[also build test ERROR on drm/drm-next drm-i915/for-linux-next drm-tip/drm-tip next-20260120]
[cannot apply to drm-misc/drm-misc-next daeinki-drm-exynos/exynos-drm-next drm-i915/for-linux-next-fixes linus/master v6.19-rc6]
[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#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Thomas-Hellstr-m/drm-drm-xe-Fix-xe-userptr-in-the-absence-of-CONFIG_DEVICE_PRIVATE/20260120-223858
base: https://gitlab.freedesktop.org/drm/xe/kernel.git drm-xe-next
patch link: https://lore.kernel.org/r/20260120143459.9485-3-thomas.hellstrom%40linux.intel.com
patch subject: [PATCH v2 2/2] drm/xe: Select CONFIG_DEVICE_PRIVATE when DRM_XE_GPUSVM is selected
config: parisc-allmodconfig (https://download.01.org/0day-ci/archive/20260121/202601210629.wmt9lHUu-lkp@intel.com/config)
compiler: hppa-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260121/202601210629.wmt9lHUu-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202601210629.wmt9lHUu-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

fs/dax.c: In function 'copy_cow_page_dax':
>> fs/dax.c:1018:9: error: implicit declaration of function 'copy_user_page'; did you mean 'copy_to_user_page'? [-Wimplicit-function-declaration]
1018 | copy_user_page(vto, kaddr, vmf->address, vmf->cow_page);
| ^~~~~~~~~~~~~~
| copy_to_user_page
--
mm/memremap.c: In function 'memremap_compat_align':
>> mm/memremap.c:36:16: error: 'SUBSECTION_SIZE' undeclared (first use in this function); did you mean 'SECTOR_SIZE'?
36 | return SUBSECTION_SIZE;
| ^~~~~~~~~~~~~~~
| SECTOR_SIZE
mm/memremap.c:36:16: note: each undeclared identifier is reported only once for each function it appears in
mm/memremap.c: In function 'pageunmap_range':
>> mm/memremap.c:96:9: error: implicit declaration of function 'remove_pfn_range_from_zone'; did you mean 'remap_pfn_range_complete'? [-Wimplicit-function-declaration]
96 | remove_pfn_range_from_zone(page_zone(first_page), PHYS_PFN(range->start),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
| remap_pfn_range_complete
>> mm/memremap.c:99:17: error: implicit declaration of function '__remove_pages'; did you mean 'move_pages'? [-Wimplicit-function-declaration]
99 | __remove_pages(PHYS_PFN(range->start),
| ^~~~~~~~~~~~~~
| move_pages
>> mm/memremap.c:102:17: error: implicit declaration of function 'arch_remove_memory'; did you mean 'remove_memory'? [-Wimplicit-function-declaration]
102 | arch_remove_memory(range->start, range_len(range),
| ^~~~~~~~~~~~~~~~~~
| remove_memory
mm/memremap.c: At top level:
>> mm/memremap.c:144:60: warning: 'struct mhp_params' declared inside parameter list will not be visible outside of this definition or declaration
144 | static int pagemap_range(struct dev_pagemap *pgmap, struct mhp_params *params,
| ^~~~~~~~~~
mm/memremap.c: In function 'pagemap_range':
>> mm/memremap.c:189:37: error: invalid use of undefined type 'struct mhp_params'
189 | &params->pgprot);
| ^~
>> mm/memremap.c:193:14: error: implicit declaration of function 'mhp_range_allowed' [-Wimplicit-function-declaration]
193 | if (!mhp_range_allowed(range->start, range_len(range), !is_private)) {
| ^~~~~~~~~~~~~~~~~
>> mm/memremap.c:212:25: error: implicit declaration of function 'add_pages'; did you mean 'dir_pages'? [-Wimplicit-function-declaration]
212 | error = add_pages(nid, PHYS_PFN(range->start),
| ^~~~~~~~~
| dir_pages
>> mm/memremap.c:221:25: error: implicit declaration of function 'arch_add_memory' [-Wimplicit-function-declaration]
221 | error = arch_add_memory(nid, range->start, range_len(range),
| ^~~~~~~~~~~~~~~
>> mm/memremap.c:229:17: error: implicit declaration of function 'move_pfn_range_to_zone' [-Wimplicit-function-declaration]
229 | move_pfn_range_to_zone(zone, PHYS_PFN(range->start),
| ^~~~~~~~~~~~~~~~~~~~~~
mm/memremap.c:230:67: error: invalid use of undefined type 'struct mhp_params'
230 | PHYS_PFN(range_len(range)), params->altmap,
| ^~
mm/memremap.c: In function 'memremap_pages':
>> mm/memremap.c:268:16: error: variable 'params' has initializer but incomplete type
268 | struct mhp_params params = {
| ^~~~~~~~~~
>> mm/memremap.c:269:18: error: 'struct mhp_params' has no member named 'altmap'
269 | .altmap = pgmap_altmap(pgmap),
| ^~~~~~
>> mm/memremap.c:269:27: warning: excess elements in struct initializer
269 | .altmap = pgmap_altmap(pgmap),
| ^~~~~~~~~~~~
mm/memremap.c:269:27: note: (near initialization for 'params')
>> mm/memremap.c:270:18: error: 'struct mhp_params' has no member named 'pgmap'
270 | .pgmap = pgmap,
| ^~~~~
mm/memremap.c:270:26: warning: excess elements in struct initializer
270 | .pgmap = pgmap,
| ^~~~~
mm/memremap.c:270:26: note: (near initialization for 'params')
>> mm/memremap.c:271:18: error: 'struct mhp_params' has no member named 'pgprot'
271 | .pgprot = PAGE_KERNEL,
| ^~~~~~
In file included from include/linux/shm.h:6,
from include/linux/sched.h:23,
from include/linux/ratelimit.h:6,
from include/linux/dev_printk.h:16,
from include/linux/device.h:15,
from mm/memremap.c:3:
>> arch/parisc/include/asm/page.h:54:25: warning: excess elements in struct initializer
54 | #define __pgprot(x) ((pgprot_t) { (x) } )
| ^
arch/parisc/include/asm/pgtable.h:241:25: note: in expansion of macro '__pgprot'
241 | #define PAGE_KERNEL __pgprot(_PAGE_KERNEL)
| ^~~~~~~~
mm/memremap.c:271:27: note: in expansion of macro 'PAGE_KERNEL'
271 | .pgprot = PAGE_KERNEL,
| ^~~~~~~~~~~
arch/parisc/include/asm/page.h:54:25: note: (near initialization for 'params')
54 | #define __pgprot(x) ((pgprot_t) { (x) } )
| ^
arch/parisc/include/asm/pgtable.h:241:25: note: in expansion of macro '__pgprot'
241 | #define PAGE_KERNEL __pgprot(_PAGE_KERNEL)
| ^~~~~~~~
mm/memremap.c:271:27: note: in expansion of macro 'PAGE_KERNEL'
271 | .pgprot = PAGE_KERNEL,
| ^~~~~~~~~~~
>> mm/memremap.c:268:27: error: storage size of 'params' isn't known
268 | struct mhp_params params = {
| ^~~~~~
>> mm/memremap.c:268:27: warning: unused variable 'params' [-Wunused-variable]

Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for ZONE_DEVICE
Depends on [n]: MEMORY_HOTPLUG [=n] && MEMORY_HOTREMOVE [=n] && SPARSEMEM_VMEMMAP [=n]
Selected by [m]:
- DRM_XE_GPUSVM [=y] && HAS_IOMEM [=y] && DRM [=m] && DRM_XE [=m] && !UML

vim +1018 fs/dax.c

429f8de70d9872 Christoph Hellwig 2021-11-29 1002
429f8de70d9872 Christoph Hellwig 2021-11-29 1003 static int copy_cow_page_dax(struct vm_fault *vmf, const struct iomap_iter *iter)
429f8de70d9872 Christoph Hellwig 2021-11-29 1004 {
60696eb26a37ab Christoph Hellwig 2021-11-29 1005 pgoff_t pgoff = dax_iomap_pgoff(&iter->iomap, iter->pos);
cccbce67158290 Dan Williams 2017-01-27 1006 void *vto, *kaddr;
cccbce67158290 Dan Williams 2017-01-27 1007 long rc;
cccbce67158290 Dan Williams 2017-01-27 1008 int id;
cccbce67158290 Dan Williams 2017-01-27 1009
cccbce67158290 Dan Williams 2017-01-27 1010 id = dax_read_lock();
e511c4a3d2a1f6 Jane Chu 2022-05-13 1011 rc = dax_direct_access(iter->iomap.dax_dev, pgoff, 1, DAX_ACCESS,
e511c4a3d2a1f6 Jane Chu 2022-05-13 1012 &kaddr, NULL);
cccbce67158290 Dan Williams 2017-01-27 1013 if (rc < 0) {
cccbce67158290 Dan Williams 2017-01-27 1014 dax_read_unlock(id);
cccbce67158290 Dan Williams 2017-01-27 1015 return rc;
cccbce67158290 Dan Williams 2017-01-27 1016 }
429f8de70d9872 Christoph Hellwig 2021-11-29 1017 vto = kmap_atomic(vmf->cow_page);
429f8de70d9872 Christoph Hellwig 2021-11-29 @1018 copy_user_page(vto, kaddr, vmf->address, vmf->cow_page);
f7ca90b160307d Matthew Wilcox 2015-02-16 1019 kunmap_atomic(vto);
cccbce67158290 Dan Williams 2017-01-27 1020 dax_read_unlock(id);
f7ca90b160307d Matthew Wilcox 2015-02-16 1021 return 0;
f7ca90b160307d Matthew Wilcox 2015-02-16 1022 }
f7ca90b160307d Matthew Wilcox 2015-02-16 1023

--
0-DAY CI Kernel Test Service