[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202504071910.eL0mjen2-lkp@intel.com>
Date: Mon, 7 Apr 2025 19:32:39 +0800
From: kernel test robot <lkp@...el.com>
To: Raag Jadav <raag.jadav@...el.com>, gregkh@...uxfoundation.org,
david.m.ertman@...el.com, ira.weiny@...el.com, lee@...nel.org,
andriy.shevchenko@...ux.intel.com
Cc: oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org,
Raag Jadav <raag.jadav@...el.com>
Subject: Re: [PATCH v2] mfd: core: Support auxiliary device
Hi Raag,
kernel test robot noticed the following build errors:
[auto build test ERROR on lee-mfd/for-mfd-next]
[also build test ERROR on lee-mfd/for-mfd-fixes linus/master v6.15-rc1 next-20250407]
[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/Raag-Jadav/mfd-core-Support-auxiliary-device/20250407-154807
base: https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git for-mfd-next
patch link: https://lore.kernel.org/r/20250407074614.1665575-1-raag.jadav%40intel.com
patch subject: [PATCH v2] mfd: core: Support auxiliary device
config: arm-socfpga_defconfig (https://download.01.org/0day-ci/archive/20250407/202504071910.eL0mjen2-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250407/202504071910.eL0mjen2-lkp@intel.com/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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202504071910.eL0mjen2-lkp@intel.com/
All errors (new ones prefixed by >>):
arm-linux-gnueabi-ld: drivers/mfd/mfd-core.o: in function `mfd_add_auxiliary_device':
>> drivers/mfd/mfd-core.c:209:(.text+0x360): undefined reference to `auxiliary_device_init'
>> arm-linux-gnueabi-ld: drivers/mfd/mfd-core.c:213:(.text+0x3d0): undefined reference to `__auxiliary_device_add'
vim +209 drivers/mfd/mfd-core.c
156
157 static int mfd_add_auxiliary_device(struct device *parent, int id, const struct mfd_cell *cell,
158 struct resource *mem_base, int irq_base,
159 struct irq_domain *domain)
160 {
161 struct mfd_aux_device *mfd_aux;
162 struct auxiliary_device *auxdev;
163 int r, ret;
164
165 mfd_aux = kzalloc(sizeof(*mfd_aux), GFP_KERNEL);
166 if (!mfd_aux)
167 return -ENOMEM;
168
169 for (r = 0; r < cell->num_resources; r++) {
170 /* Find out base to use */
171 if ((cell->resources[r].flags & IORESOURCE_MEM) && mem_base) {
172 mfd_aux->mem.name = cell->resources[r].name;
173 mfd_aux->mem.flags = cell->resources[r].flags;
174
175 mfd_aux->mem.parent = mem_base;
176 mfd_aux->mem.start = mem_base->start + cell->resources[r].start;
177 mfd_aux->mem.end = mem_base->start + cell->resources[r].end;
178 } else if (cell->resources[r].flags & IORESOURCE_IRQ) {
179 mfd_aux->irq.name = cell->resources[r].name;
180 mfd_aux->irq.flags = cell->resources[r].flags;
181
182 if (domain) {
183 /* Unable to create mappings for IRQ ranges */
184 WARN_ON(cell->resources[r].start != cell->resources[r].end);
185 mfd_aux->irq.start = mfd_aux->irq.end = irq_create_mapping(
186 domain, cell->resources[r].start);
187 } else {
188 mfd_aux->irq.start = irq_base + cell->resources[r].start;
189 mfd_aux->irq.end = irq_base + cell->resources[r].end;
190 }
191 } else {
192 mfd_aux->ext.name = cell->resources[r].name;
193 mfd_aux->ext.flags = cell->resources[r].flags;
194 mfd_aux->ext.parent = cell->resources[r].parent;
195 mfd_aux->ext.start = cell->resources[r].start;
196 mfd_aux->ext.end = cell->resources[r].end;
197 }
198 }
199
200 auxdev = &mfd_aux->auxdev;
201 auxdev->name = cell->name;
202 /* Use parent id for discoverable devices */
203 auxdev->id = dev_is_pci(parent) ? pci_dev_id(to_pci_dev(parent)) : cell->id;
204
205 auxdev->dev.parent = parent;
206 auxdev->dev.type = &mfd_dev_type[MFD_AUX_DEV];
207 auxdev->dev.release = mfd_release_auxiliary_device;
208
> 209 ret = auxiliary_device_init(auxdev);
210 if (ret)
211 goto fail_aux_init;
212
> 213 ret = __auxiliary_device_add(auxdev, parent->driver->name);
214 if (ret)
215 goto fail_aux_add;
216
217 return 0;
218
219 fail_aux_add:
220 /* auxdev will be freed with the put_device() and .release sequence */
221 auxiliary_device_uninit(auxdev);
222 fail_aux_init:
223 kfree(mfd_aux);
224 return ret;
225 }
226
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists