Re: [PATCH -next] pci: add function stub for pci_get_domain_bus_and_slot()
From: Bjorn Helgaas
Date: Wed Dec 06 2017 - 16:02:18 EST
[+cc Arnd, Rafael, Thomas, Matthew, Lorenzo]
On Tue, Dec 05, 2017 at 02:39:20PM -0600, Bjorn Helgaas wrote:
> [+cc Sinan]
>
> On Tue, Nov 28, 2017 at 02:31:21PM -0800, Randy Dunlap wrote:
> > From: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> >
> > The coretemp driver build fails when CONFIG_PCI is not enabled
> > because it uses a function that does not have a stub for that
> > config case, so add the function stub.
> >
> > ../drivers/hwmon/coretemp.c: In function 'adjust_tjmax':
> > ../drivers/hwmon/coretemp.c:250:9: error: implicit declaration of function 'pci_get_domain_bus_and_slot' [-Werror=implicit-function-declaration]
> > struct pci_dev *host_bridge = pci_get_domain_bus_and_slot(0, 0, devfn);
> > ../drivers/hwmon/coretemp.c:250:32: warning: initialization makes pointer from integer without a cast [enabled by default]
> > struct pci_dev *host_bridge = pci_get_domain_bus_and_slot(0, 0, devfn);
> >
> > Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
>
> Applied with Guenter's ack to pci/enumeration for v4.16, thanks!
>
> Apparently no other code calls pci_get_domain_bus_and_slot() when
> CONFIG_PCI isn't enabled.
>
> 15ab6790f628 ("hwmon: (coretemp) deprecate pci_get_bus_and_slot()") is
> already in linux-next via hwmon-staging.
>
> The pci tree is merged into next slightly before hwmon-staging, so
> this should be resolved as soon as the 0-day builder builds my
> pci/enumeration branch and I merge it into my next branch.
On Arnd's advice, I moved this to for-linus for v4.15 in case any of
the conversion patches get merged before PCI during the v4.16 merge
window.
> > ---
> > include/linux/pci.h | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > --- linux-next-20171128.orig/include/linux/pci.h
> > +++ linux-next-20171128/include/linux/pci.h
> > @@ -1660,6 +1660,9 @@ static inline struct pci_dev *pci_get_sl
> > static inline struct pci_dev *pci_get_bus_and_slot(unsigned int bus,
> > unsigned int devfn)
> > { return NULL; }
> > +static inline struct pci_dev *pci_get_domain_bus_and_slot(int domain,
> > + unsigned int bus, unsigned int devfn)
> > +{ return NULL; }
> >
> > static inline int pci_domain_nr(struct pci_bus *bus) { return 0; }
> > static inline struct pci_dev *pci_dev_get(struct pci_dev *dev) { return NULL; }
> >
> >