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

Matthew Wilcox (willy@fc.hp.com)
Thu, 19 Jun 2003 10:19:52 -0600


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
http://www.gnu.org/philosophy/why-free.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/