diff mbox series

pci: tegra: add MSI dependency

Message ID 20180313115218.2246372-1-arnd@arndb.de
State New
Headers show
Series pci: tegra: add MSI dependency | expand

Commit Message

Arnd Bergmann March 13, 2018, 11:52 a.m. UTC
Building the tegra PCIe host driver without MSI results in a link
failure:

drivers/pci/host/pci-tegra.o:(.data+0x70): undefined reference to `pci_msi_unmask_irq'
drivers/pci/host/pci-tegra.o:(.data+0x74): undefined reference to `pci_msi_mask_irq'

This adds the same dependency that everyone else uses.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 drivers/pci/host/Kconfig | 1 +
 1 file changed, 1 insertion(+)

-- 
2.9.0

Comments

Lorenzo Pieralisi March 14, 2018, 10:51 a.m. UTC | #1
On Tue, Mar 13, 2018 at 12:52:05PM +0100, Arnd Bergmann wrote:
> Building the tegra PCIe host driver without MSI results in a link

> failure:

> 

> drivers/pci/host/pci-tegra.o:(.data+0x70): undefined reference to `pci_msi_unmask_irq'

> drivers/pci/host/pci-tegra.o:(.data+0x74): undefined reference to `pci_msi_mask_irq'

> 

> This adds the same dependency that everyone else uses.

> 

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> ---

>  drivers/pci/host/Kconfig | 1 +

>  1 file changed, 1 insertion(+)


Applied to pci/host/misc for v4.17, thanks.

Lorenzo

> diff --git a/drivers/pci/host/Kconfig b/drivers/pci/host/Kconfig

> index 1fcdc890acc7..65b4afb8d11d 100644

> --- a/drivers/pci/host/Kconfig

> +++ b/drivers/pci/host/Kconfig

> @@ -38,6 +38,7 @@ config PCI_FTPCI100

>  config PCI_TEGRA

>  	bool "NVIDIA Tegra PCIe controller"

>  	depends on ARCH_TEGRA && MMU

> +	depends on PCI_MSI_IRQ_DOMAIN

>  	help

>  	  Say Y here if you want support for the PCIe host controller found

>  	  on NVIDIA Tegra SoCs.

> -- 

> 2.9.0

>
Thierry Reding March 14, 2018, 11:45 a.m. UTC | #2
On Tue, Mar 13, 2018 at 12:52:05PM +0100, Arnd Bergmann wrote:
> Building the tegra PCIe host driver without MSI results in a link

> failure:

> 

> drivers/pci/host/pci-tegra.o:(.data+0x70): undefined reference to `pci_msi_unmask_irq'

> drivers/pci/host/pci-tegra.o:(.data+0x74): undefined reference to `pci_msi_mask_irq'

> 

> This adds the same dependency that everyone else uses.

> 

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> ---

>  drivers/pci/host/Kconfig | 1 +

>  1 file changed, 1 insertion(+)


I'm slightly concerned about the dependency. Not that I doubt its
correctness, but because it could mean that PCI_TEGRA is not visible in
the default configuration. The only reason why it is currently visible
is because PCI_MSI is selected by some symbols that also happen to be
enabled. However, what if at some point those symbols are disabled or
removed?

Some architectures make sure that PCI_MSI is enabled by selecting it,
but that's risky, isn't it, because PCI_MSI is user-visible and could
therefore easily lead to conflicts.

Enabling PCI_MSI in the arm64 defconfig would solve the issue and is
good enough for me. I've got a couple of changes to that defconfig in
the Tegra tree for v4.17-rc1, I can add a patch to enable PCI_MSI.

Unless there are any objections.

Thierry
Arnd Bergmann March 14, 2018, 12:06 p.m. UTC | #3
On Wed, Mar 14, 2018 at 12:45 PM, Thierry Reding
<thierry.reding@gmail.com> wrote:
> On Tue, Mar 13, 2018 at 12:52:05PM +0100, Arnd Bergmann wrote:

>> Building the tegra PCIe host driver without MSI results in a link

>> failure:

>>

>> drivers/pci/host/pci-tegra.o:(.data+0x70): undefined reference to `pci_msi_unmask_irq'

>> drivers/pci/host/pci-tegra.o:(.data+0x74): undefined reference to `pci_msi_mask_irq'

>>

>> This adds the same dependency that everyone else uses.

>>

>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

>> ---

>>  drivers/pci/host/Kconfig | 1 +

>>  1 file changed, 1 insertion(+)

>

> I'm slightly concerned about the dependency. Not that I doubt its

> correctness, but because it could mean that PCI_TEGRA is not visible in

> the default configuration. The only reason why it is currently visible

> is because PCI_MSI is selected by some symbols that also happen to be

> enabled. However, what if at some point those symbols are disabled or

> removed?

>

> Some architectures make sure that PCI_MSI is enabled by selecting it,

> but that's risky, isn't it, because PCI_MSI is user-visible and could

> therefore easily lead to conflicts.

>

> Enabling PCI_MSI in the arm64 defconfig would solve the issue and is

> good enough for me. I've got a couple of changes to that defconfig in

> the Tegra tree for v4.17-rc1, I can add a patch to enable PCI_MSI.

>

> Unless there are any objections.


I looked at it again and found that this on ARM64, PCI_MSI is always
selected indirectly by ARM_GIC&&PCI, so there is no problem.

The build failure must have been on 32-bit ARM.

       Arnd
Thierry Reding March 14, 2018, 12:13 p.m. UTC | #4
On Wed, Mar 14, 2018 at 01:06:11PM +0100, Arnd Bergmann wrote:
> On Wed, Mar 14, 2018 at 12:45 PM, Thierry Reding

> <thierry.reding@gmail.com> wrote:

> > On Tue, Mar 13, 2018 at 12:52:05PM +0100, Arnd Bergmann wrote:

> >> Building the tegra PCIe host driver without MSI results in a link

> >> failure:

> >>

> >> drivers/pci/host/pci-tegra.o:(.data+0x70): undefined reference to `pci_msi_unmask_irq'

> >> drivers/pci/host/pci-tegra.o:(.data+0x74): undefined reference to `pci_msi_mask_irq'

> >>

> >> This adds the same dependency that everyone else uses.

> >>

> >> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> >> ---

> >>  drivers/pci/host/Kconfig | 1 +

> >>  1 file changed, 1 insertion(+)

> >

> > I'm slightly concerned about the dependency. Not that I doubt its

> > correctness, but because it could mean that PCI_TEGRA is not visible in

> > the default configuration. The only reason why it is currently visible

> > is because PCI_MSI is selected by some symbols that also happen to be

> > enabled. However, what if at some point those symbols are disabled or

> > removed?

> >

> > Some architectures make sure that PCI_MSI is enabled by selecting it,

> > but that's risky, isn't it, because PCI_MSI is user-visible and could

> > therefore easily lead to conflicts.

> >

> > Enabling PCI_MSI in the arm64 defconfig would solve the issue and is

> > good enough for me. I've got a couple of changes to that defconfig in

> > the Tegra tree for v4.17-rc1, I can add a patch to enable PCI_MSI.

> >

> > Unless there are any objections.

> 

> I looked at it again and found that this on ARM64, PCI_MSI is always

> selected indirectly by ARM_GIC&&PCI, so there is no problem.

> 

> The build failure must have been on 32-bit ARM.


Okay, I had assumed that ARM_GIC_V2M (which selects PCI_MSI) was user-
visible and hence could be disabled. But it's not, and always enabled on
ARM64. On 32-bit we already explicitly enable PCI_MSI via the default
configurations.

I withdraw my concerns. I see that Lorenzo already applied the patch, so
just for the record:

Acked-by: Thierry Reding <treding@nvidia.com>
Lorenzo Pieralisi March 14, 2018, 6:34 p.m. UTC | #5
On Wed, Mar 14, 2018 at 01:13:14PM +0100, Thierry Reding wrote:
> On Wed, Mar 14, 2018 at 01:06:11PM +0100, Arnd Bergmann wrote:

> > On Wed, Mar 14, 2018 at 12:45 PM, Thierry Reding

> > <thierry.reding@gmail.com> wrote:

> > > On Tue, Mar 13, 2018 at 12:52:05PM +0100, Arnd Bergmann wrote:

> > >> Building the tegra PCIe host driver without MSI results in a link

> > >> failure:

> > >>

> > >> drivers/pci/host/pci-tegra.o:(.data+0x70): undefined reference to `pci_msi_unmask_irq'

> > >> drivers/pci/host/pci-tegra.o:(.data+0x74): undefined reference to `pci_msi_mask_irq'

> > >>

> > >> This adds the same dependency that everyone else uses.

> > >>

> > >> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> > >> ---

> > >>  drivers/pci/host/Kconfig | 1 +

> > >>  1 file changed, 1 insertion(+)

> > >

> > > I'm slightly concerned about the dependency. Not that I doubt its

> > > correctness, but because it could mean that PCI_TEGRA is not visible in

> > > the default configuration. The only reason why it is currently visible

> > > is because PCI_MSI is selected by some symbols that also happen to be

> > > enabled. However, what if at some point those symbols are disabled or

> > > removed?

> > >

> > > Some architectures make sure that PCI_MSI is enabled by selecting it,

> > > but that's risky, isn't it, because PCI_MSI is user-visible and could

> > > therefore easily lead to conflicts.

> > >

> > > Enabling PCI_MSI in the arm64 defconfig would solve the issue and is

> > > good enough for me. I've got a couple of changes to that defconfig in

> > > the Tegra tree for v4.17-rc1, I can add a patch to enable PCI_MSI.

> > >

> > > Unless there are any objections.

> > 

> > I looked at it again and found that this on ARM64, PCI_MSI is always

> > selected indirectly by ARM_GIC&&PCI, so there is no problem.

> > 

> > The build failure must have been on 32-bit ARM.

> 

> Okay, I had assumed that ARM_GIC_V2M (which selects PCI_MSI) was user-

> visible and hence could be disabled. But it's not, and always enabled on

> ARM64. On 32-bit we already explicitly enable PCI_MSI via the default

> configurations.

> 

> I withdraw my concerns. I see that Lorenzo already applied the patch, so

> just for the record:


Apologies - it fixed an issue and it seemed harmless hence I applied it
straight away, I should have waited for an ACK.

> Acked-by: Thierry Reding <treding@nvidia.com>


Updated - it is important to keep records, that's what tags are for.

Thanks,
Lorenzo
diff mbox series

Patch

diff --git a/drivers/pci/host/Kconfig b/drivers/pci/host/Kconfig
index 1fcdc890acc7..65b4afb8d11d 100644
--- a/drivers/pci/host/Kconfig
+++ b/drivers/pci/host/Kconfig
@@ -38,6 +38,7 @@  config PCI_FTPCI100
 config PCI_TEGRA
 	bool "NVIDIA Tegra PCIe controller"
 	depends on ARCH_TEGRA && MMU
+	depends on PCI_MSI_IRQ_DOMAIN
 	help
 	  Say Y here if you want support for the PCIe host controller found
 	  on NVIDIA Tegra SoCs.