Hi Lee,
I love your patch! Yet something to improve:
[auto build test ERROR on ljones-mfd/for-mfd-next]
[also build test ERROR on v5.7 next-20200611]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see
https://stackoverflow.com/a/37406982]
url:
https://github.com/0day-ci/linux/commits/Lee-Jones/mfd-Make-a-best-effort...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git for-mfd-next
config: x86_64-randconfig-s021-20200611 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-250-g42323db3-dirty
# save the attached .config to linux build tree
make W=1 C=1 ARCH=x86_64 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
drivers/mfd/mfd-core.c: In function 'mfd_match_of_node_to_dev':
> drivers/mfd/mfd-core.c:152:17: error: implicit declaration of
function 'of_read_number' [-Werror=implicit-function-declaration]
152 |
of_node_addr = of_read_number(reg, of_n_addr_cells(np));
| ^~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/of_read_number +152 drivers/mfd/mfd-core.c
119
120 static int mfd_match_of_node_to_dev(struct platform_device *pdev,
121 struct device_node *np,
122 const struct mfd_cell *cell)
123 {
124 struct mfd_of_node_entry *of_entry;
125 const __be32 *reg;
126 u64 of_node_addr;
127 bool of_node_used;
128
129 /* Skip devices 'disabled' by Device Tree */
130 if (!of_device_is_available(np))
131 return -ENODEV;
132
133 /* Skip if OF node has previously been allocated to a device */
134 of_node_used = false;
135 list_for_each_entry(of_entry, &mfd_of_node_list, list)
136 if (of_entry->np == np)
137 of_node_used = true;
138
139 if (of_node_used)
140 return -EAGAIN;
141
142 if (!cell->of_reg)
143 /* No match defined - allocate the first free matching node */
144 goto allocate_of_node;
145
146 /* We only care about each node's first defined address */
147 reg = of_get_address(np, 0, NULL, NULL);
148 if (!reg)
149 /* OF node does not contatin a 'reg' property to match to */
150 return -EAGAIN;
151
152 of_node_addr = of_read_number(reg, of_n_addr_cells(np));
153
154 if (cell->of_reg != of_node_addr)
155 /* No match */
156 return -EAGAIN;
157
158 allocate_of_node:
159 of_entry = kzalloc(sizeof(*of_entry), GFP_KERNEL);
160 if (!of_entry)
161 return -ENOMEM;
162
163 of_entry->dev = &pdev->dev;
164 of_entry->np = np;
165 list_add_tail(&of_entry->list, &mfd_of_node_list);
166
167 pdev->dev.of_node = np;
168 pdev->dev.fwnode = &np->fwnode;
169
170 return 0;
171 }
172
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org