Hi Dan, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on 01830e6c042e8eb6eb202e05d7df8057135b4c26] url: https://github.com/0day-ci/linux/commits/Dan-Williams/device-dax-Support-sub-dividing-soft-reserved-ranges/20200801-114823 base: 01830e6c042e8eb6eb202e05d7df8057135b4c26 config: s390-allyesconfig (attached as .config) compiler: s390-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): drivers/dax/device.c:54:20: warning: no previous prototype for 'dax_pgoff_to_phys' [-Wmissing-prototypes] 54 | __weak phys_addr_t dax_pgoff_to_phys(struct dev_dax *dev_dax, pgoff_t pgoff, | ^~~~~~~~~~~~~~~~~ drivers/dax/device.c: In function '__dev_dax_pte_fault': >> drivers/dax/device.c:80:21: warning: variable 'dax_region' set but not used [-Wunused-but-set-variable] 80 | struct dax_region *dax_region; | ^~~~~~~~~~ drivers/dax/device.c: In function '__dev_dax_pmd_fault': drivers/dax/device.c:113:21: warning: variable 'dax_region' set but not used [-Wunused-but-set-variable] 113 | struct dax_region *dax_region; | ^~~~~~~~~~ drivers/dax/device.c: At top level: drivers/dax/device.c:397:5: warning: no previous prototype for 'dev_dax_probe' [-Wmissing-prototypes] 397 | int dev_dax_probe(struct dev_dax *dev_dax) | ^~~~~~~~~~~~~ vim +/dax_region +80 drivers/dax/device.c dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 52 efebc711180f7fe drivers/dax/dax.c Dave Jiang 2017-04-07 53 /* see "strong" declaration in tools/testing/nvdimm/dax-dev.c */ 736163671bcb163 drivers/dax/device.c Dan Williams 2017-05-04 @54 __weak phys_addr_t dax_pgoff_to_phys(struct dev_dax *dev_dax, pgoff_t pgoff, dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 55 unsigned long size) dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 56 { 4d3c109cf2a8406 drivers/dax/device.c Dan Williams 2020-07-31 57 int i; 4d3c109cf2a8406 drivers/dax/device.c Dan Williams 2020-07-31 58 4d3c109cf2a8406 drivers/dax/device.c Dan Williams 2020-07-31 59 for (i = 0; i < dev_dax->nr_range; i++) { 4d3c109cf2a8406 drivers/dax/device.c Dan Williams 2020-07-31 60 struct dev_dax_range *dax_range = &dev_dax->ranges[i]; 4d3c109cf2a8406 drivers/dax/device.c Dan Williams 2020-07-31 61 struct range *range = &dax_range->range; 4d3c109cf2a8406 drivers/dax/device.c Dan Williams 2020-07-31 62 unsigned long long pgoff_end; 753a0850e707e9a drivers/dax/device.c Dan Williams 2017-07-14 63 phys_addr_t phys; dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 64 4d3c109cf2a8406 drivers/dax/device.c Dan Williams 2020-07-31 65 pgoff_end = dax_range->pgoff + PHYS_PFN(range_len(range)) - 1; 4d3c109cf2a8406 drivers/dax/device.c Dan Williams 2020-07-31 66 if (pgoff < dax_range->pgoff || pgoff > pgoff_end) 4d3c109cf2a8406 drivers/dax/device.c Dan Williams 2020-07-31 67 continue; 4d3c109cf2a8406 drivers/dax/device.c Dan Williams 2020-07-31 68 phys = PFN_PHYS(pgoff - dax_range->pgoff) + range->start; e8f1f803fc7e653 drivers/dax/device.c Dan Williams 2020-07-31 69 if (phys + size - 1 <= range->end) dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 70 return phys; 4d3c109cf2a8406 drivers/dax/device.c Dan Williams 2020-07-31 71 break; dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 72 } dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 73 return -1; dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 74 } dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 75 226ab561075f6f8 drivers/dax/device.c Dan Williams 2018-07-13 76 static vm_fault_t __dev_dax_pte_fault(struct dev_dax *dev_dax, 2232c6382a453db drivers/dax/device.c Dan Williams 2018-07-13 77 struct vm_fault *vmf, pfn_t *pfn) dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 78 { 5f0694b300b9fb8 drivers/dax/dax.c Dan Williams 2017-01-30 79 struct device *dev = &dev_dax->dev; dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 @80 struct dax_region *dax_region; dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 81 phys_addr_t phys; 0134ed4fb9e7867 drivers/dax/dax.c Dave Jiang 2017-03-10 82 unsigned int fault_size = PAGE_SIZE; dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 83 5f0694b300b9fb8 drivers/dax/dax.c Dan Williams 2017-01-30 84 if (check_vma(dev_dax, vmf->vma, __func__)) dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 85 return VM_FAULT_SIGBUS; dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 86 5f0694b300b9fb8 drivers/dax/dax.c Dan Williams 2017-01-30 87 dax_region = dev_dax->region; 58e646f2ce61dc9 drivers/dax/device.c Joao Martins 2020-07-31 88 if (dev_dax->align > PAGE_SIZE) { 6daaca522ab464d drivers/dax/device.c Dan Williams 2018-03-05 89 dev_dbg(dev, "alignment (%#x) > fault size (%#x)\n", 58e646f2ce61dc9 drivers/dax/device.c Joao Martins 2020-07-31 90 dev_dax->align, fault_size); dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 91 return VM_FAULT_SIGBUS; dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 92 } dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 93 58e646f2ce61dc9 drivers/dax/device.c Joao Martins 2020-07-31 94 if (fault_size != dev_dax->align) 0134ed4fb9e7867 drivers/dax/dax.c Dave Jiang 2017-03-10 95 return VM_FAULT_SIGBUS; 0134ed4fb9e7867 drivers/dax/dax.c Dave Jiang 2017-03-10 96 736163671bcb163 drivers/dax/device.c Dan Williams 2017-05-04 97 phys = dax_pgoff_to_phys(dev_dax, vmf->pgoff, PAGE_SIZE); dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 98 if (phys == -1) { 6daaca522ab464d drivers/dax/device.c Dan Williams 2018-03-05 99 dev_dbg(dev, "pgoff_to_phys(%#lx) failed\n", vmf->pgoff); dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 100 return VM_FAULT_SIGBUS; dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 101 } dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 102 e651e2e797b48fb drivers/dax/device.c Dan Williams 2020-07-31 103 *pfn = phys_to_pfn_t(phys, PFN_DEV|PFN_MAP); dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 104 2232c6382a453db drivers/dax/device.c Dan Williams 2018-07-13 105 return vmf_insert_mixed(vmf->vma, vmf->address, *pfn); dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 106 } dee410792419aaa drivers/dax/dax.c Dan Williams 2016-05-14 107 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org