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
reproduce:
        # apt-get install sparse
        git checkout 895d3b95ed05f72a94f69ab52cb313915a6b889f
        make ARCH=x86_64 allmodconfig
        make C=1 CF=-D__CHECK_ENDIAN__


sparse warnings: (new ones prefixed by >>)

   include/linux/compiler.h:232:8: sparse: attribute 'no_sanitize_address': 
unknown attribute
>> drivers/gpio/gpio-dwapb.c:308:15: sparse: not enough arguments for function 
>> __irq_alloc_domain_generic_chips
   In file included from include/linux/gpio/driver.h:7:0,
                    from drivers/gpio/gpio-dwapb.c:11:
   drivers/gpio/gpio-dwapb.c: In function 'dwapb_configure_irqs':
   drivers/gpio/gpio-dwapb.c:309:25: error: passing argument 4 of 
'__irq_alloc_domain_generic_chips' from incompatible pointer type 
[-Werror=incompatible-pointer-types]
              "gpio-dwapb", 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/gpio/gpio-dwapb.c:310:11: warning: passing argument 5 of 
'__irq_alloc_domain_generic_chips' makes pointer from integer without a cast 
[-Wint-conversion]
              IRQ_NOREQUEST, 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/gpio/gpio-dwapb.c:308:8: note: in expansion of macro 
'irq_alloc_domain_generic_chips'
     err = irq_alloc_domain_generic_chips(gpio->domain, ngpio, 2,
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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 +308 drivers/gpio/gpio-dwapb.c

7779b345 Jamie Iles                2014-02-25  292  static void 
dwapb_configure_irqs(struct dwapb_gpio *gpio,
3d2613c4 Weike Chen                2014-09-17  293                              
 struct dwapb_gpio_port *port,
3d2613c4 Weike Chen                2014-09-17  294                              
 struct dwapb_port_property *pp)
7779b345 Jamie Iles                2014-02-25  295  {
0f4630f3 Linus Walleij             2015-12-04  296      struct gpio_chip *gc = 
&port->gc;
4ba8cfa7 Jiang Qiu                 2016-04-28  297      struct fwnode_handle  
*fwnode = pp->fwnode;
3d2613c4 Weike Chen                2014-09-17  298      struct irq_chip_generic 
*irq_gc = NULL;
7779b345 Jamie Iles                2014-02-25  299      unsigned int hwirq, 
ngpio = gc->ngpio;
7779b345 Jamie Iles                2014-02-25  300      struct irq_chip_type 
*ct;
3d2613c4 Weike Chen                2014-09-17  301      int err, i;
7779b345 Jamie Iles                2014-02-25  302  
4ba8cfa7 Jiang Qiu                 2016-04-28  303      gpio->domain = 
irq_domain_create_linear(fwnode, ngpio,
7779b345 Jamie Iles                2014-02-25  304                              
                 &irq_generic_chip_ops, gpio);
7779b345 Jamie Iles                2014-02-25  305      if (!gpio->domain)
7779b345 Jamie Iles                2014-02-25  306              return;
7779b345 Jamie Iles                2014-02-25  307  
6a2f4b7d Sebastian Andrzej Siewior 2014-05-26 @308      err = 
irq_alloc_domain_generic_chips(gpio->domain, ngpio, 2,
7779b345 Jamie Iles                2014-02-25  309                              
             "gpio-dwapb", handle_level_irq,
7779b345 Jamie Iles                2014-02-25  310                              
             IRQ_NOREQUEST, 0,
7779b345 Jamie Iles                2014-02-25  311                              
             IRQ_GC_INIT_NESTED_LOCK);
7779b345 Jamie Iles                2014-02-25  312      if (err) {
7779b345 Jamie Iles                2014-02-25  313              
dev_info(gpio->dev, "irq_alloc_domain_generic_chips failed\n");
7779b345 Jamie Iles                2014-02-25  314              
irq_domain_remove(gpio->domain);
7779b345 Jamie Iles                2014-02-25  315              gpio->domain = 
NULL;
7779b345 Jamie Iles                2014-02-25  316              return;

:::::: The code at line 308 was first introduced by commit
:::::: 6a2f4b7dadd5e2b3e02e28af1ddb32d17ac5b310 gpio: dwapb: use a second irq 
chip

:::::: TO: Sebastian Andrzej Siewior <[email protected]>
:::::: CC: Linus Walleij <[email protected]>

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

Reply via email to