diff mbox

PCI: endpoint: PCI_ENDPOINT should depend on HAS_DMA

Message ID 1494955268-1262-1-git-send-email-geert@linux-m68k.org
State Accepted
Headers show

Commit Message

Geert Uytterhoeven May 16, 2017, 5:21 p.m. UTC
If NO_DMA=y:

    drivers/built-in.o: In function `__pci_epc_create':
    (.text+0xef4e): undefined reference to `bad_dma_ops'
    drivers/built-in.o: In function `pci_epc_add_epf':
    (.text+0xf676): undefined reference to `bad_dma_ops'
    drivers/built-in.o: In function `pci_epf_alloc_space':
    (.text+0xfa32): undefined reference to `bad_dma_ops'
    drivers/built-in.o: In function `pci_epf_free_space':
    (.text+0xfac4): undefined reference to `bad_dma_ops'

Add a dependency on HAS_DMA to fix this.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
Should PCI_ENDPOINT depend on CONFIG_PCI instead?
---
 drivers/pci/endpoint/Kconfig | 1 +
 1 file changed, 1 insertion(+)

Comments

Bjorn Helgaas May 22, 2017, 9:26 p.m. UTC | #1
On Tue, May 16, 2017 at 07:21:08PM +0200, Geert Uytterhoeven wrote:
> If NO_DMA=y:
> 
>     drivers/built-in.o: In function `__pci_epc_create':
>     (.text+0xef4e): undefined reference to `bad_dma_ops'
>     drivers/built-in.o: In function `pci_epc_add_epf':
>     (.text+0xf676): undefined reference to `bad_dma_ops'
>     drivers/built-in.o: In function `pci_epf_alloc_space':
>     (.text+0xfa32): undefined reference to `bad_dma_ops'
>     drivers/built-in.o: In function `pci_epf_free_space':
>     (.text+0xfac4): undefined reference to `bad_dma_ops'
> 
> Add a dependency on HAS_DMA to fix this.
> 
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>

Applied to for-linus for v4.12, thanks!

> ---
> Should PCI_ENDPOINT depend on CONFIG_PCI instead?

I *think* we want HAS_DMA, not CONFIG_PCI, because CONFIG_PCI means we
want the infrastructure for PCI host bridges, enumerating children of
the bridges, etc.  I think we want to allow PCI_ENDPOINT without all
that.

Kishon?

> ---
>  drivers/pci/endpoint/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/pci/endpoint/Kconfig b/drivers/pci/endpoint/Kconfig
> index c23f146fb5a668b3..c09623ca8c3b14b9 100644
> --- a/drivers/pci/endpoint/Kconfig
> +++ b/drivers/pci/endpoint/Kconfig
> @@ -6,6 +6,7 @@ menu "PCI Endpoint"
>  
>  config PCI_ENDPOINT
>  	bool "PCI Endpoint Support"
> +	depends on HAS_DMA
>  	help
>  	   Enable this configuration option to support configurable PCI
>  	   endpoint. This should be enabled if the platform has a PCI
> -- 
> 2.7.4
>
Kishon Vijay Abraham I May 23, 2017, 6:43 a.m. UTC | #2
Hi Bjorn,

On Tuesday 23 May 2017 02:56 AM, Bjorn Helgaas wrote:
> On Tue, May 16, 2017 at 07:21:08PM +0200, Geert Uytterhoeven wrote:
>> If NO_DMA=y:
>>
>>     drivers/built-in.o: In function `__pci_epc_create':
>>     (.text+0xef4e): undefined reference to `bad_dma_ops'
>>     drivers/built-in.o: In function `pci_epc_add_epf':
>>     (.text+0xf676): undefined reference to `bad_dma_ops'
>>     drivers/built-in.o: In function `pci_epf_alloc_space':
>>     (.text+0xfa32): undefined reference to `bad_dma_ops'
>>     drivers/built-in.o: In function `pci_epf_free_space':
>>     (.text+0xfac4): undefined reference to `bad_dma_ops'
>>
>> Add a dependency on HAS_DMA to fix this.
>>
>> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> 
> Applied to for-linus for v4.12, thanks!
> 
>> ---
>> Should PCI_ENDPOINT depend on CONFIG_PCI instead?
> 
> I *think* we want HAS_DMA, not CONFIG_PCI, because CONFIG_PCI means we
> want the infrastructure for PCI host bridges, enumerating children of
> the bridges, etc.  I think we want to allow PCI_ENDPOINT without all
> that.
> 
> Kishon?

right. CONFIG_PCI is for enabling the host infrastructure and PCI_ENDPOINT and
CONFIG_PCI should be completely independent of each other.

Thanks
Kishon
Geert Uytterhoeven May 23, 2017, 7:12 a.m. UTC | #3
Hi Kishon,

On Tue, May 23, 2017 at 8:43 AM, Kishon Vijay Abraham I <kishon@ti.com> wrote:
> On Tuesday 23 May 2017 02:56 AM, Bjorn Helgaas wrote:
>> On Tue, May 16, 2017 at 07:21:08PM +0200, Geert Uytterhoeven wrote:
>>> If NO_DMA=y:
>>>
>>>     drivers/built-in.o: In function `__pci_epc_create':
>>>     (.text+0xef4e): undefined reference to `bad_dma_ops'
>>>     drivers/built-in.o: In function `pci_epc_add_epf':
>>>     (.text+0xf676): undefined reference to `bad_dma_ops'
>>>     drivers/built-in.o: In function `pci_epf_alloc_space':
>>>     (.text+0xfa32): undefined reference to `bad_dma_ops'
>>>     drivers/built-in.o: In function `pci_epf_free_space':
>>>     (.text+0xfac4): undefined reference to `bad_dma_ops'
>>>
>>> Add a dependency on HAS_DMA to fix this.
>>>
>>> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
>>
>> Applied to for-linus for v4.12, thanks!
>>
>>> ---
>>> Should PCI_ENDPOINT depend on CONFIG_PCI instead?
>>
>> I *think* we want HAS_DMA, not CONFIG_PCI, because CONFIG_PCI means we
>> want the infrastructure for PCI host bridges, enumerating children of
>> the bridges, etc.  I think we want to allow PCI_ENDPOINT without all
>> that.
>>
>> Kishon?
>
> right. CONFIG_PCI is for enabling the host infrastructure and PCI_ENDPOINT and
> CONFIG_PCI should be completely independent of each other.

OK, so HAS_DMA is the right dependency.
Thanks for confirming!

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
diff mbox

Patch

diff --git a/drivers/pci/endpoint/Kconfig b/drivers/pci/endpoint/Kconfig
index c23f146fb5a668b3..c09623ca8c3b14b9 100644
--- a/drivers/pci/endpoint/Kconfig
+++ b/drivers/pci/endpoint/Kconfig
@@ -6,6 +6,7 @@  menu "PCI Endpoint"
 
 config PCI_ENDPOINT
 	bool "PCI Endpoint Support"
+	depends on HAS_DMA
 	help
 	   Enable this configuration option to support configurable PCI
 	   endpoint. This should be enabled if the platform has a PCI