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