Re: [PATCH v3 2/2] libnvdimm: add nd_e820.pmem automatic devdax conversion

From: kernel test robot
Date: Mon Jun 23 2025 - 06:03:21 EST


Hi Michal,

kernel test robot noticed the following build warnings:

[auto build test WARNING on linus/master]
[also build test WARNING on nvdimm/libnvdimm-for-next v6.16-rc3 next-20250623]
[cannot apply to nvdimm/dax-misc]
[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#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Michal-Clapinski/libnvdimm-e820-Add-a-new-parameter-to-split-e820-entry-into-many-regions/20250612-194354
base: linus/master
patch link: https://lore.kernel.org/r/20250612114210.2786075-3-mclapinski%40google.com
patch subject: [PATCH v3 2/2] libnvdimm: add nd_e820.pmem automatic devdax conversion
config: x86_64-randconfig-r111-20250621 (https://download.01.org/0day-ci/archive/20250623/202506231721.IePmiDyz-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250623/202506231721.IePmiDyz-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202506231721.IePmiDyz-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> drivers/nvdimm/pfn_devs.c:684:23: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] align @@ got restricted __le64 [usertype] @@
drivers/nvdimm/pfn_devs.c:684:23: sparse: expected restricted __le32 [usertype] align
drivers/nvdimm/pfn_devs.c:684:23: sparse: got restricted __le64 [usertype]

vim +684 drivers/nvdimm/pfn_devs.c

646
647 int nd_pfn_set_dax_defaults(struct nd_pfn *nd_pfn)
648 {
649 struct nd_pfn_sb *pfn_sb = nd_pfn->pfn_sb;
650 struct nd_namespace_common *ndns = nd_pfn->ndns;
651 struct nd_region *nd_region = to_nd_region(nd_pfn->dev.parent);
652 struct nd_namespace_io *nsio;
653 struct resource *res;
654 unsigned long align;
655
656 if (!pfn_sb || !ndns)
657 return -ENODEV;
658
659 if (!is_memory(nd_pfn->dev.parent))
660 return -ENODEV;
661
662 if (nd_region->provider_data) {
663 align = (unsigned long)nd_region->provider_data;
664 } else {
665 nsio = to_nd_namespace_io(&ndns->dev);
666 res = &nsio->res;
667 align = nd_best_supported_alignment(res->start, res->end);
668 if (!align) {
669 dev_err(&nd_pfn->dev, "init failed, resource misaligned\n");
670 return -EOPNOTSUPP;
671 }
672 }
673
674 memset(pfn_sb, 0, sizeof(*pfn_sb));
675
676 if (!nd_pfn->uuid) {
677 nd_pfn->uuid = kmemdup(pfn_sb->uuid, 16, GFP_KERNEL);
678 if (!nd_pfn->uuid)
679 return -ENOMEM;
680 nd_pfn->align = align;
681 nd_pfn->mode = PFN_MODE_RAM;
682 }
683
> 684 pfn_sb->align = cpu_to_le64(nd_pfn->align);
685 pfn_sb->mode = cpu_to_le32(nd_pfn->mode);
686
687 return nd_pfn_checks(nd_pfn, 0, 0, 0);
688 }
689 EXPORT_SYMBOL(nd_pfn_set_dax_defaults);
690

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki