Re: [PATCH kernel v3] genirq/irqdomain: Add reference counting to IRQs
From: kernel test robot
Date: Sun Nov 22 2020 - 00:54:01 EST
Hi Alexey,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on tip/irq/core]
[also build test ERROR on linus/master linux/master v5.10-rc4 next-20201120]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Alexey-Kardashevskiy/genirq-irqdomain-Add-reference-counting-to-IRQs/20201109-175020
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git d315c627a18249930750fe4eb2b21f3fe9b32ea4
config: m68k-randconfig-m031-20201122 (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/3fe0622aa0aeca70507a5e71b599bed6be0be581
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Alexey-Kardashevskiy/genirq-irqdomain-Add-reference-counting-to-IRQs/20201109-175020
git checkout 3fe0622aa0aeca70507a5e71b599bed6be0be581
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>
All errors (new ones prefixed by >>):
kernel/irq/irqdomain.c: In function 'irq_create_mapping':
>> kernel/irq/irqdomain.c:672:20: error: 'struct irq_desc' has no member named 'kobj'
672 | kobject_get(&desc->kobj);
| ^~
kernel/irq/irqdomain.c: In function 'irq_create_fwspec_mapping':
kernel/irq/irqdomain.c:807:21: error: 'struct irq_desc' has no member named 'kobj'
807 | kobject_get(&desc->kobj);
| ^~
kernel/irq/irqdomain.c:822:21: error: 'struct irq_desc' has no member named 'kobj'
822 | kobject_get(&desc->kobj);
| ^~
kernel/irq/irqdomain.c: In function 'irq_dispose_mapping':
kernel/irq/irqdomain.c:880:19: error: 'struct irq_desc' has no member named 'kobj'
880 | kobject_put(&desc->kobj);
| ^~
kernel/irq/irqdomain.c: In function '__irq_domain_alloc_irqs':
kernel/irq/irqdomain.c:1473:21: error: 'struct irq_desc' has no member named 'kobj'
1473 | kobject_get(&desc->kobj);
| ^~
vim +672 kernel/irq/irqdomain.c
636
637 /**
638 * irq_create_mapping() - Map a hardware interrupt into linux irq space
639 * @domain: domain owning this hardware interrupt or NULL for default domain
640 * @hwirq: hardware irq number in that domain space
641 *
642 * Only one mapping per hardware interrupt is permitted. Returns a linux
643 * irq number.
644 * If the sense/trigger is to be specified, set_irq_type() should be called
645 * on the number returned from that call.
646 */
647 unsigned int irq_create_mapping(struct irq_domain *domain,
648 irq_hw_number_t hwirq)
649 {
650 struct device_node *of_node;
651 int virq;
652 struct irq_desc *desc;
653
654 pr_debug("irq_create_mapping(0x%p, 0x%lx)\n", domain, hwirq);
655
656 /* Look for default domain if nececssary */
657 if (domain == NULL)
658 domain = irq_default_domain;
659 if (domain == NULL) {
660 WARN(1, "%s(, %lx) called with NULL domain\n", __func__, hwirq);
661 return 0;
662 }
663 pr_debug("-> using domain @%p\n", domain);
664
665 of_node = irq_domain_get_of_node(domain);
666
667 /* Check if mapping already exists */
668 virq = irq_find_mapping(domain, hwirq);
669 if (virq) {
670 desc = irq_to_desc(virq);
671 pr_debug("-> existing mapping on virq %d\n", virq);
> 672 kobject_get(&desc->kobj);
673 return virq;
674 }
675
676 /* Allocate a virtual interrupt number */
677 virq = irq_domain_alloc_descs(-1, 1, hwirq, of_node_to_nid(of_node), NULL);
678 if (virq <= 0) {
679 pr_debug("-> virq allocation failed\n");
680 return 0;
681 }
682
683 if (irq_domain_associate(domain, virq, hwirq)) {
684 irq_free_desc(virq);
685 return 0;
686 }
687
688 pr_debug("irq %lu on domain %s mapped to virtual irq %u\n",
689 hwirq, of_node_full_name(of_node), virq);
690
691 return virq;
692 }
693 EXPORT_SYMBOL_GPL(irq_create_mapping);
694
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip