Hi "Christian, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v5.17-rc7 next-20220310] [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/Christian-K-nig/dma-buf-add-dma_fence_unwrap/20220311-190352 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 79b00034e9dcd2b065c1665c8b42f62b6b80a9be config: x86_64-randconfig-m001 (https://download.01.org/0day-ci/archive/20220312/202203120217.BFa438j9-lkp@xxxxxxxxx/config) compiler: gcc-9 (Ubuntu 9.4.0-1ubuntu1~20.04) 9.4.0 reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/ca3584ac05c4a450e69b1c6bcb0672b5ab026c7c git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Christian-K-nig/dma-buf-add-dma_fence_unwrap/20220311-190352 git checkout ca3584ac05c4a450e69b1c6bcb0672b5ab026c7c # save the config file to linux build tree mkdir build_dir make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): In file included from drivers/dma-buf/sync_file.c:8: include/linux/dma-fence-unwrap.h: In function 'dma_fence_unwrap_array': >> include/linux/dma-fence-unwrap.h:44:18: error: implicit declaration of function 'dma_fence_chain_contained'; did you mean 'dma_fence_chain_init'? [-Werror=implicit-function-declaration] 44 | cursor->array = dma_fence_chain_contained(cursor->chain); | ^~~~~~~~~~~~~~~~~~~~~~~~~ | dma_fence_chain_init include/linux/dma-fence-unwrap.h:44:16: warning: assignment to 'struct dma_fence *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 44 | cursor->array = dma_fence_chain_contained(cursor->chain); | ^ >> include/linux/dma-fence-unwrap.h:46:9: error: implicit declaration of function 'dma_fence_array_first'; did you mean 'dma_fence_array_create'? [-Werror=implicit-function-declaration] 46 | return dma_fence_array_first(cursor->array); | ^~~~~~~~~~~~~~~~~~~~~ | dma_fence_array_create include/linux/dma-fence-unwrap.h:46:9: warning: returning 'int' from a function with return type 'struct dma_fence *' makes pointer from integer without a cast [-Wint-conversion] 46 | return dma_fence_array_first(cursor->array); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/dma-fence-unwrap.h: In function 'dma_fence_unwrap_next': >> include/linux/dma-fence-unwrap.h:77:8: error: implicit declaration of function 'dma_fence_array_next'; did you mean 'dma_fence_unwrap_next'? [-Werror=implicit-function-declaration] 77 | tmp = dma_fence_array_next(cursor->array, cursor->index); | ^~~~~~~~~~~~~~~~~~~~ | dma_fence_unwrap_next include/linux/dma-fence-unwrap.h:77:6: warning: assignment to 'struct dma_fence *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 77 | tmp = dma_fence_array_next(cursor->array, cursor->index); | ^ cc1: some warnings being treated as errors vim +44 include/linux/dma-fence-unwrap.h 088aa14c0f5cad Christian König 2022-03-11 33 088aa14c0f5cad Christian König 2022-03-11 34 /** 088aa14c0f5cad Christian König 2022-03-11 35 * dma_fence_unwrap_array - helper to unwrap dma_fence_arrays 088aa14c0f5cad Christian König 2022-03-11 36 * @cursor: cursor to initialize 088aa14c0f5cad Christian König 2022-03-11 37 * 088aa14c0f5cad Christian König 2022-03-11 38 * Helper function to unwrap dma_fence_array containers, don't touch directly. 088aa14c0f5cad Christian König 2022-03-11 39 * Use dma_fence_unwrap_first/next instead. 088aa14c0f5cad Christian König 2022-03-11 40 */ 088aa14c0f5cad Christian König 2022-03-11 41 static inline struct dma_fence * 088aa14c0f5cad Christian König 2022-03-11 42 dma_fence_unwrap_array(struct dma_fence_unwrap * cursor) 088aa14c0f5cad Christian König 2022-03-11 43 { 088aa14c0f5cad Christian König 2022-03-11 @44 cursor->array = dma_fence_chain_contained(cursor->chain); 088aa14c0f5cad Christian König 2022-03-11 45 cursor->index = 0; 088aa14c0f5cad Christian König 2022-03-11 @46 return dma_fence_array_first(cursor->array); 088aa14c0f5cad Christian König 2022-03-11 47 } 088aa14c0f5cad Christian König 2022-03-11 48 088aa14c0f5cad Christian König 2022-03-11 49 /** 088aa14c0f5cad Christian König 2022-03-11 50 * dma_fence_unwrap_first - return the first fence from fence containers 088aa14c0f5cad Christian König 2022-03-11 51 * @head: the entrypoint into the containers 088aa14c0f5cad Christian König 2022-03-11 52 * @cursor: current position inside the containers 088aa14c0f5cad Christian König 2022-03-11 53 * 088aa14c0f5cad Christian König 2022-03-11 54 * Unwraps potential dma_fence_chain/dma_fence_array containers and return the 088aa14c0f5cad Christian König 2022-03-11 55 * first fence. 088aa14c0f5cad Christian König 2022-03-11 56 */ 088aa14c0f5cad Christian König 2022-03-11 57 static inline struct dma_fence * 088aa14c0f5cad Christian König 2022-03-11 58 dma_fence_unwrap_first(struct dma_fence *head, struct dma_fence_unwrap *cursor) 088aa14c0f5cad Christian König 2022-03-11 59 { 088aa14c0f5cad Christian König 2022-03-11 60 cursor->chain = dma_fence_get(head); 088aa14c0f5cad Christian König 2022-03-11 61 return dma_fence_unwrap_array(cursor); 088aa14c0f5cad Christian König 2022-03-11 62 } 088aa14c0f5cad Christian König 2022-03-11 63 088aa14c0f5cad Christian König 2022-03-11 64 /** 088aa14c0f5cad Christian König 2022-03-11 65 * dma_fence_unwrap_next - return the next fence from a fence containers 088aa14c0f5cad Christian König 2022-03-11 66 * @cursor: current position inside the containers 088aa14c0f5cad Christian König 2022-03-11 67 * 088aa14c0f5cad Christian König 2022-03-11 68 * Continue unwrapping the dma_fence_chain/dma_fence_array containers and return 088aa14c0f5cad Christian König 2022-03-11 69 * the next fence from them. 088aa14c0f5cad Christian König 2022-03-11 70 */ 088aa14c0f5cad Christian König 2022-03-11 71 static inline struct dma_fence * 088aa14c0f5cad Christian König 2022-03-11 72 dma_fence_unwrap_next(struct dma_fence_unwrap *cursor) 088aa14c0f5cad Christian König 2022-03-11 73 { 088aa14c0f5cad Christian König 2022-03-11 74 struct dma_fence *tmp; 088aa14c0f5cad Christian König 2022-03-11 75 088aa14c0f5cad Christian König 2022-03-11 76 ++cursor->index; 088aa14c0f5cad Christian König 2022-03-11 @77 tmp = dma_fence_array_next(cursor->array, cursor->index); 088aa14c0f5cad Christian König 2022-03-11 78 if (tmp) 088aa14c0f5cad Christian König 2022-03-11 79 return tmp; 088aa14c0f5cad Christian König 2022-03-11 80 088aa14c0f5cad Christian König 2022-03-11 81 cursor->chain = dma_fence_chain_walk(cursor->chain); 088aa14c0f5cad Christian König 2022-03-11 82 return dma_fence_unwrap_array(cursor); 088aa14c0f5cad Christian König 2022-03-11 83 } 088aa14c0f5cad Christian König 2022-03-11 84 --- 0-DAY CI Kernel Test Service https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx