Patchwork powerpc: Fix build of 4xx simple platforms without CONFIG_PCI

login
register
mail settings
Submitter Benjamin Herrenschmidt
Date Dec. 8, 2008, 4:53 a.m.
Message ID <20081208045411.0CE03DDE0E@ozlabs.org>
Download mbox | patch
Permalink /patch/12677/
State Superseded
Delegated to: Josh Boyer
Headers show

Comments

Benjamin Herrenschmidt - Dec. 8, 2008, 4:53 a.m.
The global ppc_pci_flags is not defined when CONFIG_PCI is not
set, causing a link error

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---

 arch/powerpc/platforms/40x/ppc40x_simple.c |    2 ++
 arch/powerpc/platforms/44x/ppc44x_simple.c |    2 ++
 2 files changed, 4 insertions(+)
Michael Ellerman - Dec. 8, 2008, 5:32 a.m.
On Mon, 2008-12-08 at 15:53 +1100, Benjamin Herrenschmidt wrote:
> The global ppc_pci_flags is not defined when CONFIG_PCI is not
> set, causing a link error
> 
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> ---
> 
>  arch/powerpc/platforms/40x/ppc40x_simple.c |    2 ++
>  arch/powerpc/platforms/44x/ppc44x_simple.c |    2 ++
>  2 files changed, 4 insertions(+)
> 
> --- linux-work.orig/arch/powerpc/platforms/40x/ppc40x_simple.c	2008-12-08 15:51:49.000000000 +1100
> +++ linux-work/arch/powerpc/platforms/40x/ppc40x_simple.c	2008-12-08 15:51:52.000000000 +1100
> @@ -61,7 +61,9 @@ static int __init ppc40x_probe(void)
>  
>  	for (i = 0; i < ARRAY_SIZE(board); i++) {
>  		if (of_flat_dt_is_compatible(root, board[i])) {
> +#ifdef CONFIG_PCI
>  			ppc_pci_flags = PPC_PCI_REASSIGN_ALL_RSRC;
> +#endif

No! #ifdefs! in C code!

To the tune of you-know-what.

Looks like we need an accessor we can replace with an empty version in
the !PCI case.

cheers
Benjamin Herrenschmidt - Dec. 8, 2008, 5:38 a.m.
> > --- linux-work.orig/arch/powerpc/platforms/40x/ppc40x_simple.c	2008-12-08 15:51:49.000000000 +1100
> > +++ linux-work/arch/powerpc/platforms/40x/ppc40x_simple.c	2008-12-08 15:51:52.000000000 +1100
> > @@ -61,7 +61,9 @@ static int __init ppc40x_probe(void)
> >  
> >  	for (i = 0; i < ARRAY_SIZE(board); i++) {
> >  		if (of_flat_dt_is_compatible(root, board[i])) {
> > +#ifdef CONFIG_PCI
> >  			ppc_pci_flags = PPC_PCI_REASSIGN_ALL_RSRC;
> > +#endif
> 
> No! #ifdefs! in C code!
> 
> To the tune of you-know-what.
> 
> Looks like we need an accessor we can replace with an empty version in
> the !PCI case.

If you have plenty of time on your hands :-) In the meantime, this is a
build fix.

Cheers,
Ben.
Josh Boyer - Dec. 10, 2008, 2:25 p.m.
On Mon, 08 Dec 2008 16:38:14 +1100
Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:

> 
> > > --- linux-work.orig/arch/powerpc/platforms/40x/ppc40x_simple.c	2008-12-08 15:51:49.000000000 +1100
> > > +++ linux-work/arch/powerpc/platforms/40x/ppc40x_simple.c	2008-12-08 15:51:52.000000000 +1100
> > > @@ -61,7 +61,9 @@ static int __init ppc40x_probe(void)
> > >  
> > >  	for (i = 0; i < ARRAY_SIZE(board); i++) {
> > >  		if (of_flat_dt_is_compatible(root, board[i])) {
> > > +#ifdef CONFIG_PCI
> > >  			ppc_pci_flags = PPC_PCI_REASSIGN_ALL_RSRC;
> > > +#endif
> > 
> > No! #ifdefs! in C code!
> > 
> > To the tune of you-know-what.
> > 
> > Looks like we need an accessor we can replace with an empty version in
> > the !PCI case.
> 
> If you have plenty of time on your hands :-) In the meantime, this is a
> build fix.

I have time.  I hate ifdefs.

josh
Josh Boyer - Dec. 10, 2008, 7:06 p.m.
On Wed, 10 Dec 2008 09:25:08 -0500
Josh Boyer <jwboyer@linux.vnet.ibm.com> wrote:

> On Mon, 08 Dec 2008 16:38:14 +1100
> Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
> 
> > 
> > > > --- linux-work.orig/arch/powerpc/platforms/40x/ppc40x_simple.c	2008-12-08 15:51:49.000000000 +1100
> > > > +++ linux-work/arch/powerpc/platforms/40x/ppc40x_simple.c	2008-12-08 15:51:52.000000000 +1100
> > > > @@ -61,7 +61,9 @@ static int __init ppc40x_probe(void)
> > > >  
> > > >  	for (i = 0; i < ARRAY_SIZE(board); i++) {
> > > >  		if (of_flat_dt_is_compatible(root, board[i])) {
> > > > +#ifdef CONFIG_PCI
> > > >  			ppc_pci_flags = PPC_PCI_REASSIGN_ALL_RSRC;
> > > > +#endif
> > > 
> > > No! #ifdefs! in C code!
> > > 
> > > To the tune of you-know-what.
> > > 
> > > Looks like we need an accessor we can replace with an empty version in
> > > the !PCI case.
> > 
> > If you have plenty of time on your hands :-) In the meantime, this is a
> > build fix.
> 
> I have time.  I hate ifdefs.

Oh, and:
http://ozlabs.org/pipermail/linuxppc-dev/2007-December/048214.html

I told you so (sort of).  Ha!  ;)

josh
Michael Ellerman - Dec. 10, 2008, 9:59 p.m.
On Wed, 2008-12-10 at 09:25 -0500, Josh Boyer wrote:
> On Mon, 08 Dec 2008 16:38:14 +1100
> Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
> > > > --- linux-work.orig/arch/powerpc/platforms/40x/ppc40x_simple.c	2008-12-08 15:51:49.000000000 +1100
> > > > +++ linux-work/arch/powerpc/platforms/40x/ppc40x_simple.c	2008-12-08 15:51:52.000000000 +1100
> > > > @@ -61,7 +61,9 @@ static int __init ppc40x_probe(void)
> > > >  
> > > >  	for (i = 0; i < ARRAY_SIZE(board); i++) {
> > > >  		if (of_flat_dt_is_compatible(root, board[i])) {
> > > > +#ifdef CONFIG_PCI
> > > >  			ppc_pci_flags = PPC_PCI_REASSIGN_ALL_RSRC;
> > > > +#endif
> > > 
> > > No! #ifdefs! in C code!
> > > 
> > > To the tune of you-know-what.
> > > 
> > > Looks like we need an accessor we can replace with an empty version in
> > > the !PCI case.
> > 
> > If you have plenty of time on your hands :-) In the meantime, this is a
> > build fix.
> 
> I have time.  I hate ifdefs.

You are awesome.

Patch

--- linux-work.orig/arch/powerpc/platforms/40x/ppc40x_simple.c	2008-12-08 15:51:49.000000000 +1100
+++ linux-work/arch/powerpc/platforms/40x/ppc40x_simple.c	2008-12-08 15:51:52.000000000 +1100
@@ -61,7 +61,9 @@  static int __init ppc40x_probe(void)
 
 	for (i = 0; i < ARRAY_SIZE(board); i++) {
 		if (of_flat_dt_is_compatible(root, board[i])) {
+#ifdef CONFIG_PCI
 			ppc_pci_flags = PPC_PCI_REASSIGN_ALL_RSRC;
+#endif
 			return 1;
 		}
 	}
Index: linux-work/arch/powerpc/platforms/44x/ppc44x_simple.c
===================================================================
--- linux-work.orig/arch/powerpc/platforms/44x/ppc44x_simple.c	2008-12-08 15:51:31.000000000 +1100
+++ linux-work/arch/powerpc/platforms/44x/ppc44x_simple.c	2008-12-08 15:51:39.000000000 +1100
@@ -70,7 +70,9 @@  static int __init ppc44x_probe(void)
 
 	for (i = 0; i < ARRAY_SIZE(board); i++) {
 		if (of_flat_dt_is_compatible(root, board[i])) {
+#ifdef CONFIG_PCI
 			ppc_pci_flags = PPC_PCI_REASSIGN_ALL_RSRC;
+#endif
 			return 1;
 		}
 	}