2022-03-01 05:44:44

by kernel test robot

[permalink] [raw]
Subject: drivers/irqchip/irq-xilinx-intc.c:127:14: warning: no previous prototype for 'xintc_get_irq'

Hi Robert,

First bad commit (maybe != root cause):

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 719fce7539cd3e186598e2aed36325fe892150cf
commit: debf69cfd4c618c7036a13cc4edd1faf87ce7d53 irqchip/xilinx: Expose Kconfig option for Zynq/ZynqMP
date: 10 months ago
config: arm64-randconfig-r031-20220227 (https://download.01.org/0day-ci/archive/20220301/[email protected]/config)
compiler: aarch64-linux-gcc (GCC) 11.2.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://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=debf69cfd4c618c7036a13cc4edd1faf87ce7d53
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout debf69cfd4c618c7036a13cc4edd1faf87ce7d53
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/gpu/drm/tegra/ drivers/irqchip/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All warnings (new ones prefixed by >>):

>> drivers/irqchip/irq-xilinx-intc.c:127:14: warning: no previous prototype for 'xintc_get_irq' [-Wmissing-prototypes]
127 | unsigned int xintc_get_irq(void)
| ^~~~~~~~~~~~~


vim +/xintc_get_irq +127 drivers/irqchip/irq-xilinx-intc.c

67862a3c47fcfc9 Mubin Sayyed 2020-03-17 126
4cea749d56bec94 Marc Zyngier 2020-03-30 @127 unsigned int xintc_get_irq(void)
4cea749d56bec94 Marc Zyngier 2020-03-30 128 {
4cea749d56bec94 Marc Zyngier 2020-03-30 129 unsigned int irq = -1;
4cea749d56bec94 Marc Zyngier 2020-03-30 130 u32 hwirq;
4cea749d56bec94 Marc Zyngier 2020-03-30 131
4cea749d56bec94 Marc Zyngier 2020-03-30 132 hwirq = xintc_read(primary_intc, IVR);
4cea749d56bec94 Marc Zyngier 2020-03-30 133 if (hwirq != -1U)
4cea749d56bec94 Marc Zyngier 2020-03-30 134 irq = irq_find_mapping(primary_intc->root_domain, hwirq);
4cea749d56bec94 Marc Zyngier 2020-03-30 135
4cea749d56bec94 Marc Zyngier 2020-03-30 136 pr_debug("irq-xilinx: hwirq=%d, irq=%d\n", hwirq, irq);
4cea749d56bec94 Marc Zyngier 2020-03-30 137
4cea749d56bec94 Marc Zyngier 2020-03-30 138 return irq;
4cea749d56bec94 Marc Zyngier 2020-03-30 139 }
4cea749d56bec94 Marc Zyngier 2020-03-30 140

:::::: The code at line 127 was first introduced by commit
:::::: 4cea749d56bec9409f3bd126d2b2f949dc6c66e2 Revert "irqchip/xilinx: Enable generic irq multi handler"

:::::: TO: Marc Zyngier <[email protected]>
:::::: CC: Marc Zyngier <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


2022-03-02 00:04:24

by Robert Hancock

[permalink] [raw]
Subject: Re: drivers/irqchip/irq-xilinx-intc.c:127:14: warning: no previous prototype for 'xintc_get_irq'

On Tue, 2022-03-01 at 12:18 +0800, kernel test robot wrote:
> Hi Robert,
>
> First bad commit (maybe != root cause):
>
> tree:
> https://urldefense.com/v3/__https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git__;!!IOGos0k!2JH7Pv3yO6KGoGUAasL6gdyffBveJ7sKR_ufk10CoE_SvRF6pyxPfYs8jFbEg2JhJnk$
> master
> head: 719fce7539cd3e186598e2aed36325fe892150cf
> commit: debf69cfd4c618c7036a13cc4edd1faf87ce7d53 irqchip/xilinx: Expose
> Kconfig option for Zynq/ZynqMP
> date: 10 months ago
> config: arm64-randconfig-r031-20220227 (
> https://urldefense.com/v3/__https://download.01.org/0day-ci/archive/20220301/[email protected]/config__;!!IOGos0k!2JH7Pv3yO6KGoGUAasL6gdyffBveJ7sKR_ufk10CoE_SvRF6pyxPfYs8jFbE3gypuYE$
> )
> compiler: aarch64-linux-gcc (GCC) 11.2.0
> reproduce (this is a W=1 build):
> wget
> https://urldefense.com/v3/__https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross__;!!IOGos0k!2JH7Pv3yO6KGoGUAasL6gdyffBveJ7sKR_ufk10CoE_SvRF6pyxPfYs8jFbEO8rziu4$
> -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> #
> https://urldefense.com/v3/__https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=debf69cfd4c618c7036a13cc4edd1faf87ce7d53__;!!IOGos0k!2JH7Pv3yO6KGoGUAasL6gdyffBveJ7sKR_ufk10CoE_SvRF6pyxPfYs8jFbEPEVofBw$
>
> git remote add linus
> https://urldefense.com/v3/__https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git__;!!IOGos0k!2JH7Pv3yO6KGoGUAasL6gdyffBveJ7sKR_ufk10CoE_SvRF6pyxPfYs8jFbEg2JhJnk$
>
> git fetch --no-tags linus master
> git checkout debf69cfd4c618c7036a13cc4edd1faf87ce7d53
> # save the config file to linux build tree
> mkdir build_dir
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross
> O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/gpu/drm/tegra/
> drivers/irqchip/
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <[email protected]>
>
> All warnings (new ones prefixed by >>):
>
> > > drivers/irqchip/irq-xilinx-intc.c:127:14: warning: no previous prototype
> > > for 'xintc_get_irq' [-Wmissing-prototypes]
> 127 | unsigned int xintc_get_irq(void)
> | ^~~~~~~~~~~~~
>

The issue here is that on MicroBlaze, xintc_get_irq is called by do_IRQ in
arch/microblaze/kernel/irq.c. The function definition it uses for that function
is in arch/microblaze/include/asm/irq.h which the irqchip driver obviously
can't include. Possibly the solution is to move that declaration to a non-arch-
specific header file which can be included in both places.

I think this would warning have started showing up on aarch64 when the driver
was allowed to be selected for ZynqMP platforms, but I would assume it was
there on Microblaze all along..

>
> vim +/xintc_get_irq +127 drivers/irqchip/irq-xilinx-intc.c
>
> 67862a3c47fcfc9 Mubin Sayyed 2020-03-17 126
> 4cea749d56bec94 Marc Zyngier 2020-03-30 @127 unsigned int
> xintc_get_irq(void)
> 4cea749d56bec94 Marc Zyngier 2020-03-30 128 {
> 4cea749d56bec94 Marc Zyngier 2020-03-30 129 unsigned int irq = -1;
> 4cea749d56bec94 Marc Zyngier 2020-03-30 130 u32 hwirq;
> 4cea749d56bec94 Marc Zyngier 2020-03-30 131
> 4cea749d56bec94 Marc Zyngier 2020-03-30 132 hwirq =
> xintc_read(primary_intc, IVR);
> 4cea749d56bec94 Marc Zyngier 2020-03-30 133 if (hwirq != -1U)
> 4cea749d56bec94 Marc Zyngier 2020-03-30 134 irq =
> irq_find_mapping(primary_intc->root_domain, hwirq);
> 4cea749d56bec94 Marc Zyngier 2020-03-30 135
> 4cea749d56bec94 Marc Zyngier 2020-03-30 136 pr_debug("irq-xilinx:
> hwirq=%d, irq=%d\n", hwirq, irq);
> 4cea749d56bec94 Marc Zyngier 2020-03-30 137
> 4cea749d56bec94 Marc Zyngier 2020-03-30 138 return irq;
> 4cea749d56bec94 Marc Zyngier 2020-03-30 139 }
> 4cea749d56bec94 Marc Zyngier 2020-03-30 140
>
> :::::: The code at line 127 was first introduced by commit
> :::::: 4cea749d56bec9409f3bd126d2b2f949dc6c66e2 Revert "irqchip/xilinx:
> Enable generic irq multi handler"
>
> :::::: TO: Marc Zyngier <[email protected]>
> :::::: CC: Marc Zyngier <[email protected]>
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://urldefense.com/v3/__https://lists.01.org/hyperkitty/list/[email protected]__;!!IOGos0k!2JH7Pv3yO6KGoGUAasL6gdyffBveJ7sKR_ufk10CoE_SvRF6pyxPfYs8jFbEgS6p5z0$
--
Robert Hancock
Senior Hardware Designer, Calian Advanced Technologies
http://www.calian.com

2022-03-02 17:31:21

by Michal Simek

[permalink] [raw]
Subject: Re: drivers/irqchip/irq-xilinx-intc.c:127:14: warning: no previous prototype for 'xintc_get_irq'

Hi Robert,

On 3/1/22 17:34, Robert Hancock wrote:
> On Tue, 2022-03-01 at 12:18 +0800, kernel test robot wrote:
>> Hi Robert,
>>
>> First bad commit (maybe != root cause):
>>
>> tree:
>> https://urldefense.com/v3/__https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git__;!!IOGos0k!2JH7Pv3yO6KGoGUAasL6gdyffBveJ7sKR_ufk10CoE_SvRF6pyxPfYs8jFbEg2JhJnk$
>> master
>> head: 719fce7539cd3e186598e2aed36325fe892150cf
>> commit: debf69cfd4c618c7036a13cc4edd1faf87ce7d53 irqchip/xilinx: Expose
>> Kconfig option for Zynq/ZynqMP
>> date: 10 months ago
>> config: arm64-randconfig-r031-20220227 (
>> https://urldefense.com/v3/__https://download.01.org/0day-ci/archive/20220301/[email protected]/config__;!!IOGos0k!2JH7Pv3yO6KGoGUAasL6gdyffBveJ7sKR_ufk10CoE_SvRF6pyxPfYs8jFbE3gypuYE$
>> )
>> compiler: aarch64-linux-gcc (GCC) 11.2.0
>> reproduce (this is a W=1 build):
>> wget
>> https://urldefense.com/v3/__https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross__;!!IOGos0k!2JH7Pv3yO6KGoGUAasL6gdyffBveJ7sKR_ufk10CoE_SvRF6pyxPfYs8jFbEO8rziu4$
>> -O ~/bin/make.cross
>> chmod +x ~/bin/make.cross
>> #
>> https://urldefense.com/v3/__https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=debf69cfd4c618c7036a13cc4edd1faf87ce7d53__;!!IOGos0k!2JH7Pv3yO6KGoGUAasL6gdyffBveJ7sKR_ufk10CoE_SvRF6pyxPfYs8jFbEPEVofBw$
>>
>> git remote add linus
>> https://urldefense.com/v3/__https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git__;!!IOGos0k!2JH7Pv3yO6KGoGUAasL6gdyffBveJ7sKR_ufk10CoE_SvRF6pyxPfYs8jFbEg2JhJnk$
>>
>> git fetch --no-tags linus master
>> git checkout debf69cfd4c618c7036a13cc4edd1faf87ce7d53
>> # save the config file to linux build tree
>> mkdir build_dir
>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross
>> O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/gpu/drm/tegra/
>> drivers/irqchip/
>>
>> If you fix the issue, kindly add following tag as appropriate
>> Reported-by: kernel test robot <[email protected]>
>>
>> All warnings (new ones prefixed by >>):
>>
>>>> drivers/irqchip/irq-xilinx-intc.c:127:14: warning: no previous prototype
>>>> for 'xintc_get_irq' [-Wmissing-prototypes]
>> 127 | unsigned int xintc_get_irq(void)
>> | ^~~~~~~~~~~~~
>>
>
> The issue here is that on MicroBlaze, xintc_get_irq is called by do_IRQ in
> arch/microblaze/kernel/irq.c. The function definition it uses for that function
> is in arch/microblaze/include/asm/irq.h which the irqchip driver obviously
> can't include. Possibly the solution is to move that declaration to a non-arch-
> specific header file which can be included in both places.
>
> I think this would warning have started showing up on aarch64 when the driver
> was allowed to be selected for ZynqMP platforms, but I would assume it was
> there on Microblaze all along..

I solved it in xilinx linux tree by this patch but didn't sent it out yet.

Feel free to take a look at it.
https://github.com/Xilinx/linux-xlnx/commit/731d1aa34bdd78ffcd81b35f1d90d9667451fcf7

Thanks,
Michal


2022-03-02 20:58:49

by Robert Hancock

[permalink] [raw]
Subject: Re: drivers/irqchip/irq-xilinx-intc.c:127:14: warning: no previous prototype for 'xintc_get_irq'

On Wed, 2022-03-02 at 16:23 +0100, Michal Simek wrote:
> Hi Robert,
>
> On 3/1/22 17:34, Robert Hancock wrote:
> > On Tue, 2022-03-01 at 12:18 +0800, kernel test robot wrote:
> > > Hi Robert,
> > >
> > > First bad commit (maybe != root cause):
> > >
> > > tree:
> > > https://urldefense.com/v3/__https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git__;!!IOGos0k!2JH7Pv3yO6KGoGUAasL6gdyffBveJ7sKR_ufk10CoE_SvRF6pyxPfYs8jFbEg2JhJnk$
> > > master
> > > head: 719fce7539cd3e186598e2aed36325fe892150cf
> > > commit: debf69cfd4c618c7036a13cc4edd1faf87ce7d53 irqchip/xilinx: Expose
> > > Kconfig option for Zynq/ZynqMP
> > > date: 10 months ago
> > > config: arm64-randconfig-r031-20220227 (
> > > https://urldefense.com/v3/__https://download.01.org/0day-ci/archive/20220301/[email protected]/config__;!!IOGos0k!2JH7Pv3yO6KGoGUAasL6gdyffBveJ7sKR_ufk10CoE_SvRF6pyxPfYs8jFbE3gypuYE$
> > > )
> > > compiler: aarch64-linux-gcc (GCC) 11.2.0
> > > reproduce (this is a W=1 build):
> > > wget
> > > https://urldefense.com/v3/__https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross__;!!IOGos0k!2JH7Pv3yO6KGoGUAasL6gdyffBveJ7sKR_ufk10CoE_SvRF6pyxPfYs8jFbEO8rziu4$
> > > -O ~/bin/make.cross
> > > chmod +x ~/bin/make.cross
> > > #
> > > https://urldefense.com/v3/__https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=debf69cfd4c618c7036a13cc4edd1faf87ce7d53__;!!IOGos0k!2JH7Pv3yO6KGoGUAasL6gdyffBveJ7sKR_ufk10CoE_SvRF6pyxPfYs8jFbEPEVofBw$
> > >
> > > git remote add linus
> > > https://urldefense.com/v3/__https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git__;!!IOGos0k!2JH7Pv3yO6KGoGUAasL6gdyffBveJ7sKR_ufk10CoE_SvRF6pyxPfYs8jFbEg2JhJnk$
> > >
> > > git fetch --no-tags linus master
> > > git checkout debf69cfd4c618c7036a13cc4edd1faf87ce7d53
> > > # save the config file to linux build tree
> > > mkdir build_dir
> > > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross
> > > O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/gpu/drm/tegra/
> > > drivers/irqchip/
> > >
> > > If you fix the issue, kindly add following tag as appropriate
> > > Reported-by: kernel test robot <[email protected]>
> > >
> > > All warnings (new ones prefixed by >>):
> > >
> > > > > drivers/irqchip/irq-xilinx-intc.c:127:14: warning: no previous
> > > > > prototype
> > > > > for 'xintc_get_irq' [-Wmissing-prototypes]
> > > 127 | unsigned int xintc_get_irq(void)
> > > | ^~~~~~~~~~~~~
> > >
> >
> > The issue here is that on MicroBlaze, xintc_get_irq is called by do_IRQ in
> > arch/microblaze/kernel/irq.c. The function definition it uses for that
> > function
> > is in arch/microblaze/include/asm/irq.h which the irqchip driver obviously
> > can't include. Possibly the solution is to move that declaration to a non-
> > arch-
> > specific header file which can be included in both places.
> >
> > I think this would warning have started showing up on aarch64 when the
> > driver
> > was allowed to be selected for ZynqMP platforms, but I would assume it was
> > there on Microblaze all along..
>
> I solved it in xilinx linux tree by this patch but didn't sent it out yet.
>
> Feel free to take a look at it.
> https://urldefense.com/v3/__https://github.com/Xilinx/linux-xlnx/commit/731d1aa34bdd78ffcd81b35f1d90d9667451fcf7__;!!IOGos0k!2tovNPidR3XgFXHQaEYgosM5vGZTSQRpt_4cG7VqTAEaxiZ96woqAau1RJBHEfCEEKk$
>

Yes, that looks like a more proper approach to me. Are you able to submit it?

> Thanks,
> Michal
>
>