Re: [PATCH 30/46] of: reserved_mem: Add code to use unflattened DT for reserved_mem nodes

From: kernel test robot
Date: Sat Jan 27 2024 - 23:31:07 EST


Hi Oreoluwa,

kernel test robot noticed the following build warnings:

[auto build test WARNING on robh/for-next]
[also build test WARNING on arm64/for-next/core vgupta-arc/for-curr powerpc/next powerpc/fixes jcmvbkbc-xtensa/xtensa-for-next linus/master v6.8-rc1 next-20240125]
[cannot apply to vgupta-arc/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#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Oreoluwa-Babatunde/of-reserved_mem-Change-the-order-that-reserved_mem-regions-are-stored/20240127-081735
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
patch link: https://lore.kernel.org/r/20240126235425.12233-31-quic_obabatun%40quicinc.com
patch subject: [PATCH 30/46] of: reserved_mem: Add code to use unflattened DT for reserved_mem nodes
config: i386-randconfig-061-20240127 (https://download.01.org/0day-ci/archive/20240128/202401281219.iIhqs1Si-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/20240128/202401281219.iIhqs1Si-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/202401281219.iIhqs1Si-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> drivers/of/of_reserved_mem.c:111:18: sparse: sparse: incompatible types for operation (<):
drivers/of/of_reserved_mem.c:111:18: sparse: struct device_node *[assigned] node
drivers/of/of_reserved_mem.c:111:18: sparse: int

vim +111 drivers/of/of_reserved_mem.c

98
99 /*
100 * Save the reserved_mem reg nodes in the reserved_mem array
101 */
102 static void __init dt_scan_reserved_mem_reg_nodes(void)
103 {
104 int t_len = (dt_root_addr_cells + dt_root_size_cells) * sizeof(__be32);
105 struct device_node *node, *child;
106 phys_addr_t base, size;
107 const __be32 *prop;
108 int len;
109
110 node = of_find_node_by_path("/reserved-memory");
> 111 if (node < 0) {
112 pr_err("Reserved memory: Did not find reserved-memory node\n");
113 return;
114 }
115
116 for_each_child_of_node(node, child) {
117 const char *uname;
118 struct reserved_mem *rmem;
119
120 if (!of_device_is_available(child))
121 continue;
122
123 prop = of_get_property(child, "reg", &len);
124 if (!prop) {
125 rmem = of_reserved_mem_lookup(child);
126 if (rmem)
127 rmem->dev_node = child;
128 continue;
129 }
130
131 uname = of_node_full_name(child);
132 if (len && len % t_len != 0) {
133 pr_err("Reserved memory: invalid reg property in '%s', skipping node.\n",
134 uname);
135 continue;
136 }
137
138 base = dt_mem_next_cell(dt_root_addr_cells, &prop);
139 size = dt_mem_next_cell(dt_root_size_cells, &prop);
140
141 if (size)
142 fdt_reserved_mem_save_node(child, uname, base, size);
143 }
144 }
145

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