2020-04-08 21:38:35

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] dmaengine: hisilicon: fix PCI_MSI dependency

The dependency is phrased incorrectly, so on arm64, it is possible
to build with CONFIG_PCI disabled, resulting a build failure:

drivers/dma/hisi_dma.c: In function 'hisi_dma_free_irq_vectors':
drivers/dma/hisi_dma.c:138:2: error: implicit declaration of function 'pci_free_irq_vectors'; did you mean 'pci_alloc_irq_vectors'? [-Werror=implicit-function-declaration]
138 | pci_free_irq_vectors(data);
| ^~~~~~~~~~~~~~~~~~~~
| pci_alloc_irq_vectors
drivers/dma/hisi_dma.c: At top level:
drivers/dma/hisi_dma.c:605:1: warning: data definition has no type or storage class
605 | module_pci_driver(hisi_dma_pci_driver);
| ^~~~~~~~~~~~~~~~~
drivers/dma/hisi_dma.c:605:1: error: type defaults to 'int' in declaration of 'module_pci_driver' [-Werror=implicit-int]
drivers/dma/hisi_dma.c:605:1: warning: parameter names (without types) in function declaration
drivers/dma/hisi_dma.c:599:26: error: 'hisi_dma_pci_driver' defined but not used [-Werror=unused-variable]
599 | static struct pci_driver hisi_dma_pci_driver = {

Change it so we always depend on PCI_MSI, even on ARM64

Fixes: e9f08b65250d ("dmaengine: hisilicon: Add Kunpeng DMA engine support")
Signed-off-by: Arnd Bergmann <[email protected]>
---
drivers/dma/Kconfig | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
index 98ae15c82a30..c19e25b140c5 100644
--- a/drivers/dma/Kconfig
+++ b/drivers/dma/Kconfig
@@ -241,7 +241,8 @@ config FSL_RAID

config HISI_DMA
tristate "HiSilicon DMA Engine support"
- depends on ARM64 || (COMPILE_TEST && PCI_MSI)
+ depends on ARM64 || COMPILE_TEST
+ depends on PCI_MSI
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
help
--
2.26.0


2020-04-09 02:00:10

by Zhou Wang

[permalink] [raw]
Subject: Re: [PATCH] dmaengine: hisilicon: fix PCI_MSI dependency

On 2020/4/9 4:05, Arnd Bergmann wrote:
> The dependency is phrased incorrectly, so on arm64, it is possible
> to build with CONFIG_PCI disabled, resulting a build failure:
>
> drivers/dma/hisi_dma.c: In function 'hisi_dma_free_irq_vectors':
> drivers/dma/hisi_dma.c:138:2: error: implicit declaration of function 'pci_free_irq_vectors'; did you mean 'pci_alloc_irq_vectors'? [-Werror=implicit-function-declaration]
> 138 | pci_free_irq_vectors(data);
> | ^~~~~~~~~~~~~~~~~~~~
> | pci_alloc_irq_vectors
> drivers/dma/hisi_dma.c: At top level:
> drivers/dma/hisi_dma.c:605:1: warning: data definition has no type or storage class
> 605 | module_pci_driver(hisi_dma_pci_driver);
> | ^~~~~~~~~~~~~~~~~
> drivers/dma/hisi_dma.c:605:1: error: type defaults to 'int' in declaration of 'module_pci_driver' [-Werror=implicit-int]
> drivers/dma/hisi_dma.c:605:1: warning: parameter names (without types) in function declaration
> drivers/dma/hisi_dma.c:599:26: error: 'hisi_dma_pci_driver' defined but not used [-Werror=unused-variable]
> 599 | static struct pci_driver hisi_dma_pci_driver = {
>
> Change it so we always depend on PCI_MSI, even on ARM64
>
> Fixes: e9f08b65250d ("dmaengine: hisilicon: Add Kunpeng DMA engine support")
> Signed-off-by: Arnd Bergmann <[email protected]>
> ---
> drivers/dma/Kconfig | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
> index 98ae15c82a30..c19e25b140c5 100644
> --- a/drivers/dma/Kconfig
> +++ b/drivers/dma/Kconfig
> @@ -241,7 +241,8 @@ config FSL_RAID
>
> config HISI_DMA
> tristate "HiSilicon DMA Engine support"
> - depends on ARM64 || (COMPILE_TEST && PCI_MSI)
> + depends on ARM64 || COMPILE_TEST
> + depends on PCI_MSI
> select DMA_ENGINE
> select DMA_VIRTUAL_CHANNELS
> help
>

Hi Arnd,

There was a fix from Haibing: https://lkml.org/lkml/2020/3/28/158
Maybe Vinod will review and take it later :)

Best,
Zhou

2020-04-16 00:19:24

by Vinod Koul

[permalink] [raw]
Subject: Re: [PATCH] dmaengine: hisilicon: fix PCI_MSI dependency

On 09-04-20, 09:57, Zhou Wang wrote:
> On 2020/4/9 4:05, Arnd Bergmann wrote:
> > The dependency is phrased incorrectly, so on arm64, it is possible
> > to build with CONFIG_PCI disabled, resulting a build failure:
> >
> > drivers/dma/hisi_dma.c: In function 'hisi_dma_free_irq_vectors':
> > drivers/dma/hisi_dma.c:138:2: error: implicit declaration of function 'pci_free_irq_vectors'; did you mean 'pci_alloc_irq_vectors'? [-Werror=implicit-function-declaration]
> > 138 | pci_free_irq_vectors(data);
> > | ^~~~~~~~~~~~~~~~~~~~
> > | pci_alloc_irq_vectors
> > drivers/dma/hisi_dma.c: At top level:
> > drivers/dma/hisi_dma.c:605:1: warning: data definition has no type or storage class
> > 605 | module_pci_driver(hisi_dma_pci_driver);
> > | ^~~~~~~~~~~~~~~~~
> > drivers/dma/hisi_dma.c:605:1: error: type defaults to 'int' in declaration of 'module_pci_driver' [-Werror=implicit-int]
> > drivers/dma/hisi_dma.c:605:1: warning: parameter names (without types) in function declaration
> > drivers/dma/hisi_dma.c:599:26: error: 'hisi_dma_pci_driver' defined but not used [-Werror=unused-variable]
> > 599 | static struct pci_driver hisi_dma_pci_driver = {
> >
> > Change it so we always depend on PCI_MSI, even on ARM64
> >
> > Fixes: e9f08b65250d ("dmaengine: hisilicon: Add Kunpeng DMA engine support")
> > Signed-off-by: Arnd Bergmann <[email protected]>
> > ---
> > drivers/dma/Kconfig | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
> > index 98ae15c82a30..c19e25b140c5 100644
> > --- a/drivers/dma/Kconfig
> > +++ b/drivers/dma/Kconfig
> > @@ -241,7 +241,8 @@ config FSL_RAID
> >
> > config HISI_DMA
> > tristate "HiSilicon DMA Engine support"
> > - depends on ARM64 || (COMPILE_TEST && PCI_MSI)
> > + depends on ARM64 || COMPILE_TEST
> > + depends on PCI_MSI
> > select DMA_ENGINE
> > select DMA_VIRTUAL_CHANNELS
> > help
> >
>
> Hi Arnd,
>
> There was a fix from Haibing: https://lkml.org/lkml/2020/3/28/158
> Maybe Vinod will review and take it later :)

It should be in -next tomorrow :)


--
~Vinod