[xlnx:xlnx_rebase_v5.4 1171/1757] drivers/irqchip/irq-xilinx-intc.c:295:3: error: implicit declaration of function 'set_handle_irq'; did you mean 'generic_handle_irq'?

kernel test robot lkp at intel.com
Thu May 13 03:14:10 PDT 2021


Hi Michal,

FYI, the error/warning still remains.

tree:   https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.4
head:   f09edce8c39b74223461bf2175649535ebe8b213
commit: e310970affe01f4432b5a022438bae976c7f324f [1171/1757] irqchip: xilinx: Enable generic irq multi handler
config: um-allmodconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://github.com/Xilinx/linux-xlnx/commit/e310970affe01f4432b5a022438bae976c7f324f
        git remote add xlnx https://github.com/Xilinx/linux-xlnx
        git fetch --no-tags xlnx xlnx_rebase_v5.4
        git checkout e310970affe01f4432b5a022438bae976c7f324f
        # save the attached .config to linux build tree
        make W=1 W=1 ARCH=um 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>

All errors (new ones prefixed by >>):

   cc1: warning: arch/um/include/uapi: No such file or directory [-Wmissing-include-dirs]
   drivers/irqchip/irq-xilinx-intc.c: In function 'xilinx_intc_of_init':
>> drivers/irqchip/irq-xilinx-intc.c:295:3: error: implicit declaration of function 'set_handle_irq'; did you mean 'generic_handle_irq'? [-Werror=implicit-function-declaration]
     295 |   set_handle_irq(xil_intc_handle_irq);
         |   ^~~~~~~~~~~~~~
         |   generic_handle_irq
   cc1: some warnings being treated as errors

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for UIO_DMEM_GENIRQ
   Depends on UIO && HAS_DMA
   Selected by
   - UIO_XILINX_AI_ENGINE && UIO


vim +295 drivers/irqchip/irq-xilinx-intc.c

   194	
   195	static int __init xilinx_intc_of_init(struct device_node *intc,
   196						     struct device_node *parent)
   197	{
   198		int ret, irq;
   199		struct xintc_irq_chip *irqc;
   200		struct irq_chip *intc_dev;
   201		u32 cpu_id = 0;
   202	
   203		ret = of_property_read_u32(intc, "cpu-id", &cpu_id);
   204		if (ret < 0)
   205			pr_err("%s: %pOF: cpu_id not found\n", __func__, intc);
   206	
   207		/* No parent means it is primary intc */
   208		if (!parent) {
   209			irqc = per_cpu_ptr(&primary_intc, cpu_id);
   210			if (irqc->base) {
   211				pr_err("%pOF: %s: cpu %d has already irq controller\n",
   212					intc, __func__, cpu_id);
   213				return -EINVAL;
   214			}
   215		} else {
   216			irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
   217			if (!irqc)
   218				return -ENOMEM;
   219		}
   220	
   221		irqc->base = of_iomap(intc, 0);
   222		BUG_ON(!irqc->base);
   223	
   224		ret = of_property_read_u32(intc, "xlnx,num-intr-inputs", &irqc->nr_irq);
   225		if (ret < 0) {
   226			pr_err("irq-xilinx: unable to read xlnx,num-intr-inputs\n");
   227			goto error;
   228		}
   229	
   230		ret = of_property_read_u32(intc, "xlnx,kind-of-intr", &irqc->intr_mask);
   231		if (ret < 0) {
   232			pr_warn("irq-xilinx: unable to read xlnx,kind-of-intr\n");
   233			irqc->intr_mask = 0;
   234		}
   235	
   236		if (irqc->intr_mask >> irqc->nr_irq)
   237			pr_warn("irq-xilinx: mismatch in kind-of-intr param\n");
   238	
   239		pr_info("irq-xilinx: %pOF: num_irq=%d, edge=0x%x\n",
   240			intc, irqc->nr_irq, irqc->intr_mask);
   241	
   242		intc_dev = kzalloc(sizeof(*intc_dev), GFP_KERNEL);
   243		if (!intc_dev) {
   244			ret = -ENOMEM;
   245			goto error;
   246		}
   247	
   248		intc_dev->name = intc->full_name;
   249		intc_dev->irq_unmask = intc_enable_or_unmask,
   250		intc_dev->irq_mask = intc_disable_or_mask,
   251		intc_dev->irq_ack = intc_ack,
   252		intc_dev->irq_mask_ack = intc_mask_ack,
   253		irqc->intc_dev = intc_dev;
   254	
   255		irqc->write_fn = xintc_write;
   256		irqc->read_fn = xintc_read;
   257		/*
   258		 * Disable all external interrupts until they are
   259		 * explicity requested.
   260		 */
   261		irqc->write_fn(irqc->base + IER, 0);
   262	
   263		/* Acknowledge any pending interrupts just in case. */
   264		irqc->write_fn(irqc->base + IAR, 0xffffffff);
   265	
   266		/* Turn on the Master Enable. */
   267		irqc->write_fn(irqc->base + MER, MER_HIE | MER_ME);
   268		if (!(irqc->read_fn(irqc->base + MER) & (MER_HIE | MER_ME))) {
   269			irqc->write_fn = xintc_write_be;
   270			irqc->read_fn = xintc_read_be;
   271			irqc->write_fn(irqc->base + MER, MER_HIE | MER_ME);
   272		}
   273	
   274		irqc->root_domain = irq_domain_add_linear(intc, irqc->nr_irq,
   275							  &xintc_irq_domain_ops, irqc);
   276		if (!irqc->root_domain) {
   277			pr_err("irq-xilinx: Unable to create IRQ domain\n");
   278			ret = -EINVAL;
   279			goto err_alloc;
   280		}
   281	
   282		if (parent) {
   283			irq = irq_of_parse_and_map(intc, 0);
   284			if (irq) {
   285				irq_set_chained_handler_and_data(irq,
   286								 xil_intc_irq_handler,
   287								 irqc);
   288			} else {
   289				pr_err("irq-xilinx: interrupts property not in DT\n");
   290				ret = -EINVAL;
   291				goto err_alloc;
   292			}
   293		} else {
   294			irq_set_default_host(irqc->root_domain);
 > 295			set_handle_irq(xil_intc_handle_irq);
   296		}
   297	
   298		return 0;
   299	
   300	err_alloc:
   301		kfree(intc_dev);
   302	error:
   303		iounmap(irqc->base);
   304		if (parent)
   305			kfree(irqc);
   306		return ret;
   307	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 22043 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20210513/16ba8bef/attachment-0001.gz>


More information about the linux-arm-kernel mailing list