[tip:irq/core 8/8] drivers/gpio/gpio-dwapb.c:308:15: sparse: not enough arguments for function __irq_alloc_domain_generic_chips

From: kbuild test robot
Date: Fri Sep 02 2016 - 13:51:54 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
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@xxxxxxxxxxxxx>
:::::: CC: Linus Walleij <linus.walleij@xxxxxxxxxx>

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