Subject: Re: linux-next: Tree for June 17 (pci/slot)

From: Alex Chiang <[email-masked]>
Date: Wed, 17 Jun 2009 18:38:08 -0600

* Jesse Barnes <[email-masked]>:
> On Wed, 17 Jun 2009 10:43:36 -0700
> Randy Dunlap <[email-masked]> wrote:
> 
> > Jesse Barnes wrote:
> > > On Wed, 17 Jun 2009 10:36:04 -0600
> > > Matthew Wilcox <[email-masked]> wrote:
> > > 
> > >> On Wed, Jun 17, 2009 at 09:26:51AM -0700, Randy Dunlap wrote:
> > >>> Stephen Rothwell wrote:
> > >>>> Hi all,
> > >>>>
> > >>>> Changes since 20090616:
> > >>>
> > >>> When CONFIG_SYSFS=n:
> > >>>
> > >>> drivers/pci/slot.c:327: error: 'module_kset' undeclared (first use
> > >>> in this function)
> > >> Is there any point to pci_slot existing without CONFIG_SYSFS?
> > >> I don't see how you can interact with it in any meaningful way.
> > >> Perhaps CONFIG_PCI_SLOT should depend on CONFIG_SYSFS?
> > > 
> > > I've got a code fix queued up, but maybe a Kconfig dependency is the
> > > way to go...
> > 
> > What is the code fix like?
> > The Kconfig fix makes sense to me.
> > 
> > 
> Here's the patch I have (sorry cut & paste):
> 
> Fix this build error when CONFIG_SYSFS is not set:
> drivers/pci/slot.c: In function 'pci_hp_create_module_link':
> drivers/pci/slot.c:327: error: 'module_kset' undeclared
> 
> Signed-off-by: Alexander Beregalov <[email-masked]>

I agree with Matthew. You can't do anything useful with the
functionality in drivers/pci/slot.o unless you have sysfs, so a
Kconfig dependency is more appropriate.

From: Alex Chiang <[email-masked]>

PCI: drivers/pci/slot.c should depend on CONFIG_SYSFS

There is no way to interact with a physical PCI slot without
sysfs, so encode the dependency and prevent this build error:

	drivers/pci/slot.c: In function 'pci_hp_create_module_link':
	drivers/pci/slot.c:327: error: 'module_kset' undeclared

Reported-by: Stephen Rothwell <[email-masked]>
Fix-suggested-by: Matthew Wilcox <[email-masked]>
Signed-off-by: Alex Chiang <[email-masked]>
---
diff --git a/drivers/pci/Makefile b/drivers/pci/Makefile
index ba6af16..ed32f67 100644
--- a/drivers/pci/Makefile
+++ b/drivers/pci/Makefile
@@ -2,10 +2,11 @@
 # Makefile for the PCI bus specific drivers.
 #
 
-obj-y		+= access.o bus.o probe.o remove.o pci.o quirks.o slot.o \
+obj-y		+= access.o bus.o probe.o remove.o pci.o quirks.o \
 			pci-driver.o search.o pci-sysfs.o rom.o setup-res.o \
 			irq.o
 obj-$(CONFIG_PROC_FS) += proc.o
+obj-$(CONFIG_SYSFS) += slot.o
 
 # Build PCI Express stuff if needed
 obj-$(CONFIG_PCIEPORTBUS) += pcie/