Messages in this thread Patch in this message | | | Date | Thu, 28 Jun 2007 16:25:54 -0700 | From | Randy Dunlap <> | Subject | [PATCH] pci.h stubs (for EDD build error) |
| |
On Tue, 26 Jun 2007 21:45:05 -0500 Matt Domsch wrote:
> On Tue, Jun 26, 2007 at 01:26:22PM -0700, Randy Dunlap wrote: > > Hi, > > > > CONFIG_EDD does not depend on PCI, but edd.c uses pci_* interface > > functions, resulting in: > > > > CC [M] drivers/firmware/edd.o > > drivers/firmware/edd.c: In function 'edd_get_pci_dev': > > drivers/firmware/edd.c:672: warning: implicit declaration of function 'pci_get_bus_and_slot' > > drivers/firmware/edd.c:673: warning: return makes pointer from integer without a cast > > ... > > ERROR: "pci_get_bus_and_slot" [drivers/firmware/edd.ko] undefined! > > make[1]: *** [__modpost] Error 1 > > > > > > Should EDD depend on PCI or should some parts of edd.c be stubbed? > > Good catch, thanks. > > It should be stubbed, in include/linux/pci.h where all the other PCI > functions are stubbed for the !CONFIG_PCI case. > > There are several functions in include/linux/pci.h that have been > added in the CONFIG_PCI case, but not stubbed in !CONFIG_PCI. > pci_get_bus_and_slot() is just one of those. That list appears to > include: > > struct pci_bus *pci_find_next_bus(const struct pci_bus *from); > struct pci_dev *pci_get_slot (struct pci_bus *bus, unsigned int devfn); > struct pci_dev *pci_get_bus_and_slot (unsigned int bus, unsigned int devfn);
Did those -- patch is below.
Get clean build of drivers/firmware/edd.c with this patch even when CONFIG_PCI=n.
> Perhaps arguably, functions that take a struct pci_dev * as an > argument need not be stubbed, as they shouldn't be called with a null > pointer argument in the first place. These include: > > int pci_find_ht_capability (struct pci_dev *dev, int ht_cap); > int pci_find_next_ht_capability (struct pci_dev *dev, int pos, int ht_cap); > static inline int pci_is_managed(struct pci_dev *pdev) > > > I'm out of the office this week and next, but will add to my (growing) > list of cleanups to do when I'm back and more online, unless you or > someone wants to get to it first. :-)
From: Randy Dunlap <randy.dunlap@oracle.com>
Provide stubs for more PCI bus/slot functions when CONFIG_PCI=n.
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> --- include/linux/pci.h | 11 +++++++++++ 1 file changed, 11 insertions(+)
--- linux-2622-rc6.orig/include/linux/pci.h +++ linux-2622-rc6/include/linux/pci.h @@ -748,6 +748,17 @@ static inline void pci_release_regions(s static inline void pci_block_user_cfg_access(struct pci_dev *dev) { } static inline void pci_unblock_user_cfg_access(struct pci_dev *dev) { } +static inline struct pci_bus *pci_find_next_bus(const struct pci_bus *from) +{ return NULL; } + +static inline struct pci_dev *pci_get_slot(struct pci_bus *bus, + unsigned int devfn) +{ return NULL; } + +static inline struct pci_dev *pci_get_bus_and_slot(unsigned int bus, + unsigned int devfn) +{ return NULL; } + #endif /* CONFIG_PCI */ /* Include architecture-dependent settings and functions */ - 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/
| |