Hi changzhu, FYI, the error/warning still remains. tree: git://people.freedesktop.org/~agd5f/linux.git amd-19.50 head: 02692309efa6ad48d47894e40fcb3832ace49c4c commit: 8aff76ca3bf3120204c9ec521ebe96a5133e92f3 [2094/2687] drm/amdkcl: Test whether mmgrab is available config: i386-allyesconfig (attached as .config) compiler: gcc-7 (Debian 7.5.0-3) 7.5.0 reproduce: git checkout 8aff76ca3bf3120204c9ec521ebe96a5133e92f3 # save the attached .config to linux build tree make ARCH=i386 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): void drm_dev_put(struct drm_device *dev); ^~~~~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0, from :0: include/kcl/kcl_drm.h: In function 'drm_dev_put': include/kcl/kcl_drm.h:539:9: error: implicit declaration of function 'drm_dev_unref'; did you mean 'drm_dev_enter'? [-Werror=implicit-function-declaration] return drm_dev_unref(dev); ^~~~~~~~~~~~~ drm_dev_enter include/kcl/kcl_drm.h:539:9: warning: 'return' with a value, in function returning void return drm_dev_unref(dev); ^~~~~~~~~~~~~~~~~~ include/kcl/kcl_drm.h:537:20: note: declared here static inline void drm_dev_put(struct drm_device *dev) ^~~~~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:8:0, from :0: include/kcl/kcl_mm.h: At top level: include/kcl/kcl_mm.h:53:28: error: redefinition of 'memalloc_nofs_save' static inline unsigned int memalloc_nofs_save(void) ^~~~~~~~~~~~~~~~~~ In file included from include/kcl/kcl_mm.h:5:0, from drivers/gpu/drm/ttm/backport/backport.h:8, from :0: include/linux/sched/mm.h:248:28: note: previous definition of 'memalloc_nofs_save' was here static inline unsigned int memalloc_nofs_save(void) ^~~~~~~~~~~~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:8:0, from :0: include/kcl/kcl_mm.h:58:20: error: redefinition of 'memalloc_nofs_restore' static inline void memalloc_nofs_restore(unsigned int flags) ^~~~~~~~~~~~~~~~~~~~~ In file included from include/kcl/kcl_mm.h:5:0, from drivers/gpu/drm/ttm/backport/backport.h:8, from :0: include/linux/sched/mm.h:263:20: note: previous definition of 'memalloc_nofs_restore' was here static inline void memalloc_nofs_restore(unsigned int flags) ^~~~~~~~~~~~~~~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:8:0, from :0: include/kcl/kcl_mm.h:64:21: error: redefinition of 'kvmalloc' static inline void *kvmalloc(size_t size, gfp_t flags) ^~~~~~~~ In file included from include/drm/drm_vma_manager.h:27:0, from include/kcl/kcl_drm_vma_manager.h:8, from drivers/gpu/drm/ttm/backport/backport.h:5, from :0: include/linux/mm.h:635:21: note: previous definition of 'kvmalloc' was here static inline void *kvmalloc(size_t size, gfp_t flags) ^~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:8:0, from :0: include/kcl/kcl_mm.h:74:21: error: redefinition of 'kvzalloc' static inline void *kvzalloc(size_t size, gfp_t flags) ^~~~~~~~ In file included from include/drm/drm_vma_manager.h:27:0, from include/kcl/kcl_drm_vma_manager.h:8, from drivers/gpu/drm/ttm/backport/backport.h:5, from :0: include/linux/mm.h:643:21: note: previous definition of 'kvzalloc' was here static inline void *kvzalloc(size_t size, gfp_t flags) ^~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:8:0, from :0: include/kcl/kcl_mm.h:84:20: error: static declaration of 'kvfree' follows non-static declaration static inline void kvfree(const void *addr) ^~~~~~ In file included from include/drm/drm_vma_manager.h:27:0, from include/kcl/kcl_drm_vma_manager.h:8, from drivers/gpu/drm/ttm/backport/backport.h:5, from :0: include/linux/mm.h:663:13: note: previous declaration of 'kvfree' was here extern void kvfree(const void *addr); ^~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:8:0, from :0: include/kcl/kcl_mm.h:104:21: error: redefinition of 'kvmalloc_array' static inline void *kvmalloc_array(size_t n, size_t size, gfp_t flags) ^~~~~~~~~~~~~~ In file included from include/drm/drm_vma_manager.h:27:0, from include/kcl/kcl_drm_vma_manager.h:8, from drivers/gpu/drm/ttm/backport/backport.h:5, from :0: include/linux/mm.h:648:21: note: previous definition of 'kvmalloc_array' was here static inline void *kvmalloc_array(size_t n, size_t size, gfp_t flags) ^~~~~~~~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:8:0, from :0: include/kcl/kcl_mm.h:117:21: error: redefinition of 'kvcalloc' static inline void *kvcalloc(size_t n, size_t size, gfp_t flags) ^~~~~~~~ In file included from include/drm/drm_vma_manager.h:27:0, from include/kcl/kcl_drm_vma_manager.h:8, from drivers/gpu/drm/ttm/backport/backport.h:5, from :0: include/linux/mm.h:658:21: note: previous definition of 'kvcalloc' was here static inline void *kvcalloc(size_t n, size_t size, gfp_t flags) ^~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:8:0, from :0: >> include/kcl/kcl_mm.h:124:20: error: redefinition of 'mmgrab' static inline void mmgrab(struct mm_struct *mm) ^~~~~~ In file included from include/kcl/kcl_mm.h:5:0, from drivers/gpu/drm/ttm/backport/backport.h:8, from :0: include/linux/sched/mm.h:34:20: note: previous definition of 'mmgrab' was here static inline void mmgrab(struct mm_struct *mm) ^~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:9:0, from :0: include/kcl/kcl_fence.h:161:20: error: redefinition of 'dma_fence_set_error' static inline void dma_fence_set_error(struct dma_fence *fence, ^~~~~~~~~~~~~~~~~~~ In file included from include/drm/drmP.h:58:0, from include/kcl/kcl_drm.h:6, from drivers/gpu/drm/ttm/backport/backport.h:6, from :0: include/linux/dma-fence.h:517:20: note: previous definition of 'dma_fence_set_error' was here static inline void dma_fence_set_error(struct dma_fence *fence, ^~~~~~~~~~~~~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:9:0, from :0: include/kcl/kcl_fence.h: In function 'dma_fence_set_error': include/kcl/kcl_fence.h:167:7: error: 'struct dma_fence' has no member named 'status' fence->status = error; ^~ In file included from drivers/gpu/drm/ttm/backport/backport.h:10:0, from :0: include/kcl/kcl_list.h: At top level: include/kcl/kcl_list.h:6:20: error: redefinition of 'list_bulk_move_tail' static inline void list_bulk_move_tail(struct list_head *head, ^~~~~~~~~~~~~~~~~~~ In file included from include/linux/preempt.h:11:0, from include/linux/rcupdate.h:27, from include/linux/rbtree.h:34, from include/drm/drm_mm.h:41, from include/drm/drm_vma_manager.h:26, from include/kcl/kcl_drm_vma_manager.h:8, from drivers/gpu/drm/ttm/backport/backport.h:5, from :0: include/linux/list.h:212:20: note: previous definition of 'list_bulk_move_tail' was here static inline void list_bulk_move_tail(struct list_head *head, ^~~~~~~~~~~~~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:11:0, from :0: include/kcl/kcl_kref.h:7:28: error: redefinition of 'kref_read' static inline unsigned int kref_read(const struct kref *kref) ^~~~~~~~~ In file included from include/linux/kobject.h:23:0, from include/linux/device.h:16, from include/drm/drm_print.h:32, from include/drm/drm_mm.h:49, from include/drm/drm_vma_manager.h:26, from include/kcl/kcl_drm_vma_manager.h:8, from drivers/gpu/drm/ttm/backport/backport.h:5, from :0: include/linux/kref.h:36:28: note: previous definition of 'kref_read' was here static inline unsigned int kref_read(const struct kref *kref) ^~~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:11:0, from :0: include/kcl/kcl_kref.h: In function 'kref_read': include/kcl/kcl_kref.h:9:21: error: passing argument 1 of 'atomic_read' from incompatible pointer type [-Werror=incompatible-pointer-types] return atomic_read(&kref->refcount); ^ In file included from arch/x86/include/asm/atomic.h:265:0, from include/linux/atomic.h:7, from include/linux/rcupdate.h:25, from include/linux/rbtree.h:34, from include/drm/drm_mm.h:41, from include/drm/drm_vma_manager.h:26, from include/kcl/kcl_drm_vma_manager.h:8, from drivers/gpu/drm/ttm/backport/backport.h:5, from :0: include/asm-generic/atomic-instrumented.h:24:1: note: expected 'const atomic_t * {aka const struct *}' but argument is of type 'const refcount_t * {aka const struct refcount_struct *}' atomic_read(const atomic_t *v) ^~~~~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:12:0, from :0: include/kcl/kcl_mm_types.h: At top level: include/kcl/kcl_mm_types.h:10:3: error: conflicting types for 'pfn_t' } pfn_t; ^~~~~ In file included from include/asm-generic/memory_model.h:5:0, from arch/x86/include/asm/page.h:76, from arch/x86/include/asm/thread_info.h:12, from include/linux/thread_info.h:38, from arch/x86/include/asm/preempt.h:7, from include/linux/preempt.h:78, from include/linux/rcupdate.h:27, from include/linux/rbtree.h:34, from include/drm/drm_mm.h:41, from include/drm/drm_vma_manager.h:26, from include/kcl/kcl_drm_vma_manager.h:8, from drivers/gpu/drm/ttm/backport/backport.h:5, from :0: include/linux/pfn.h:15:3: note: previous declaration of 'pfn_t' was here } pfn_t; ^~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:12:0, -- void drm_dev_put(struct drm_device *dev); ^~~~~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0, from :0: include/kcl/kcl_drm.h: In function 'drm_dev_put': include/kcl/kcl_drm.h:539:9: error: implicit declaration of function 'drm_dev_unref'; did you mean 'drm_dev_enter'? [-Werror=implicit-function-declaration] return drm_dev_unref(dev); ^~~~~~~~~~~~~ drm_dev_enter include/kcl/kcl_drm.h:539:9: warning: 'return' with a value, in function returning void return drm_dev_unref(dev); ^~~~~~~~~~~~~~~~~~ include/kcl/kcl_drm.h:537:20: note: declared here static inline void drm_dev_put(struct drm_device *dev) ^~~~~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:8:0, from :0: include/kcl/kcl_mm.h: At top level: include/kcl/kcl_mm.h:53:28: error: redefinition of 'memalloc_nofs_save' static inline unsigned int memalloc_nofs_save(void) ^~~~~~~~~~~~~~~~~~ In file included from include/kcl/kcl_mm.h:5:0, from drivers/gpu/drm/ttm/backport/backport.h:8, from :0: include/linux/sched/mm.h:248:28: note: previous definition of 'memalloc_nofs_save' was here static inline unsigned int memalloc_nofs_save(void) ^~~~~~~~~~~~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:8:0, from :0: include/kcl/kcl_mm.h:58:20: error: redefinition of 'memalloc_nofs_restore' static inline void memalloc_nofs_restore(unsigned int flags) ^~~~~~~~~~~~~~~~~~~~~ In file included from include/kcl/kcl_mm.h:5:0, from drivers/gpu/drm/ttm/backport/backport.h:8, from :0: include/linux/sched/mm.h:263:20: note: previous definition of 'memalloc_nofs_restore' was here static inline void memalloc_nofs_restore(unsigned int flags) ^~~~~~~~~~~~~~~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:8:0, from :0: include/kcl/kcl_mm.h:64:21: error: redefinition of 'kvmalloc' static inline void *kvmalloc(size_t size, gfp_t flags) ^~~~~~~~ In file included from include/drm/drm_vma_manager.h:27:0, from include/kcl/kcl_drm_vma_manager.h:8, from drivers/gpu/drm/ttm/backport/backport.h:5, from :0: include/linux/mm.h:635:21: note: previous definition of 'kvmalloc' was here static inline void *kvmalloc(size_t size, gfp_t flags) ^~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:8:0, from :0: include/kcl/kcl_mm.h:74:21: error: redefinition of 'kvzalloc' static inline void *kvzalloc(size_t size, gfp_t flags) ^~~~~~~~ In file included from include/drm/drm_vma_manager.h:27:0, from include/kcl/kcl_drm_vma_manager.h:8, from drivers/gpu/drm/ttm/backport/backport.h:5, from :0: include/linux/mm.h:643:21: note: previous definition of 'kvzalloc' was here static inline void *kvzalloc(size_t size, gfp_t flags) ^~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:8:0, from :0: include/kcl/kcl_mm.h:84:20: error: static declaration of 'kvfree' follows non-static declaration static inline void kvfree(const void *addr) ^~~~~~ In file included from include/drm/drm_vma_manager.h:27:0, from include/kcl/kcl_drm_vma_manager.h:8, from drivers/gpu/drm/ttm/backport/backport.h:5, from :0: include/linux/mm.h:663:13: note: previous declaration of 'kvfree' was here extern void kvfree(const void *addr); ^~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:8:0, from :0: include/kcl/kcl_mm.h:104:21: error: redefinition of 'kvmalloc_array' static inline void *kvmalloc_array(size_t n, size_t size, gfp_t flags) ^~~~~~~~~~~~~~ In file included from include/drm/drm_vma_manager.h:27:0, from include/kcl/kcl_drm_vma_manager.h:8, from drivers/gpu/drm/ttm/backport/backport.h:5, from :0: include/linux/mm.h:648:21: note: previous definition of 'kvmalloc_array' was here static inline void *kvmalloc_array(size_t n, size_t size, gfp_t flags) ^~~~~~~~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:8:0, from :0: include/kcl/kcl_mm.h:117:21: error: redefinition of 'kvcalloc' static inline void *kvcalloc(size_t n, size_t size, gfp_t flags) ^~~~~~~~ In file included from include/drm/drm_vma_manager.h:27:0, from include/kcl/kcl_drm_vma_manager.h:8, from drivers/gpu/drm/ttm/backport/backport.h:5, from :0: include/linux/mm.h:658:21: note: previous definition of 'kvcalloc' was here static inline void *kvcalloc(size_t n, size_t size, gfp_t flags) ^~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:8:0, from :0: >> include/kcl/kcl_mm.h:124:20: error: redefinition of 'mmgrab' static inline void mmgrab(struct mm_struct *mm) ^~~~~~ In file included from include/kcl/kcl_mm.h:5:0, from drivers/gpu/drm/ttm/backport/backport.h:8, from :0: include/linux/sched/mm.h:34:20: note: previous definition of 'mmgrab' was here static inline void mmgrab(struct mm_struct *mm) ^~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:9:0, from :0: include/kcl/kcl_fence.h:161:20: error: redefinition of 'dma_fence_set_error' static inline void dma_fence_set_error(struct dma_fence *fence, ^~~~~~~~~~~~~~~~~~~ In file included from include/drm/drmP.h:58:0, from include/kcl/kcl_drm.h:6, from drivers/gpu/drm/ttm/backport/backport.h:6, from :0: include/linux/dma-fence.h:517:20: note: previous definition of 'dma_fence_set_error' was here static inline void dma_fence_set_error(struct dma_fence *fence, ^~~~~~~~~~~~~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:9:0, from :0: include/kcl/kcl_fence.h: In function 'dma_fence_set_error': include/kcl/kcl_fence.h:167:7: error: 'struct dma_fence' has no member named 'status' fence->status = error; ^~ In file included from drivers/gpu/drm/ttm/backport/backport.h:10:0, from :0: include/kcl/kcl_list.h: At top level: include/kcl/kcl_list.h:6:20: error: redefinition of 'list_bulk_move_tail' static inline void list_bulk_move_tail(struct list_head *head, ^~~~~~~~~~~~~~~~~~~ In file included from include/linux/preempt.h:11:0, from include/linux/rcupdate.h:27, from include/linux/rbtree.h:34, from include/drm/drm_mm.h:41, from include/drm/drm_vma_manager.h:26, from include/kcl/kcl_drm_vma_manager.h:8, from drivers/gpu/drm/ttm/backport/backport.h:5, from :0: include/linux/list.h:212:20: note: previous definition of 'list_bulk_move_tail' was here static inline void list_bulk_move_tail(struct list_head *head, ^~~~~~~~~~~~~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:11:0, from :0: include/kcl/kcl_kref.h:7:28: error: redefinition of 'kref_read' static inline unsigned int kref_read(const struct kref *kref) ^~~~~~~~~ In file included from include/linux/kobject.h:23:0, from include/linux/device.h:16, from include/drm/drm_print.h:32, from include/drm/drm_mm.h:49, from include/drm/drm_vma_manager.h:26, from include/kcl/kcl_drm_vma_manager.h:8, from drivers/gpu/drm/ttm/backport/backport.h:5, from :0: include/linux/kref.h:36:28: note: previous definition of 'kref_read' was here static inline unsigned int kref_read(const struct kref *kref) ^~~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:11:0, from :0: include/kcl/kcl_kref.h: In function 'kref_read': include/kcl/kcl_kref.h:9:21: error: passing argument 1 of 'atomic_read' from incompatible pointer type [-Werror=incompatible-pointer-types] return atomic_read(&kref->refcount); ^ In file included from arch/x86/include/asm/atomic.h:265:0, from include/linux/atomic.h:7, from include/linux/rcupdate.h:25, from include/linux/rbtree.h:34, from include/drm/drm_mm.h:41, from include/drm/drm_vma_manager.h:26, from include/kcl/kcl_drm_vma_manager.h:8, from drivers/gpu/drm/ttm/backport/backport.h:5, from :0: include/asm-generic/atomic-instrumented.h:24:1: note: expected 'const atomic_t * {aka const struct *}' but argument is of type 'const refcount_t * {aka const struct refcount_struct *}' atomic_read(const atomic_t *v) ^~~~~~~~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:12:0, from :0: include/kcl/kcl_mm_types.h: At top level: include/kcl/kcl_mm_types.h:10:3: error: conflicting types for 'pfn_t' } pfn_t; ^~~~~ In file included from include/asm-generic/memory_model.h:5:0, from arch/x86/include/asm/page.h:76, from arch/x86/include/asm/thread_info.h:12, from include/linux/thread_info.h:38, from arch/x86/include/asm/preempt.h:7, from include/linux/preempt.h:78, from include/linux/rcupdate.h:27, from include/linux/rbtree.h:34, from include/drm/drm_mm.h:41, from include/drm/drm_vma_manager.h:26, from include/kcl/kcl_drm_vma_manager.h:8, from drivers/gpu/drm/ttm/backport/backport.h:5, from :0: include/linux/pfn.h:15:3: note: previous declaration of 'pfn_t' was here } pfn_t; ^~~~~ In file included from drivers/gpu/drm/ttm/backport/backport.h:12:0, .. vim +/mmgrab +124 include/kcl/kcl_mm.h 122 123 #if !defined(HAVE_MMGRAB) > 124 static inline void mmgrab(struct mm_struct *mm) 125 { 126 atomic_inc(&mm->mm_count); 127 } 128 #endif 129 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation