lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Sat, 3 Sep 2016 02:16:56 +0800
From:   kbuild test robot <fengguang.wu@...el.com>
To:     Sebastian Frias <sf84@...oste.net>
Cc:     kbuild-all@...org, linux-kernel@...r.kernel.org,
        tipbuild@...or.com, Thomas Gleixner <tglx@...utronix.de>
Subject: [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

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@...utronix.de>
:::::: CC: Thomas Gleixner <tglx@...utronix.de>

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

Download attachment ".config.gz" of type "application/octet-stream" (37898 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ