Re: [PATCH v9 2/4] irqchip: Add IMX MU MSI controller driver

kernel test robot
2022-09-08T00:03:44Z

Hi Frank,

I love your patch! Yet something to improve:

[auto build test ERROR on jonmason-ntb/ntb-next]
[also build test ERROR on robh/for-next linus/master v6.0-rc4 next-20220907]
[cannot apply to tip/irq/core]
[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/Frank-Li/PCI-EP-driver-support-MSI-doorbell-from-host/20220907-115114
base: https://github.com/jonmason/ntb ntb-next
config: s390-randconfig-s033-20220907 (https://download.01.org/0day-ci/archive/20220908/202209080757.hQMfrrfm-lkp@intel.com/config)
compiler: s390-linux-gcc (GCC) 12.1.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-39-gce1a6720-dirty
# https://github.com/intel-lab-lkp/linux/commit/c1f079e633c10b4f2f1f3c8f52e447d13fda8ddb
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Frank-Li/PCI-EP-driver-support-MSI-doorbell-from-host/20220907-115114
git checkout c1f079e633c10b4f2f1f3c8f52e447d13fda8ddb
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=s390 SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

s390-linux-ld: drivers/irqchip/irq-imx-mu-msi.o: in function `imx_mu_of_init':
>> drivers/irqchip/irq-imx-mu-msi.c:316: undefined reference to `devm_platform_ioremap_resource_byname'

vim +316 drivers/irqchip/irq-imx-mu-msi.c

288
289 static int __init imx_mu_of_init(struct device_node *dn,
290 struct device_node *parent,
291 const struct imx_mu_dcfg *cfg
292 )
293 {
294 struct platform_device *pdev = of_find_device_by_node(dn);
295 struct device_link *pd_link_a;
296 struct device_link *pd_link_b;
297 struct imx_mu_msi *msi_data;
298 struct resource *res;
299 struct device *pd_a;
300 struct device *pd_b;
301 struct device *dev;
302 int ret;
303 int irq;
304
305 if (!pdev)
306 return -ENODEV;
307
308 dev = &pdev->dev;
309
310 msi_data = devm_kzalloc(&pdev->dev, sizeof(*msi_data), GFP_KERNEL);
311 if (!msi_data)
312 return -ENOMEM;
313
314 msi_data->cfg = cfg;
315
> 316 msi_data->regs = devm_platform_ioremap_resource_byname(pdev, "processor-a-side");
317 if (IS_ERR(msi_data->regs)) {
318 dev_err(&pdev->dev, "failed to initialize 'regs'\n");
319 return PTR_ERR(msi_data->regs);
320 }
321
322 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "processor-b-side");
323 if (!res)
324 return -EIO;
325
326 msi_data->msiir_addr = res->start + msi_data->cfg->xTR;
327
328 irq = platform_get_irq(pdev, 0);
329 if (irq <= 0)
330 return -ENODEV;
331
332 platform_set_drvdata(pdev, msi_data);
333
334 msi_data->clk = devm_clk_get(dev, NULL);
335 if (IS_ERR(msi_data->clk)) {
336 if (PTR_ERR(msi_data->clk) != -ENOENT)
337 return PTR_ERR(msi_data->clk);
338
339 msi_data->clk = NULL;
340 }
341
342 pd_a = dev_pm_domain_attach_by_name(dev, "processor-a-side");
343 if (IS_ERR(pd_a))
344 return PTR_ERR(pd_a);
345
346 pd_b = dev_pm_domain_attach_by_name(dev, "processor-b-side");
347 if (IS_ERR(pd_b))
348 return PTR_ERR(pd_b);
349
350 pd_link_a = device_link_add(dev, pd_a,
351 DL_FLAG_STATELESS |
352 DL_FLAG_PM_RUNTIME |
353 DL_FLAG_RPM_ACTIVE);
354
355 if (!pd_link_a) {
356 dev_err(dev, "Failed to add device_link to mu a.\n");
357 goto err_pd_a;
358 }
359
360 pd_link_b = device_link_add(dev, pd_b,
361 DL_FLAG_STATELESS |
362 DL_FLAG_PM_RUNTIME |
363 DL_FLAG_RPM_ACTIVE);
364
365
366 if (!pd_link_b) {
367 dev_err(dev, "Failed to add device_link to mu a.\n");
368 goto err_pd_b;
369 }
370
371 ret = imx_mu_msi_domains_init(msi_data, dev);
372 if (ret)
373 goto err_dm_init;
374
375 irq_set_chained_handler_and_data(irq,
376 imx_mu_msi_irq_handler,
377 msi_data);
378
379 pm_runtime_enable(dev);
380
381 return 0;
382
383 err_dm_init:
384 device_link_remove(dev, pd_b);
385 err_pd_b:
386 device_link_remove(dev, pd_a);
387 err_pd_a:
388 return -EINVAL;
389 }
390

--
0-DAY CI Kernel Test Service