diff mbox

PCI: generic: stop hiding pci_host_common_probe declaration

Message ID 20170321160003.339217-1-arnd@arndb.de
State Changes Requested
Headers show

Commit Message

Arnd Bergmann March 21, 2017, 3:59 p.m. UTC
When pci_host_common_probe() was moved into a separate module, the #ifdef around
the declaration was left in the header file, which can lead to build errors in
some configurations:

drivers/pci/host/pci-thunder-pem.c: In function 'thunder_pem_probe':
drivers/pci/host/pci-thunder-pem.c:412:9: error: implicit declaration of function 'pci_host_common_probe';did you mean 'pci_host_bridge_priv'? [-Werror=implicit-function-declaration]

The ifdef serves no real purpose anyway, so we can just remove it.

Fixes: 4e64dbe226e7 ("PCI: generic: Expose pci_host_common_probe() for use by other drivers")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 include/linux/pci-ecam.h | 2 --
 1 file changed, 2 deletions(-)

Comments

Tomasz Nowicki March 29, 2017, 1:05 p.m. UTC | #1
Hi Arnd,

On 21.03.2017 16:59, Arnd Bergmann wrote:
> When pci_host_common_probe() was moved into a separate module, the #ifdef around
> the declaration was left in the header file, which can lead to build errors in
> some configurations:
>
> drivers/pci/host/pci-thunder-pem.c: In function 'thunder_pem_probe':
> drivers/pci/host/pci-thunder-pem.c:412:9: error: implicit declaration of function 'pci_host_common_probe';did you mean 'pci_host_bridge_priv'? [-Werror=implicit-function-declaration]
>
> The ifdef serves no real purpose anyway, so we can just remove it.
>
> Fixes: 4e64dbe226e7 ("PCI: generic: Expose pci_host_common_probe() for use by other drivers")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  include/linux/pci-ecam.h | 2 --
>  1 file changed, 2 deletions(-)
>
> diff --git a/include/linux/pci-ecam.h b/include/linux/pci-ecam.h
> index f0d2b9451270..92a73847e1d3 100644
> --- a/include/linux/pci-ecam.h
> +++ b/include/linux/pci-ecam.h
> @@ -68,9 +68,7 @@ extern struct pci_ecam_ops xgene_v1_pcie_ecam_ops; /* APM X-Gene PCIe v1 */
>  extern struct pci_ecam_ops xgene_v2_pcie_ecam_ops; /* APM X-Gene PCIe v2.x */
>  #endif
>
> -#ifdef CONFIG_PCI_HOST_GENERIC
>  /* for DT-based PCI controllers that support ECAM */
>  int pci_host_common_probe(struct platform_device *pdev,
>  			  struct pci_ecam_ops *ops);
>  #endif
> -#endif
>

Thanks for fixing this.

Reviewed-by: Tomasz Nowicki <tn@semihalf.com>
Tested-by: Tomasz Nowicki <tn@semihalf.com>

Tomasz
Bjorn Helgaas April 3, 2017, 9:33 p.m. UTC | #2
On Tue, Mar 21, 2017 at 04:59:52PM +0100, Arnd Bergmann wrote:
> When pci_host_common_probe() was moved into a separate module, the #ifdef around
> the declaration was left in the header file, which can lead to build errors in
> some configurations:
> 
> drivers/pci/host/pci-thunder-pem.c: In function 'thunder_pem_probe':
> drivers/pci/host/pci-thunder-pem.c:412:9: error: implicit declaration of function 'pci_host_common_probe';did you mean 'pci_host_bridge_priv'? [-Werror=implicit-function-declaration]
> 
> The ifdef serves no real purpose anyway, so we can just remove it.
> 
> Fixes: 4e64dbe226e7 ("PCI: generic: Expose pci_host_common_probe() for use by other drivers")

It looks like 4e64dbe226e7 was merged for v4.6-rc1.  Does that mean
this build error has been there that long?  Is there another, more
recent commit that actually broke this?

I suspect something broke in the v4.11 merge window, so I'm fishing
for a commit from that window so I can include this for v4.11.

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  include/linux/pci-ecam.h | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/include/linux/pci-ecam.h b/include/linux/pci-ecam.h
> index f0d2b9451270..92a73847e1d3 100644
> --- a/include/linux/pci-ecam.h
> +++ b/include/linux/pci-ecam.h
> @@ -68,9 +68,7 @@ extern struct pci_ecam_ops xgene_v1_pcie_ecam_ops; /* APM X-Gene PCIe v1 */
>  extern struct pci_ecam_ops xgene_v2_pcie_ecam_ops; /* APM X-Gene PCIe v2.x */
>  #endif
>  
> -#ifdef CONFIG_PCI_HOST_GENERIC
>  /* for DT-based PCI controllers that support ECAM */
>  int pci_host_common_probe(struct platform_device *pdev,
>  			  struct pci_ecam_ops *ops);
>  #endif
> -#endif
> -- 
> 2.9.0
>
Marc Gonzalez April 4, 2017, 2:02 p.m. UTC | #3
On 21/03/2017 16:59, Arnd Bergmann wrote:

> When pci_host_common_probe() was moved into a separate module, the #ifdef around
> the declaration was left in the header file, which can lead to build errors in
> some configurations:
> 
> drivers/pci/host/pci-thunder-pem.c: In function 'thunder_pem_probe':
> drivers/pci/host/pci-thunder-pem.c:412:9: error: implicit declaration of function 'pci_host_common_probe';did you mean 'pci_host_bridge_priv'? [-Werror=implicit-function-declaration]
> 
> The ifdef serves no real purpose anyway, so we can just remove it.
> 
> Fixes: 4e64dbe226e7 ("PCI: generic: Expose pci_host_common_probe() for use by other drivers")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  include/linux/pci-ecam.h | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/include/linux/pci-ecam.h b/include/linux/pci-ecam.h
> index f0d2b9451270..92a73847e1d3 100644
> --- a/include/linux/pci-ecam.h
> +++ b/include/linux/pci-ecam.h
> @@ -68,9 +68,7 @@ extern struct pci_ecam_ops xgene_v1_pcie_ecam_ops; /* APM X-Gene PCIe v1 */
>  extern struct pci_ecam_ops xgene_v2_pcie_ecam_ops; /* APM X-Gene PCIe v2.x */
>  #endif
>  
> -#ifdef CONFIG_PCI_HOST_GENERIC
>  /* for DT-based PCI controllers that support ECAM */
>  int pci_host_common_probe(struct platform_device *pdev,
>  			  struct pci_ecam_ops *ops);
>  #endif
> -#endif
> 

I ran into this issue as well (on v4.9) and submitted a patch a week
after you did, by pure coincidence:

Subject: [TRIVIAL PATCH] PCI: Change pci_host_common_probe visibility
Date: Tue, 28 Mar 2017 17:29:51 +0200
https://www.spinics.net/lists/linux-pci/msg59823.html

Regards.
diff mbox

Patch

diff --git a/include/linux/pci-ecam.h b/include/linux/pci-ecam.h
index f0d2b9451270..92a73847e1d3 100644
--- a/include/linux/pci-ecam.h
+++ b/include/linux/pci-ecam.h
@@ -68,9 +68,7 @@  extern struct pci_ecam_ops xgene_v1_pcie_ecam_ops; /* APM X-Gene PCIe v1 */
 extern struct pci_ecam_ops xgene_v2_pcie_ecam_ops; /* APM X-Gene PCIe v2.x */
 #endif
 
-#ifdef CONFIG_PCI_HOST_GENERIC
 /* for DT-based PCI controllers that support ECAM */
 int pci_host_common_probe(struct platform_device *pdev,
 			  struct pci_ecam_ops *ops);
 #endif
-#endif