Hi, kernel test robot noticed the following build warnings: [auto build test WARNING on broonie-spi/for-next] [also build test WARNING on atorgue-stm32/stm32-next krzk-mem-ctrl/for-next linus/master v6.14-rc2 next-20250210] [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/patrice-chotard-foss-st-com/dt-bindings-spi-Add-STM32-OSPI-controller/20250210-212554 base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next patch link: https://lore.kernel.org/r/20250210131826.220318-5-patrice.chotard%40foss.st.com patch subject: [PATCH v3 4/8] memory: Add STM32 Octo Memory Manager driver config: m68k-allyesconfig (https://download.01.org/0day-ci/archive/20250212/202502120005.pznVoB0E-lkp@xxxxxxxxx/config) compiler: m68k-linux-gcc (GCC) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250212/202502120005.pznVoB0E-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/202502120005.pznVoB0E-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): In file included from include/linux/device.h:15, from include/linux/platform_device.h:13, from include/linux/bus/stm32_firewall_device.h:10, from drivers/memory/stm32_omm.c:7: drivers/memory/stm32_omm.c: In function 'stm32_omm_set_amcr': >> drivers/memory/stm32_omm.c:82:38: warning: format '%llx' expects argument of type 'long long unsigned int', but argument 3 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=] 82 | dev_err(dev, "[0x%llx-0x%llx] doesn't fit inside [0x%llx-0x%llx]\n", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ include/linux/dev_printk.h:154:56: note: in expansion of macro 'dev_fmt' 154 | dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ drivers/memory/stm32_omm.c:82:25: note: in expansion of macro 'dev_err' 82 | dev_err(dev, "[0x%llx-0x%llx] doesn't fit inside [0x%llx-0x%llx]\n", | ^~~~~~~ drivers/memory/stm32_omm.c:82:45: note: format string is defined here 82 | dev_err(dev, "[0x%llx-0x%llx] doesn't fit inside [0x%llx-0x%llx]\n", | ~~~^ | | | long long unsigned int | %x drivers/memory/stm32_omm.c:82:38: warning: format '%llx' expects argument of type 'long long unsigned int', but argument 4 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=] 82 | dev_err(dev, "[0x%llx-0x%llx] doesn't fit inside [0x%llx-0x%llx]\n", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ include/linux/dev_printk.h:154:56: note: in expansion of macro 'dev_fmt' 154 | dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ drivers/memory/stm32_omm.c:82:25: note: in expansion of macro 'dev_err' 82 | dev_err(dev, "[0x%llx-0x%llx] doesn't fit inside [0x%llx-0x%llx]\n", | ^~~~~~~ drivers/memory/stm32_omm.c:82:52: note: format string is defined here 82 | dev_err(dev, "[0x%llx-0x%llx] doesn't fit inside [0x%llx-0x%llx]\n", | ~~~^ | | | long long unsigned int | %x drivers/memory/stm32_omm.c:82:38: warning: format '%llx' expects argument of type 'long long unsigned int', but argument 5 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=] 82 | dev_err(dev, "[0x%llx-0x%llx] doesn't fit inside [0x%llx-0x%llx]\n", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ include/linux/dev_printk.h:154:56: note: in expansion of macro 'dev_fmt' 154 | dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ drivers/memory/stm32_omm.c:82:25: note: in expansion of macro 'dev_err' 82 | dev_err(dev, "[0x%llx-0x%llx] doesn't fit inside [0x%llx-0x%llx]\n", | ^~~~~~~ drivers/memory/stm32_omm.c:82:80: note: format string is defined here 82 | dev_err(dev, "[0x%llx-0x%llx] doesn't fit inside [0x%llx-0x%llx]\n", | ~~~^ | | | long long unsigned int | %x drivers/memory/stm32_omm.c:82:38: warning: format '%llx' expects argument of type 'long long unsigned int', but argument 6 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=] 82 | dev_err(dev, "[0x%llx-0x%llx] doesn't fit inside [0x%llx-0x%llx]\n", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ include/linux/dev_printk.h:154:56: note: in expansion of macro 'dev_fmt' 154 | dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ drivers/memory/stm32_omm.c:82:25: note: in expansion of macro 'dev_err' 82 | dev_err(dev, "[0x%llx-0x%llx] doesn't fit inside [0x%llx-0x%llx]\n", | ^~~~~~~ drivers/memory/stm32_omm.c:82:87: note: format string is defined here 82 | dev_err(dev, "[0x%llx-0x%llx] doesn't fit inside [0x%llx-0x%llx]\n", | ~~~^ | | | long long unsigned int | %x drivers/memory/stm32_omm.c:96:46: warning: format '%llx' expects argument of type 'long long unsigned int', but argument 3 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=] 96 | dev_err(dev, "[0x%llx-0x%llx] overlaps [0x%llx-0x%llx]\n", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ include/linux/dev_printk.h:154:56: note: in expansion of macro 'dev_fmt' 154 | dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ drivers/memory/stm32_omm.c:96:33: note: in expansion of macro 'dev_err' 96 | dev_err(dev, "[0x%llx-0x%llx] overlaps [0x%llx-0x%llx]\n", | ^~~~~~~ drivers/memory/stm32_omm.c:96:53: note: format string is defined here 96 | dev_err(dev, "[0x%llx-0x%llx] overlaps [0x%llx-0x%llx]\n", | ~~~^ | | | long long unsigned int | %x drivers/memory/stm32_omm.c:96:46: warning: format '%llx' expects argument of type 'long long unsigned int', but argument 4 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=] 96 | dev_err(dev, "[0x%llx-0x%llx] overlaps [0x%llx-0x%llx]\n", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ include/linux/dev_printk.h:154:56: note: in expansion of macro 'dev_fmt' 154 | dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ drivers/memory/stm32_omm.c:96:33: note: in expansion of macro 'dev_err' 96 | dev_err(dev, "[0x%llx-0x%llx] overlaps [0x%llx-0x%llx]\n", vim +82 drivers/memory/stm32_omm.c 44 45 static int stm32_omm_set_amcr(struct device *dev, bool set) 46 { 47 struct stm32_omm *omm = dev_get_drvdata(dev); 48 struct regmap *syscfg_regmap; 49 struct device_node *node; 50 struct resource res, res1; 51 resource_size_t mm_ospi2_size = 0; 52 static const char * const mm_name[] = { "ospi1", "ospi2" }; 53 u32 amcr_base, amcr_mask; 54 int ret, i, idx; 55 unsigned int amcr, read_amcr; 56 57 for (i = 0; i < omm->nb_child; i++) { 58 idx = of_property_match_string(dev->of_node, 59 "memory-region-names", 60 mm_name[i]); 61 if (idx < 0) 62 continue; 63 64 /* res1 only used on second loop iteration */ 65 res1.start = res.start; 66 res1.end = res.end; 67 68 node = of_parse_phandle(dev->of_node, "memory-region", idx); 69 if (!node) 70 continue; 71 72 ret = of_address_to_resource(node, 0, &res); 73 if (ret) { 74 dev_err(dev, "unable to resolve memory region\n"); 75 return ret; 76 } 77 78 /* check that memory region fits inside OMM memory map area */ 79 if (!resource_contains(omm->mm_res, &res)) { 80 dev_err(dev, "%s doesn't fit inside OMM memory map area\n", 81 mm_name[i]); > 82 dev_err(dev, "[0x%llx-0x%llx] doesn't fit inside [0x%llx-0x%llx]\n", 83 res.start, res.end, 84 omm->mm_res->start, omm->mm_res->end); 85 86 return -EFAULT; 87 } 88 89 if (i == 1) { 90 mm_ospi2_size = resource_size(&res); 91 92 /* check that OMM memory region 1 doesn't overlap memory region 2 */ 93 if (resource_overlaps(&res, &res1)) { 94 dev_err(dev, "OMM memory-region %s overlaps memory region %s\n", 95 mm_name[0], mm_name[1]); 96 dev_err(dev, "[0x%llx-0x%llx] overlaps [0x%llx-0x%llx]\n", 97 res1.start, res1.end, res.start, res.end); 98 99 return -EFAULT; 100 } 101 } 102 } 103 104 syscfg_regmap = syscon_regmap_lookup_by_phandle(dev->of_node, "st,syscfg-amcr"); 105 if (IS_ERR(syscfg_regmap)) { 106 dev_err(dev, "Failed to get st,syscfg-amcr property\n"); 107 return PTR_ERR(syscfg_regmap); 108 } 109 110 ret = of_property_read_u32_index(dev->of_node, "st,syscfg-amcr", 1, 111 &amcr_base); 112 if (ret) 113 return ret; 114 115 ret = of_property_read_u32_index(dev->of_node, "st,syscfg-amcr", 2, 116 &amcr_mask); 117 if (ret) 118 return ret; 119 120 amcr = mm_ospi2_size / SZ_64M; 121 122 if (set) 123 regmap_update_bits(syscfg_regmap, amcr_base, amcr_mask, amcr); 124 125 /* read AMCR and check coherency with memory-map areas defined in DT */ 126 regmap_read(syscfg_regmap, amcr_base, &read_amcr); 127 read_amcr = read_amcr >> (ffs(amcr_mask) - 1); 128 129 if (amcr != read_amcr) { 130 dev_err(dev, "AMCR value not coherent with DT memory-map areas\n"); 131 ret = -EINVAL; 132 } 133 134 return ret; 135 } 136 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki