Re: [PATCH] PCI: pci-hyperv: fix build errors on non-SYSFS config

From: Bjorn Helgaas
Date: Tue Jul 23 2019 - 17:21:12 EST


On Sat, Jul 13, 2019 at 11:03:53AM -0400, Sasha Levin wrote:
> On Fri, Jul 12, 2019 at 04:04:17PM +0000, Haiyang Zhang wrote:
> > > -----Original Message-----
> > > From: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> > > Sent: Friday, July 12, 2019 11:53 AM
> > > To: linux-pci <linux-pci@xxxxxxxxxxxxxxx>; LKML <linux-
> > > kernel@xxxxxxxxxxxxxxx>
> > > Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx>; Jake Oshins
> > > <jakeo@xxxxxxxxxxxxx>; KY Srinivasan <kys@xxxxxxxxxxxxx>; Haiyang
> > > Zhang <haiyangz@xxxxxxxxxxxxx>; Stephen Hemminger
> > > <sthemmin@xxxxxxxxxxxxx>; Stephen Hemminger
> > > <stephen@xxxxxxxxxxxxxxxxxx>; Sasha Levin <sashal@xxxxxxxxxx>; Bjorn
> > > Helgaas <bhelgaas@xxxxxxxxxx>; Dexuan Cui <decui@xxxxxxxxxxxxx>
> > > Subject: [PATCH] PCI: pci-hyperv: fix build errors on non-SYSFS config

Whoever merges this (see below), please update the subject line to
match:

$ git log --oneline drivers/pci/controller/pci-hyperv.c | head -5
4df591b20b80 PCI: hv: Fix a use-after-free bug in hv_eject_device_work()
340d45569940 PCI: hv: Add pci_destroy_slot() in pci_devices_present_work(), if necessary
15becc2b56c6 PCI: hv: Add hv_pci_remove_slots() when we unload the driver
05f151a73ec2 PCI: hv: Fix a memory leak in hv_eject_device_work()
c8ccf7599dda PCI: hv: Refactor hv_irq_unmask() to use cpumask_to_vpset()

> > > From: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> > >
> > > Fix build errors when building almost-allmodconfig but with SYSFS
> > > not set (not enabled). Fixes these build errors:
> > >
> > > ERROR: "pci_destroy_slot" [drivers/pci/controller/pci-hyperv.ko] undefined!
> > > ERROR: "pci_create_slot" [drivers/pci/controller/pci-hyperv.ko] undefined!
> > >
> > > drivers/pci/slot.o is only built when SYSFS is enabled, so
> > > pci-hyperv.o has an implicit dependency on SYSFS.
> > > Make that explicit.
> > >
> > > Also, depending on X86 && X86_64 is not needed, so just change that
> > > to depend on X86_64.
> > >
> > > Fixes: a15f2c08c708 ("PCI: hv: support reporting serial number as slot
> > > information")
> > >
> > > Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> > > Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx>
> > > Cc: Jake Oshins <jakeo@xxxxxxxxxxxxx>
> > > Cc: "K. Y. Srinivasan" <kys@xxxxxxxxxxxxx>
> > > Cc: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>
> > > Cc: Stephen Hemminger <sthemmin@xxxxxxxxxxxxx>
> > > Cc: Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx>
> > > Cc: Sasha Levin <sashal@xxxxxxxxxx>
> > > Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
> > > Cc: linux-pci@xxxxxxxxxxxxxxx
> > > Cc: linux-hyperv@xxxxxxxxxxxxxxx
> > > Cc: Dexuan Cui <decui@xxxxxxxxxxxxx>
> > > ---
> > > v3: corrected Fixes: tag [Dexuan Cui <decui@xxxxxxxxxxxxx>]
> > > This is the Microsoft-preferred version of the patch.
> > >
> > > drivers/pci/Kconfig | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > --- lnx-52.orig/drivers/pci/Kconfig
> > > +++ lnx-52/drivers/pci/Kconfig
> > > @@ -181,7 +181,7 @@ config PCI_LABEL
> > >
> > > config PCI_HYPERV
> > > tristate "Hyper-V PCI Frontend"
> > > - depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN
> > > && X86_64
> > > + depends on X86_64 && HYPERV && PCI_MSI &&
> > > PCI_MSI_IRQ_DOMAIN && SYSFS
> > > help
> > > The PCI device frontend driver allows the kernel to import arbitrary
> > > PCI devices from a PCI backend to support PCI driver domains.
> > >
> >
> > Reviewed-by: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>
>
> Queued up for hyperv-fixes, thank you!

What merge strategy do you envision for this? Previous
drivers/pci/controller/pci-hyperv.c changes have generally been merged
by Lorenzo and incorporated into my PCI tree.

This particular patch doesn't actually touch pci-hyperv.c; it touches
drivers/pci/Kconfig, so should somehow be coordinated with me.

Does this need to be tagged for stable? a15f2c08c708 appeared in
v4.19, so my first guess is that it's not stable material.

Bjorn