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 01:51:27 +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/gpio/gpio-dwapb.c:308:15: sparse: not
 enough arguments for function __irq_alloc_domain_generic_chips

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 <bigeasy@...utronix.de>
:::::: CC: Linus Walleij <linus.walleij@...aro.org>

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

Powered by blists - more mailing lists