[tip:irq/core 8/8] drivers/irqchip/irq-sirfsoc.c:46:12: error: passing argument 4 of '__irq_alloc_domain_generic_chips' from incompatible pointer type

From: kbuild test robot
Date: Fri Sep 02 2016 - 14:17:44 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
head: 895d3b95ed05f72a94f69ab52cb313915a6b889f
commit: 895d3b95ed05f72a94f69ab52cb313915a6b889f [8/8] genirq/generic_chip: Verify irqs_per_chip <= 32
config: arm-multi_v7_defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 5.4.0-6) 5.4.0 20160609
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 895d3b95ed05f72a94f69ab52cb313915a6b889f
# save the attached .config to linux build tree
make.cross ARCH=arm

All error/warnings (new ones prefixed by >>):

In file included from drivers/irqchip/irq-sirfsoc.c:11:0:
drivers/irqchip/irq-sirfsoc.c: In function 'sirfsoc_alloc_gc':
>> drivers/irqchip/irq-sirfsoc.c:46:12: error: passing argument 4 of '__irq_alloc_domain_generic_chips' from incompatible pointer type [-Werror=incompatible-pointer-types]
handle_level_irq, clr, set,
^
include/linux/irq.h:931:7: note: in definition of macro 'irq_alloc_domain_generic_chips'
handler, clr, set, flags); \
^
include/linux/irq.h:920:5: note: expected 'const char *' but argument is of type 'void (*)(struct irq_desc *)'
int __irq_alloc_domain_generic_chips(struct irq_domain *d, int irqs_per_chip,
^
>> drivers/irqchip/irq-sirfsoc.c:46:30: warning: passing argument 5 of '__irq_alloc_domain_generic_chips' makes pointer from integer without a cast [-Wint-conversion]
handle_level_irq, clr, set,
^
include/linux/irq.h:931:16: note: in definition of macro 'irq_alloc_domain_generic_chips'
handler, clr, set, flags); \
^
include/linux/irq.h:920:5: note: expected 'irq_flow_handler_t {aka void (*)(struct irq_desc *)}' but argument is of type 'unsigned int'
int __irq_alloc_domain_generic_chips(struct irq_domain *d, int irqs_per_chip,
^
include/linux/irq.h:930:2: error: too few arguments to function '__irq_alloc_domain_generic_chips'
__irq_alloc_domain_generic_chips(d, irqs_per_chip, num_ct, \
^
>> drivers/irqchip/irq-sirfsoc.c:45:2: note: in expansion of macro 'irq_alloc_domain_generic_chips'
irq_alloc_domain_generic_chips(sirfsoc_irqdomain, 32, 1, "irq_sirfsoc",
^
include/linux/irq.h:920:5: note: declared here
int __irq_alloc_domain_generic_chips(struct irq_domain *d, int irqs_per_chip,
^
cc1: some warnings being treated as errors
--
In file included from include/linux/of_irq.h:6:0,
from drivers/irqchip/irq-bcm7120-l2.c:20:
drivers/irqchip/irq-bcm7120-l2.c: In function 'bcm7120_l2_intc_probe':
>> drivers/irqchip/irq-bcm7120-l2.c:281:20: error: passing argument 4 of '__irq_alloc_domain_generic_chips' from incompatible pointer type [-Werror=incompatible-pointer-types]
dn->full_name, handle_level_irq, clr, 0, flags);
^
include/linux/irq.h:931:7: note: in definition of macro 'irq_alloc_domain_generic_chips'
handler, clr, set, flags); \
^
include/linux/irq.h:920:5: note: expected 'const char *' but argument is of type 'void (*)(struct irq_desc *)'
int __irq_alloc_domain_generic_chips(struct irq_domain *d, int irqs_per_chip,
^
>> drivers/irqchip/irq-bcm7120-l2.c:281:38: warning: passing argument 5 of '__irq_alloc_domain_generic_chips' makes pointer from integer without a cast [-Wint-conversion]
dn->full_name, handle_level_irq, clr, 0, flags);
^
include/linux/irq.h:931:16: note: in definition of macro 'irq_alloc_domain_generic_chips'
handler, clr, set, flags); \
^
include/linux/irq.h:920:5: note: expected 'irq_flow_handler_t {aka void (*)(struct irq_desc *)}' but argument is of type 'unsigned int'
int __irq_alloc_domain_generic_chips(struct irq_domain *d, int irqs_per_chip,
^
include/linux/irq.h:930:2: error: too few arguments to function '__irq_alloc_domain_generic_chips'
__irq_alloc_domain_generic_chips(d, irqs_per_chip, num_ct, \
^
>> drivers/irqchip/irq-bcm7120-l2.c:280:8: note: in expansion of macro 'irq_alloc_domain_generic_chips'
ret = irq_alloc_domain_generic_chips(data->domain, IRQS_PER_WORD, 1,
^
include/linux/irq.h:920:5: note: declared here
int __irq_alloc_domain_generic_chips(struct irq_domain *d, int irqs_per_chip,
^
cc1: some warnings being treated as errors
--
In file included from include/linux/of_irq.h:6:0,
from drivers/irqchip/irq-brcmstb-l2.c:25:
drivers/irqchip/irq-brcmstb-l2.c: In function 'brcmstb_l2_intc_of_init':
>> drivers/irqchip/irq-brcmstb-l2.c:167:20: error: passing argument 4 of '__irq_alloc_domain_generic_chips' from incompatible pointer type [-Werror=incompatible-pointer-types]
np->full_name, handle_edge_irq, clr, 0, flags);
^
include/linux/irq.h:931:7: note: in definition of macro 'irq_alloc_domain_generic_chips'
handler, clr, set, flags); \
^
include/linux/irq.h:920:5: note: expected 'const char *' but argument is of type 'void (*)(struct irq_desc *)'
int __irq_alloc_domain_generic_chips(struct irq_domain *d, int irqs_per_chip,
^
>> drivers/irqchip/irq-brcmstb-l2.c:167:37: warning: passing argument 5 of '__irq_alloc_domain_generic_chips' makes pointer from integer without a cast [-Wint-conversion]
np->full_name, handle_edge_irq, clr, 0, flags);
^
include/linux/irq.h:931:16: note: in definition of macro 'irq_alloc_domain_generic_chips'
handler, clr, set, flags); \
^
include/linux/irq.h:920:5: note: expected 'irq_flow_handler_t {aka void (*)(struct irq_desc *)}' but argument is of type 'unsigned int'
int __irq_alloc_domain_generic_chips(struct irq_domain *d, int irqs_per_chip,
^
include/linux/irq.h:930:2: error: too few arguments to function '__irq_alloc_domain_generic_chips'
__irq_alloc_domain_generic_chips(d, irqs_per_chip, num_ct, \
^
>> drivers/irqchip/irq-brcmstb-l2.c:166:8: note: in expansion of macro 'irq_alloc_domain_generic_chips'
ret = irq_alloc_domain_generic_chips(data->domain, 32, 1,
^
include/linux/irq.h:920:5: note: declared here
int __irq_alloc_domain_generic_chips(struct irq_domain *d, int irqs_per_chip,
^
cc1: some warnings being treated as errors
--
In file included from drivers/irqchip/irq-digicolor.c:14:0:
drivers/irqchip/irq-digicolor.c: In function 'digicolor_of_init':
>> drivers/irqchip/irq-digicolor.c:105:28: error: passing argument 4 of '__irq_alloc_domain_generic_chips' from incompatible pointer type [-Werror=incompatible-pointer-types]
"digicolor_irq", handle_level_irq,
^
include/linux/irq.h:931:7: note: in definition of macro 'irq_alloc_domain_generic_chips'
handler, clr, set, flags); \
^
include/linux/irq.h:920:5: note: expected 'const char *' but argument is of type 'void (*)(struct irq_desc *)'
int __irq_alloc_domain_generic_chips(struct irq_domain *d, int irqs_per_chip,
^
>> drivers/irqchip/irq-digicolor.c:106:11: warning: passing argument 5 of '__irq_alloc_domain_generic_chips' makes pointer from integer without a cast [-Wint-conversion]
clr, 0, 0);
^
include/linux/irq.h:931:16: note: in definition of macro 'irq_alloc_domain_generic_chips'
handler, clr, set, flags); \
^
include/linux/irq.h:920:5: note: expected 'irq_flow_handler_t {aka void (*)(struct irq_desc *)}' but argument is of type 'unsigned int'
int __irq_alloc_domain_generic_chips(struct irq_domain *d, int irqs_per_chip,
^
include/linux/irq.h:930:2: error: too few arguments to function '__irq_alloc_domain_generic_chips'
__irq_alloc_domain_generic_chips(d, irqs_per_chip, num_ct, \
^
>> drivers/irqchip/irq-digicolor.c:104:8: note: in expansion of macro 'irq_alloc_domain_generic_chips'
ret = irq_alloc_domain_generic_chips(digicolor_irq_domain, 32, 1,
^
include/linux/irq.h:920:5: note: declared here
int __irq_alloc_domain_generic_chips(struct irq_domain *d, int irqs_per_chip,
^
cc1: some warnings being treated as errors
--
In file included from drivers/soc/dove/pmu.c:5:0:
drivers/soc/dove/pmu.c: In function 'dove_init_pmu_irq':
>> drivers/soc/dove/pmu.c:284:11: error: passing argument 4 of '__irq_alloc_domain_generic_chips' from incompatible pointer type [-Werror=incompatible-pointer-types]
handle_level_irq,
^
include/linux/irq.h:931:7: note: in definition of macro 'irq_alloc_domain_generic_chips'
handler, clr, set, flags); \
^
include/linux/irq.h:920:5: note: expected 'const char *' but argument is of type 'void (*)(struct irq_desc *)'
int __irq_alloc_domain_generic_chips(struct irq_domain *d, int irqs_per_chip,
^
>> drivers/soc/dove/pmu.c:285:11: warning: passing argument 5 of '__irq_alloc_domain_generic_chips' makes pointer from integer without a cast [-Wint-conversion]
IRQ_NOREQUEST | IRQ_NOPROBE, 0,
^
include/linux/irq.h:931:16: note: in definition of macro 'irq_alloc_domain_generic_chips'
handler, clr, set, flags); \
^
include/linux/irq.h:920:5: note: expected 'irq_flow_handler_t {aka void (*)(struct irq_desc *)}' but argument is of type 'int'
int __irq_alloc_domain_generic_chips(struct irq_domain *d, int irqs_per_chip,
^
include/linux/irq.h:930:2: error: too few arguments to function '__irq_alloc_domain_generic_chips'
__irq_alloc_domain_generic_chips(d, irqs_per_chip, num_ct, \
^
>> drivers/soc/dove/pmu.c:283:8: note: in expansion of macro 'irq_alloc_domain_generic_chips'
ret = irq_alloc_domain_generic_chips(domain, NR_PMU_IRQS, 1, name,
^
include/linux/irq.h:920:5: note: declared here
int __irq_alloc_domain_generic_chips(struct irq_domain *d, int irqs_per_chip,
^
cc1: some warnings being treated as errors

vim +/__irq_alloc_domain_generic_chips +46 drivers/irqchip/irq-sirfsoc.c

60dbd768 Arnd Bergmann 2013-03-19 5 *
60dbd768 Arnd Bergmann 2013-03-19 6 * Licensed under GPLv2 or later.
60dbd768 Arnd Bergmann 2013-03-19 7 */
60dbd768 Arnd Bergmann 2013-03-19 8
60dbd768 Arnd Bergmann 2013-03-19 9 #include <linux/init.h>
60dbd768 Arnd Bergmann 2013-03-19 10 #include <linux/io.h>
60dbd768 Arnd Bergmann 2013-03-19 @11 #include <linux/irq.h>
60dbd768 Arnd Bergmann 2013-03-19 12 #include <linux/of.h>
60dbd768 Arnd Bergmann 2013-03-19 13 #include <linux/of_address.h>
41a83e06 Joel Porquet 2015-07-07 14 #include <linux/irqchip.h>
60dbd768 Arnd Bergmann 2013-03-19 15 #include <linux/irqdomain.h>
60dbd768 Arnd Bergmann 2013-03-19 16 #include <linux/syscore_ops.h>
60dbd768 Arnd Bergmann 2013-03-19 17 #include <asm/mach/irq.h>
60dbd768 Arnd Bergmann 2013-03-19 18 #include <asm/exception.h>
60dbd768 Arnd Bergmann 2013-03-19 19
60dbd768 Arnd Bergmann 2013-03-19 20 #define SIRFSOC_INT_RISC_MASK0 0x0018
60dbd768 Arnd Bergmann 2013-03-19 21 #define SIRFSOC_INT_RISC_MASK1 0x001C
60dbd768 Arnd Bergmann 2013-03-19 22 #define SIRFSOC_INT_RISC_LEVEL0 0x0020
60dbd768 Arnd Bergmann 2013-03-19 23 #define SIRFSOC_INT_RISC_LEVEL1 0x0024
60dbd768 Arnd Bergmann 2013-03-19 24 #define SIRFSOC_INIT_IRQ_ID 0x0038
d452bca8 Thomas Gleixner 2015-07-06 25 #define SIRFSOC_INT_BASE_OFFSET 0x0004
60dbd768 Arnd Bergmann 2013-03-19 26
29eb51a7 Barry Song 2013-08-06 27 #define SIRFSOC_NUM_IRQS 64
d452bca8 Thomas Gleixner 2015-07-06 28 #define SIRFSOC_NUM_BANKS (SIRFSOC_NUM_IRQS / 32)
60dbd768 Arnd Bergmann 2013-03-19 29
60dbd768 Arnd Bergmann 2013-03-19 30 static struct irq_domain *sirfsoc_irqdomain;
60dbd768 Arnd Bergmann 2013-03-19 31
4a3691cc Ben Dooks 2016-06-07 32 static void __iomem *sirfsoc_irq_get_regbase(void)
4a3691cc Ben Dooks 2016-06-07 33 {
4a3691cc Ben Dooks 2016-06-07 34 return (void __iomem __force *)sirfsoc_irqdomain->host_data;
4a3691cc Ben Dooks 2016-06-07 35 }
4a3691cc Ben Dooks 2016-06-07 36
d452bca8 Thomas Gleixner 2015-07-06 37 static __init void sirfsoc_alloc_gc(void __iomem *base)
60dbd768 Arnd Bergmann 2013-03-19 38 {
29eb51a7 Barry Song 2013-08-06 39 unsigned int clr = IRQ_NOREQUEST | IRQ_NOPROBE | IRQ_NOAUTOEN;
a87010ef Barry Song 2014-01-03 40 unsigned int set = IRQ_LEVEL;
d452bca8 Thomas Gleixner 2015-07-06 41 struct irq_chip_generic *gc;
d452bca8 Thomas Gleixner 2015-07-06 42 struct irq_chip_type *ct;
d452bca8 Thomas Gleixner 2015-07-06 43 int i;
60dbd768 Arnd Bergmann 2013-03-19 44
d452bca8 Thomas Gleixner 2015-07-06 @45 irq_alloc_domain_generic_chips(sirfsoc_irqdomain, 32, 1, "irq_sirfsoc",
d452bca8 Thomas Gleixner 2015-07-06 @46 handle_level_irq, clr, set,
d452bca8 Thomas Gleixner 2015-07-06 47 IRQ_GC_INIT_MASK_CACHE);
60dbd768 Arnd Bergmann 2013-03-19 48
d452bca8 Thomas Gleixner 2015-07-06 49 for (i = 0; i < SIRFSOC_NUM_BANKS; i++) {

:::::: The code at line 46 was first introduced by commit
:::::: d452bca82d9ff4f220afa4234418912623db4fe6 irqchip/sirfsoc: Fix generic chip allocation wreckage

:::::: TO: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
:::::: CC: Thomas Gleixner <tglx@xxxxxxxxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: Binary data