Re: [irqchip: irq/irqchip-next] powerpc: Drop dependency between asm/irq.h and linux/irqdomain.h

From: kernel test robot
Date: Sun Jun 06 2021 - 11:29:27 EST


Hi irqchip-bot,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on powerpc/next]
[also build test WARNING on linux/master linus/master v5.13-rc4 next-20210604]
[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/irqchip-bot-for-Marc-Zyngier/powerpc-Drop-dependency-between-asm-irq-h-and-linux-irqdomain-h/20210606-205106
base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-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/72415db4cc9ec9987380123553c3222a3568f37f
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review irqchip-bot-for-Marc-Zyngier/powerpc-Drop-dependency-between-asm-irq-h-and-linux-irqdomain-h/20210606-205106
git checkout 72415db4cc9ec9987380123553c3222a3568f37f
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

arch/powerpc/platforms/ps3/interrupt.c: In function 'ps3_virq_setup':
arch/powerpc/platforms/ps3/interrupt.c:181:10: error: implicit declaration of function 'irq_create_mapping' [-Werror=implicit-function-declaration]
181 | *virq = irq_create_mapping(NULL, outlet);
| ^~~~~~~~~~~~~~~~~~
arch/powerpc/platforms/ps3/interrupt.c:206:2: error: implicit declaration of function 'irq_dispose_mapping' [-Werror=implicit-function-declaration]
206 | irq_dispose_mapping(*virq);
| ^~~~~~~~~~~~~~~~~~~
arch/powerpc/platforms/ps3/interrupt.c: At top level:
>> arch/powerpc/platforms/ps3/interrupt.c:670:11: warning: 'enum irq_domain_bus_token' declared inside parameter list will not be visible outside of this definition or declaration
670 | enum irq_domain_bus_token bus_token)
| ^~~~~~~~~~~~~~~~~~~~
arch/powerpc/platforms/ps3/interrupt.c:670:32: error: parameter 3 ('bus_token') has incomplete type
670 | enum irq_domain_bus_token bus_token)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
arch/powerpc/platforms/ps3/interrupt.c:669:12: error: function declaration isn't a prototype [-Werror=strict-prototypes]
669 | static int ps3_host_match(struct irq_domain *h, struct device_node *np,
| ^~~~~~~~~~~~~~
arch/powerpc/platforms/ps3/interrupt.c:676:21: error: variable 'ps3_host_ops' has initializer but incomplete type
676 | static const struct irq_domain_ops ps3_host_ops = {
| ^~~~~~~~~~~~~~
arch/powerpc/platforms/ps3/interrupt.c:677:3: error: 'const struct irq_domain_ops' has no member named 'map'
677 | .map = ps3_host_map,
| ^~~
>> arch/powerpc/platforms/ps3/interrupt.c:677:9: warning: excess elements in struct initializer
677 | .map = ps3_host_map,
| ^~~~~~~~~~~~
arch/powerpc/platforms/ps3/interrupt.c:677:9: note: (near initialization for 'ps3_host_ops')
arch/powerpc/platforms/ps3/interrupt.c:678:3: error: 'const struct irq_domain_ops' has no member named 'match'
678 | .match = ps3_host_match,
| ^~~~~
arch/powerpc/platforms/ps3/interrupt.c:678:11: warning: excess elements in struct initializer
678 | .match = ps3_host_match,
| ^~~~~~~~~~~~~~
arch/powerpc/platforms/ps3/interrupt.c:678:11: note: (near initialization for 'ps3_host_ops')
arch/powerpc/platforms/ps3/interrupt.c: In function 'ps3_init_IRQ':
arch/powerpc/platforms/ps3/interrupt.c:745:9: error: implicit declaration of function 'irq_domain_add_nomap' [-Werror=implicit-function-declaration]
745 | host = irq_domain_add_nomap(NULL, PS3_PLUG_MAX + 1, &ps3_host_ops, NULL);
| ^~~~~~~~~~~~~~~~~~~~
>> arch/powerpc/platforms/ps3/interrupt.c:745:7: warning: assignment to 'struct irq_domain *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
745 | host = irq_domain_add_nomap(NULL, PS3_PLUG_MAX + 1, &ps3_host_ops, NULL);
| ^
arch/powerpc/platforms/ps3/interrupt.c:746:2: error: implicit declaration of function 'irq_set_default_host' [-Werror=implicit-function-declaration]
746 | irq_set_default_host(host);
| ^~~~~~~~~~~~~~~~~~~~
arch/powerpc/platforms/ps3/interrupt.c: At top level:
arch/powerpc/platforms/ps3/interrupt.c:676:36: error: storage size of 'ps3_host_ops' isn't known
676 | static const struct irq_domain_ops ps3_host_ops = {
| ^~~~~~~~~~~~
cc1: some warnings being treated as errors


vim +670 arch/powerpc/platforms/ps3/interrupt.c

2832a81df7f3cb Geoff Levand 2006-11-23 668
ad3aedfbb04b3a Marc Zyngier 2015-07-28 669 static int ps3_host_match(struct irq_domain *h, struct device_node *np,
ad3aedfbb04b3a Marc Zyngier 2015-07-28 @670 enum irq_domain_bus_token bus_token)
8528ab84ebe7a1 Michael Ellerman 2007-08-28 671 {
8528ab84ebe7a1 Michael Ellerman 2007-08-28 672 /* Match all */
8528ab84ebe7a1 Michael Ellerman 2007-08-28 673 return 1;
8528ab84ebe7a1 Michael Ellerman 2007-08-28 674 }
8528ab84ebe7a1 Michael Ellerman 2007-08-28 675
9f70b8eb3cd37c Grant Likely 2012-01-26 676 static const struct irq_domain_ops ps3_host_ops = {
9633ac8d172f74 Geoff Levand 2007-01-26 @677 .map = ps3_host_map,
8528ab84ebe7a1 Michael Ellerman 2007-08-28 678 .match = ps3_host_match,
2832a81df7f3cb Geoff Levand 2006-11-23 679 };
2832a81df7f3cb Geoff Levand 2006-11-23 680
2832a81df7f3cb Geoff Levand 2006-11-23 681 void __init ps3_register_ipi_debug_brk(unsigned int cpu, unsigned int virq)
2832a81df7f3cb Geoff Levand 2006-11-23 682 {
9633ac8d172f74 Geoff Levand 2007-01-26 683 struct ps3_private *pd = &per_cpu(ps3_private, cpu);
2832a81df7f3cb Geoff Levand 2006-11-23 684
32b9074bf8d644 Geoff Levand 2011-11-29 685 set_bit(63 - virq, &pd->ipi_debug_brk_mask);
2832a81df7f3cb Geoff Levand 2006-11-23 686
32b9074bf8d644 Geoff Levand 2011-11-29 687 DBG("%s:%d: cpu %u, virq %u, mask %lxh\n", __func__, __LINE__,
32b9074bf8d644 Geoff Levand 2011-11-29 688 cpu, virq, pd->ipi_debug_brk_mask);
2832a81df7f3cb Geoff Levand 2006-11-23 689 }
2832a81df7f3cb Geoff Levand 2006-11-23 690
72f3bea0752877 Geoff Levand 2011-11-08 691 void __init ps3_register_ipi_irq(unsigned int cpu, unsigned int virq)
72f3bea0752877 Geoff Levand 2011-11-08 692 {
72f3bea0752877 Geoff Levand 2011-11-08 693 struct ps3_private *pd = &per_cpu(ps3_private, cpu);
72f3bea0752877 Geoff Levand 2011-11-08 694
72f3bea0752877 Geoff Levand 2011-11-08 695 set_bit(63 - virq, &pd->ipi_mask);
72f3bea0752877 Geoff Levand 2011-11-08 696
72f3bea0752877 Geoff Levand 2011-11-08 697 DBG("%s:%d: cpu %u, virq %u, ipi_mask %lxh\n", __func__, __LINE__,
72f3bea0752877 Geoff Levand 2011-11-08 698 cpu, virq, pd->ipi_mask);
72f3bea0752877 Geoff Levand 2011-11-08 699 }
72f3bea0752877 Geoff Levand 2011-11-08 700
9263e85aa9e9d3 Geoff Levand 2007-06-16 701 static unsigned int ps3_get_irq(void)
2832a81df7f3cb Geoff Levand 2006-11-23 702 {
69111bac42f5ce Christoph Lameter 2014-10-21 703 struct ps3_private *pd = this_cpu_ptr(&ps3_private);
861be32ce7f1cf Geoff Levand 2007-01-26 704 u64 x = (pd->bmp.status & pd->bmp.mask);
9cf9e19667f6ce Benjamin Herrenschmidt 2007-01-26 705 unsigned int plug;
2832a81df7f3cb Geoff Levand 2006-11-23 706
2832a81df7f3cb Geoff Levand 2006-11-23 707 /* check for ipi break first to stop this cpu ASAP */
2832a81df7f3cb Geoff Levand 2006-11-23 708
32b9074bf8d644 Geoff Levand 2011-11-29 709 if (x & pd->ipi_debug_brk_mask)
32b9074bf8d644 Geoff Levand 2011-11-29 710 x &= pd->ipi_debug_brk_mask;
2832a81df7f3cb Geoff Levand 2006-11-23 711
9cf9e19667f6ce Benjamin Herrenschmidt 2007-01-26 712 asm volatile("cntlzd %0,%1" : "=r" (plug) : "r" (x));
9cf9e19667f6ce Benjamin Herrenschmidt 2007-01-26 713 plug &= 0x3f;
2832a81df7f3cb Geoff Levand 2006-11-23 714
ef24ba7091517d Michael Ellerman 2016-09-06 715 if (unlikely(!plug)) {
32b9074bf8d644 Geoff Levand 2011-11-29 716 DBG("%s:%d: no plug found: thread_id %llu\n", __func__,
aab83500709712 Geoff Levand 2007-06-16 717 __LINE__, pd->thread_id);
9633ac8d172f74 Geoff Levand 2007-01-26 718 dump_bmp(&per_cpu(ps3_private, 0));
9633ac8d172f74 Geoff Levand 2007-01-26 719 dump_bmp(&per_cpu(ps3_private, 1));
ef24ba7091517d Michael Ellerman 2016-09-06 720 return 0;
2832a81df7f3cb Geoff Levand 2006-11-23 721 }
2832a81df7f3cb Geoff Levand 2006-11-23 722
2832a81df7f3cb Geoff Levand 2006-11-23 723 #if defined(DEBUG)
9cf9e19667f6ce Benjamin Herrenschmidt 2007-01-26 724 if (unlikely(plug < NUM_ISA_INTERRUPTS || plug > PS3_PLUG_MAX)) {
9633ac8d172f74 Geoff Levand 2007-01-26 725 dump_bmp(&per_cpu(ps3_private, 0));
9633ac8d172f74 Geoff Levand 2007-01-26 726 dump_bmp(&per_cpu(ps3_private, 1));
2832a81df7f3cb Geoff Levand 2006-11-23 727 BUG();
2832a81df7f3cb Geoff Levand 2006-11-23 728 }
2832a81df7f3cb Geoff Levand 2006-11-23 729 #endif
72f3bea0752877 Geoff Levand 2011-11-08 730
72f3bea0752877 Geoff Levand 2011-11-08 731 /* IPIs are EOIed here. */
72f3bea0752877 Geoff Levand 2011-11-08 732
72f3bea0752877 Geoff Levand 2011-11-08 733 if (test_bit(63 - plug, &pd->ipi_mask))
72f3bea0752877 Geoff Levand 2011-11-08 734 lv1_end_of_interrupt_ext(pd->ppe_id, pd->thread_id, plug);
72f3bea0752877 Geoff Levand 2011-11-08 735
2832a81df7f3cb Geoff Levand 2006-11-23 736 return plug;
2832a81df7f3cb Geoff Levand 2006-11-23 737 }
2832a81df7f3cb Geoff Levand 2006-11-23 738
2832a81df7f3cb Geoff Levand 2006-11-23 739 void __init ps3_init_IRQ(void)
2832a81df7f3cb Geoff Levand 2006-11-23 740 {
2832a81df7f3cb Geoff Levand 2006-11-23 741 int result;
2832a81df7f3cb Geoff Levand 2006-11-23 742 unsigned cpu;
bae1d8f19983fb Grant Likely 2012-02-14 743 struct irq_domain *host;
2832a81df7f3cb Geoff Levand 2006-11-23 744
6fa6c8e25e95bd Grant Likely 2012-02-15 @745 host = irq_domain_add_nomap(NULL, PS3_PLUG_MAX + 1, &ps3_host_ops, NULL);
2832a81df7f3cb Geoff Levand 2006-11-23 746 irq_set_default_host(host);
2832a81df7f3cb Geoff Levand 2006-11-23 747
2832a81df7f3cb Geoff Levand 2006-11-23 748 for_each_possible_cpu(cpu) {
9633ac8d172f74 Geoff Levand 2007-01-26 749 struct ps3_private *pd = &per_cpu(ps3_private, cpu);
2832a81df7f3cb Geoff Levand 2006-11-23 750
aab83500709712 Geoff Levand 2007-06-16 751 lv1_get_logical_ppe_id(&pd->ppe_id);
aab83500709712 Geoff Levand 2007-06-16 752 pd->thread_id = get_hard_smp_processor_id(cpu);
32b9074bf8d644 Geoff Levand 2011-11-29 753 spin_lock_init(&pd->bmp_lock);
2832a81df7f3cb Geoff Levand 2006-11-23 754
32b9074bf8d644 Geoff Levand 2011-11-29 755 DBG("%s:%d: ppe_id %llu, thread_id %llu, bmp %lxh\n",
aab83500709712 Geoff Levand 2007-06-16 756 __func__, __LINE__, pd->ppe_id, pd->thread_id,
407e24a0c78f58 Geoff Levand 2007-01-26 757 ps3_mm_phys_to_lpar(__pa(&pd->bmp)));
407e24a0c78f58 Geoff Levand 2007-01-26 758
aab83500709712 Geoff Levand 2007-06-16 759 result = lv1_configure_irq_state_bitmap(pd->ppe_id,
aab83500709712 Geoff Levand 2007-06-16 760 pd->thread_id, ps3_mm_phys_to_lpar(__pa(&pd->bmp)));
2832a81df7f3cb Geoff Levand 2006-11-23 761
2832a81df7f3cb Geoff Levand 2006-11-23 762 if (result)
32b9074bf8d644 Geoff Levand 2011-11-29 763 FAIL("%s:%d: lv1_configure_irq_state_bitmap failed:"
2832a81df7f3cb Geoff Levand 2006-11-23 764 " %s\n", __func__, __LINE__,
2832a81df7f3cb Geoff Levand 2006-11-23 765 ps3_result(result));
2832a81df7f3cb Geoff Levand 2006-11-23 766 }
2832a81df7f3cb Geoff Levand 2006-11-23 767
2832a81df7f3cb Geoff Levand 2006-11-23 768 ppc_md.get_irq = ps3_get_irq;
2832a81df7f3cb Geoff Levand 2006-11-23 769 }
9263e85aa9e9d3 Geoff Levand 2007-06-16 770

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip