Hi John, I love your patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v5.13-rc1 next-20210510] [cannot apply to iommu/next mkp-scsi/for-next scsi/for-next] [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/John-Garry/dma-mapping-iommu-Allow-IOMMU-IOVA-rcache-range-to-be-configured/20210510-222805 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 6efb943b8616ec53a5e444193dccf1af9ad627b5 config: i386-randconfig-s002-20210510 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.3-341-g8af24329-dirty # https://github.com/0day-ci/linux/commit/d9a8e3a4ac0070cd3094af3b41e9c6277faf3ea6 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review John-Garry/dma-mapping-iommu-Allow-IOMMU-IOVA-rcache-range-to-be-configured/20210510-222805 git checkout d9a8e3a4ac0070cd3094af3b41e9c6277faf3ea6 # save the attached .config to linux build tree make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=i386 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> drivers/iommu/iova.c:50:1: warning: no previous prototype for '__init_iova_domain' [-Wmissing-prototypes] 50 | __init_iova_domain(struct iova_domain *iovad, unsigned long granule, | ^~~~~~~~~~~~~~~~~~ sparse warnings: (new ones prefixed by >>) >> drivers/iommu/iova.c:50:1: sparse: sparse: symbol '__init_iova_domain' was not declared. Should it be static? Please review and possibly fold the followup patch. vim +/__init_iova_domain +50 drivers/iommu/iova.c 48 49 void > 50 __init_iova_domain(struct iova_domain *iovad, unsigned long granule, 51 unsigned long start_pfn, unsigned long iova_len) 52 { 53 /* 54 * IOVA granularity will normally be equal to the smallest 55 * supported IOMMU page size; both *must* be capable of 56 * representing individual CPU pages exactly. 57 */ 58 BUG_ON((granule > PAGE_SIZE) || !is_power_of_2(granule)); 59 60 spin_lock_init(&iovad->iova_rbtree_lock); 61 iovad->rbroot = RB_ROOT; 62 iovad->cached_node = &iovad->anchor.node; 63 iovad->cached32_node = &iovad->anchor.node; 64 iovad->granule = granule; 65 iovad->start_pfn = start_pfn; 66 iovad->dma_32bit_pfn = 1UL << (32 - iova_shift(iovad)); 67 iovad->max32_alloc_size = iovad->dma_32bit_pfn; 68 iovad->flush_cb = NULL; 69 iovad->fq = NULL; 70 iovad->anchor.pfn_lo = iovad->anchor.pfn_hi = IOVA_ANCHOR; 71 rb_link_node(&iovad->anchor.node, NULL, &iovad->rbroot.rb_node); 72 rb_insert_color(&iovad->anchor.node, &iovad->rbroot); 73 cpuhp_state_add_instance_nocalls(CPUHP_IOMMU_IOVA_DEAD, &iovad->cpuhp_dead); 74 init_iova_rcaches(iovad, iova_len); 75 } 76 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org