Hi Michal, FYI, the error/warning still remains. tree: https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.4 head: d128303e4c53bcf7775c46771bf64c71596f3303 commit: e310970affe01f4432b5a022438bae976c7f324f [1171/1762] irqchip: xilinx: Enable generic irq multi handler config: i386-allyesconfig (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 ARCH=i386 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): 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 'handle_irq'? [-Werror=implicit-function-declaration] 295 | set_handle_irq(xil_intc_handle_irq); | ^~~~~~~~~~~~~~ | handle_irq cc1: some warnings being treated as errors 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