Re: move pci_domain_nr() inside "#ifdef CONFIG_PCI" bracket

From: Matthew Wilcox (
Date: Thu Jun 19 2003 - 11:19:52 EST

On Thu, Jun 19, 2003 at 09:03:44AM -0600, Matthew Wilcox wrote:
> On Wed, Jun 18, 2003 at 02:57:06PM -0700, Greg KH wrote:
> > On Wed, Jun 18, 2003 at 02:10:04PM -0700, David Mosberger wrote:
> > > Trivial build fix: pci_domain_nr() cannot be declared unless
> > > CONFIG_PCI is defined (otherwise, struct pci_bus hasn't been defined).
> >
> > Thanks, I've added this to my pci bk tree and will send it off to Linus
> > in a bit.
> I don't understand. One of the PPC guys saw it too, but how is it
> possible? CONFIG_PCI is first mentioned at line 526 of pci.h.
> pci_bus is defined at line 446.

Now I understand. Tom Rini forwarded me the output from gcc -E. The
problem is that CONFIG_PCI_DOMAIN is conditional on CONFIG_PCI. So ppc
& ia64 define a macro for pci_domain_nr, then PCI_DOMAIN isn't set, so
the default definition of pci_domain_nr happens ... and gets mutilated
by the macro:

static inline int ((struct pci_controller *)( struct pci_bus *bus)->sysdata)->index { return 0; }

A bit subtle, that ... I think this patch is fine, though perhaps it'd
be best to unconditionally make CONFIG_PCI_DOMAIN true as well?

It's always legal to use Linux (TM) systems
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

This archive was generated by hypermail 2b29 : Mon Jun 23 2003 - 22:00:29 EST