== Series Details == Series: Getting rid of GUP and use HMM for user ptr features. URL : https://patchwork.freedesktop.org/series/49395/ State : failure == Summary == CALL scripts/checksyscalls.sh DESCEND objtool CHK include/generated/compile.h CC [M] drivers/gpu/drm/i915/i915_gem_userptr.o drivers/gpu/drm/i915/i915_gem_userptr.c:51:20: error: field ‘mirror’ has incomplete type struct hmm_mirror mirror; ^~~~~~ drivers/gpu/drm/i915/i915_gem_userptr.c:116:22: error: ‘struct hmm_update’ declared inside parameter list will not be visible outside of this definition or declaration [-Werror] const struct hmm_update *update) ^~~~~~~~~~ In file included from ./include/linux/export.h:45:0, from ./include/linux/linkage.h:7, from ./include/linux/kernel.h:7, from ./include/linux/list.h:9, from ./include/linux/agp_backend.h:33, from ./include/drm/drmP.h:35, from drivers/gpu/drm/i915/i915_gem_userptr.c:25: drivers/gpu/drm/i915/i915_gem_userptr.c: In function ‘i915_sync_cpu_device_pagetables’: ./include/linux/kernel.h:997:32: error: dereferencing pointer to incomplete type ‘struct hmm_mirror’ BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~ ./include/linux/compiler.h:335:18: note: in definition of macro ‘__compiletime_assert’ int __cond = !(condition); \ ^~~~~~~~~ ./include/linux/compiler.h:358:2: note: in expansion of macro ‘_compiletime_assert’ _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^~~~~~~~~~~~~~~~~~~ ./include/linux/build_bug.h:45:37: note: in expansion of macro ‘compiletime_assert’ #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^~~~~~~~~~~~~~~~~~ ./include/linux/kernel.h:997:2: note: in expansion of macro ‘BUILD_BUG_ON_MSG’ BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~~~~~~~~~~~ ./include/linux/kernel.h:997:20: note: in expansion of macro ‘__same_type’ BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~~~~~~ drivers/gpu/drm/i915/i915_gem_userptr.c:119:3: note: in expansion of macro ‘container_of’ container_of(_mirror, struct i915_mirror, mirror); ^~~~~~~~~~~~ drivers/gpu/drm/i915/i915_gem_userptr.c:121:28: error: dereferencing pointer to incomplete type ‘const struct hmm_update’ unsigned long end = update->end - 1; ^~ drivers/gpu/drm/i915/i915_gem_userptr.c: At top level: drivers/gpu/drm/i915/i915_gem_userptr.c:167:21: error: variable ‘i915_mirror_ops’ has initializer but incomplete type static const struct hmm_mirror_ops i915_mirror_ops = { ^~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_gem_userptr.c:168:3: error: ‘const struct hmm_mirror_ops’ has no member named ‘sync_cpu_device_pagetables’ .sync_cpu_device_pagetables = &i915_sync_cpu_device_pagetables, ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_gem_userptr.c:168:32: error: excess elements in struct initializer [-Werror] .sync_cpu_device_pagetables = &i915_sync_cpu_device_pagetables, ^ drivers/gpu/drm/i915/i915_gem_userptr.c:168:32: note: (near initialization for ‘i915_mirror_ops’) drivers/gpu/drm/i915/i915_gem_userptr.c:169:3: error: ‘const struct hmm_mirror_ops’ has no member named ‘release’ .release = &i915_mirror_release, ^~~~~~~ drivers/gpu/drm/i915/i915_gem_userptr.c:169:13: error: excess elements in struct initializer [-Werror] .release = &i915_mirror_release, ^ drivers/gpu/drm/i915/i915_gem_userptr.c:169:13: note: (near initialization for ‘i915_mirror_ops’) drivers/gpu/drm/i915/i915_gem_userptr.c: In function ‘i915_mirror_find’: drivers/gpu/drm/i915/i915_gem_userptr.c:230:9: error: implicit declaration of function ‘hmm_mirror_register’; did you mean ‘rc_map_register’? [-Werror=implicit-function-declaration] err = hmm_mirror_register(&mirror->mirror, mm->mm); ^~~~~~~~~~~~~~~~~~~ rc_map_register drivers/gpu/drm/i915/i915_gem_userptr.c: In function ‘i915_mirror_free’: drivers/gpu/drm/i915/i915_gem_userptr.c:290:2: error: implicit declaration of function ‘hmm_mirror_unregister’; did you mean ‘rc_map_unregister’? [-Werror=implicit-function-declaration] hmm_mirror_unregister(&mirror->mirror); ^~~~~~~~~~~~~~~~~~~~~ rc_map_unregister drivers/gpu/drm/i915/i915_gem_userptr.c: At top level: drivers/gpu/drm/i915/i915_gem_userptr.c:467:17: error: ‘struct hmm_range’ declared inside parameter list will not be visible outside of this definition or declaration [-Werror] struct hmm_range *range) ^~~~~~~~~ drivers/gpu/drm/i915/i915_gem_userptr.c: In function ‘__i915_gem_userptr_set_active’: drivers/gpu/drm/i915/i915_gem_userptr.c:490:8: error: implicit declaration of function ‘hmm_vma_range_done’; did you mean ‘drm_vma_node_size’? [-Werror=implicit-function-declaration] if (!hmm_vma_range_done(range)) ^~~~~~~~~~~~~~~~~~ drm_vma_node_size drivers/gpu/drm/i915/i915_gem_userptr.c: In function ‘i915_gem_userptr_map’: drivers/gpu/drm/i915/i915_gem_userptr.c:506:41: error: ‘HMM_PFN_FLAG_MAX’ undeclared (first use in this function); did you mean ‘FS_XFLAG_DAX’? static const uint64_t i915_range_flags[HMM_PFN_FLAG_MAX] = { ^~~~~~~~~~~~~~~~ FS_XFLAG_DAX drivers/gpu/drm/i915/i915_gem_userptr.c:506:41: note: each undeclared identifier is reported only once for each function it appears in drivers/gpu/drm/i915/i915_gem_userptr.c:511:42: error: ‘HMM_PFN_VALUE_MAX’ undeclared (first use in this function); did you mean ‘HMM_PFN_FLAG_MAX’? static const uint64_t i915_range_values[HMM_PFN_VALUE_MAX] = { ^~~~~~~~~~~~~~~~~ HMM_PFN_FLAG_MAX drivers/gpu/drm/i915/i915_gem_userptr.c:520:19: error: storage size of ‘range’ isn’t known struct hmm_range range; ^~~~~ drivers/gpu/drm/i915/i915_gem_userptr.c:545:31: error: ‘HMM_PFN_VALID’ undeclared (first use in this function); did you mean ‘HMM_PFN_VALUE_MAX’? range.pfns[i] = range.flags[HMM_PFN_VALID]; ^~~~~~~~~~~~~ HMM_PFN_VALUE_MAX drivers/gpu/drm/i915/i915_gem_userptr.c:546:40: error: ‘HMM_PFN_WRITE’ undeclared (first use in this function); did you mean ‘DMA_PTE_WRITE’? range.pfns[i] |= write ? range.flags[HMM_PFN_WRITE] : 0; ^~~~~~~~~~~~~ DMA_PTE_WRITE drivers/gpu/drm/i915/i915_gem_userptr.c:549:8: error: implicit declaration of function ‘hmm_vma_fault’; did you mean ‘hmm_mm_init’? [-Werror=implicit-function-declaration] err = hmm_vma_fault(&range, true); ^~~~~~~~~~~~~ hmm_mm_init drivers/gpu/drm/i915/i915_gem_userptr.c:556:23: error: implicit declaration of function ‘hmm_pfn_to_page’; did you mean ‘__pfn_to_page’? [-Werror=implicit-function-declaration] struct page *page = hmm_pfn_to_page(&range, range.pfns[i]); ^~~~~~~~~~~~~~~ __pfn_to_page drivers/gpu/drm/i915/i915_gem_userptr.c:520:19: error: unused variable ‘range’ [-Werror=unused-variable] struct hmm_range range; ^~~~~ drivers/gpu/drm/i915/i915_gem_userptr.c:511:24: error: unused variable ‘i915_range_values’ [-Werror=unused-variable] static const uint64_t i915_range_values[HMM_PFN_VALUE_MAX] = { ^~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_gem_userptr.c:506:24: error: unused variable ‘i915_range_flags’ [-Werror=unused-variable] static const uint64_t i915_range_flags[HMM_PFN_FLAG_MAX] = { ^~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_gem_userptr.c: At top level: drivers/gpu/drm/i915/i915_gem_userptr.c:167:36: error: storage size of ‘i915_mirror_ops’ isn’t known static const struct hmm_mirror_ops i915_mirror_ops = { ^~~~~~~~~~~~~~~ cc1: all warnings being treated as errors scripts/Makefile.build:305: recipe for target 'drivers/gpu/drm/i915/i915_gem_userptr.o' failed make[4]: *** [drivers/gpu/drm/i915/i915_gem_userptr.o] Error 1 scripts/Makefile.build:546: recipe for target 'drivers/gpu/drm/i915' failed make[3]: *** [drivers/gpu/drm/i915] Error 2 scripts/Makefile.build:546: recipe for target 'drivers/gpu/drm' failed make[2]: *** [drivers/gpu/drm] Error 2 scripts/Makefile.build:546: recipe for target 'drivers/gpu' failed make[1]: *** [drivers/gpu] Error 2 Makefile:1060: recipe for target 'drivers' failed make: *** [drivers] Error 2 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx