[arm-platforms:irq/irqchip-next 15/16] drivers/irqchip/irq-wpcm450-aic.c:64:35: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'wpcm450_aic_handle_irq'

kernel test robot lkp at intel.com
Wed Apr 7 23:03:45 BST 2021


tree:   https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git irq/irqchip-next
head:   ea4aeaa5c88906eb3ca3d7d3d17a45605d2dd0de
commit: fead4dd496631707549f414b4059afb86ea8fb80 [15/16] irqchip: Add driver for WPCM450 interrupt controller
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git/commit/?id=fead4dd496631707549f414b4059afb86ea8fb80
        git remote add arm-platforms https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git
        git fetch --no-tags arm-platforms irq/irqchip-next
        git checkout fead4dd496631707549f414b4059afb86ea8fb80
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=ia64 

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 >>):

>> drivers/irqchip/irq-wpcm450-aic.c:64:35: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'wpcm450_aic_handle_irq'
      64 | static void __exception_irq_entry wpcm450_aic_handle_irq(struct pt_regs *regs)
         |                                   ^~~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/of_irq.h:7,
                    from drivers/irqchip/irq-wpcm450-aic.c:6:
   drivers/irqchip/irq-wpcm450-aic.c: In function 'wpcm450_aic_of_init':
>> drivers/irqchip/irq-wpcm450-aic.c:154:17: error: 'wpcm450_aic_handle_irq' undeclared (first use in this function); did you mean 'wpcm450_aic_eoi'?
     154 |  set_handle_irq(wpcm450_aic_handle_irq);
         |                 ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/irq.h:1263:9: note: in definition of macro 'set_handle_irq'
    1263 |   (void)handle_irq;  \
         |         ^~~~~~~~~~
   drivers/irqchip/irq-wpcm450-aic.c:154:17: note: each undeclared identifier is reported only once for each function it appears in
     154 |  set_handle_irq(wpcm450_aic_handle_irq);
         |                 ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/irq.h:1263:9: note: in definition of macro 'set_handle_irq'
    1263 |   (void)handle_irq;  \
         |         ^~~~~~~~~~

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for FRAME_POINTER
   Depends on DEBUG_KERNEL && (M68K || UML || SUPERH) || ARCH_WANT_FRAME_POINTERS
   Selected by
   - FAULT_INJECTION_STACKTRACE_FILTER && FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT && !X86_64 && !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM && !ARC && !X86


vim +64 drivers/irqchip/irq-wpcm450-aic.c

    63	
  > 64	static void __exception_irq_entry wpcm450_aic_handle_irq(struct pt_regs *regs)
    65	{
    66		int hwirq;
    67	
    68		/* Determine the interrupt source */
    69		/* Read IPER to signal that nIRQ can be de-asserted */
    70		hwirq = readl(aic->regs + AIC_IPER) / 4;
    71	
    72		handle_domain_irq(aic->domain, hwirq, regs);
    73	}
    74	
    75	static void wpcm450_aic_eoi(struct irq_data *d)
    76	{
    77		/* Signal end-of-service */
    78		writel(0, aic->regs + AIC_EOSCR);
    79	}
    80	
    81	static void wpcm450_aic_mask(struct irq_data *d)
    82	{
    83		unsigned int mask = BIT(d->hwirq);
    84	
    85		/* Disable (mask) the interrupt */
    86		writel(mask, aic->regs + AIC_MDCR);
    87	}
    88	
    89	static void wpcm450_aic_unmask(struct irq_data *d)
    90	{
    91		unsigned int mask = BIT(d->hwirq);
    92	
    93		/* Enable (unmask) the interrupt */
    94		writel(mask, aic->regs + AIC_MECR);
    95	}
    96	
    97	static int wpcm450_aic_set_type(struct irq_data *d, unsigned int flow_type)
    98	{
    99		/*
   100		 * The hardware supports high/low level, as well as rising/falling edge
   101		 * modes, and the DT binding accommodates for that, but as long as
   102		 * other modes than high level mode are not used and can't be tested,
   103		 * they are rejected in this driver.
   104		 */
   105		if ((flow_type & IRQ_TYPE_SENSE_MASK) != IRQ_TYPE_LEVEL_HIGH)
   106			return -EINVAL;
   107	
   108		return 0;
   109	}
   110	
   111	static struct irq_chip wpcm450_aic_chip = {
   112		.name = "wpcm450-aic",
   113		.irq_eoi = wpcm450_aic_eoi,
   114		.irq_mask = wpcm450_aic_mask,
   115		.irq_unmask = wpcm450_aic_unmask,
   116		.irq_set_type = wpcm450_aic_set_type,
   117	};
   118	
   119	static int wpcm450_aic_map(struct irq_domain *d, unsigned int irq, irq_hw_number_t hwirq)
   120	{
   121		if (hwirq >= AIC_NUM_IRQS)
   122			return -EPERM;
   123	
   124		irq_set_chip_and_handler(irq, &wpcm450_aic_chip, handle_fasteoi_irq);
   125		irq_set_chip_data(irq, aic);
   126		irq_set_probe(irq);
   127	
   128		return 0;
   129	}
   130	
   131	static const struct irq_domain_ops wpcm450_aic_ops = {
   132		.map = wpcm450_aic_map,
   133		.xlate = irq_domain_xlate_twocell,
   134	};
   135	
   136	static int __init wpcm450_aic_of_init(struct device_node *node,
   137					      struct device_node *parent)
   138	{
   139		if (parent)
   140			return -EINVAL;
   141	
   142		aic = kzalloc(sizeof(*aic), GFP_KERNEL);
   143		if (!aic)
   144			return -ENOMEM;
   145	
   146		aic->regs = of_iomap(node, 0);
   147		if (!aic->regs) {
   148			pr_err("Failed to map WPCM450 AIC registers\n");
   149			return -ENOMEM;
   150		}
   151	
   152		wpcm450_aic_init_hw();
   153	
 > 154		set_handle_irq(wpcm450_aic_handle_irq);
   155	
   156		aic->domain = irq_domain_add_linear(node, AIC_NUM_IRQS, &wpcm450_aic_ops, aic);
   157	
   158		return 0;
   159	}
   160	

---
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: 63863 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20210408/ef9ee608/attachment-0001.gz>


More information about the linux-arm-kernel mailing list