2019-07-03 01:34:04

by Randy Dunlap

[permalink] [raw]
Subject: [PATCH] PCI: hv: fix pci-hyperv build, depends on SYSFS

From: Randy Dunlap <[email protected]>

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: 4daace0d8ce8 ("PCI: hv: Add paravirtual PCI front-end for Microsoft Hyper-V VMs")

Signed-off-by: Randy Dunlap <[email protected]>
Cc: Matthew Wilcox <[email protected]>
Cc: Jake Oshins <[email protected]>
Cc: "K. Y. Srinivasan" <[email protected]>
Cc: Haiyang Zhang <[email protected]>
Cc: Stephen Hemminger <[email protected]>
Cc: Sasha Levin <[email protected]>
Cc: [email protected]
---
drivers/pci/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- lnx-52-rc7.orig/drivers/pci/Kconfig
+++ lnx-52-rc7/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.



2019-07-03 01:35:23

by Matthew Wilcox

[permalink] [raw]
Subject: Re: [PATCH] PCI: hv: fix pci-hyperv build, depends on SYSFS

On Tue, Jul 02, 2019 at 04:24:30PM -0700, Randy Dunlap wrote:
> From: Randy Dunlap <[email protected]>
>
> 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.

I wonder if we shouldn't rather provide no-op versions of
pci_create|destroy_slot for when SYSFS is not set?

2019-07-03 03:27:01

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH] PCI: hv: fix pci-hyperv build, depends on SYSFS

On 7/2/19 5:15 PM, Matthew Wilcox wrote:
> On Tue, Jul 02, 2019 at 04:24:30PM -0700, Randy Dunlap wrote:
>> From: Randy Dunlap <[email protected]>
>>
>> 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.
>
> I wonder if we shouldn't rather provide no-op versions of
> pci_create|destroy_slot for when SYSFS is not set?
>

Makes sense. I'm test-building that now.

--
~Randy

2019-07-03 04:36:59

by Dexuan Cui

[permalink] [raw]
Subject: RE: [PATCH] PCI: hv: fix pci-hyperv build, depends on SYSFS

> From: [email protected]
> <[email protected]> On Behalf Of Randy Dunlap
> Sent: Tuesday, July 2, 2019 4:25 PM
> 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: 4daace0d8ce8 ("PCI: hv: Add paravirtual PCI front-end for Microsoft
> Hyper-V VMs")

I think the Fixes tag should be:
Fixes: a15f2c08c708 ("PCI: hv: support reporting serial number as slot information")

Thanks,
-- Dexuan

2019-07-03 04:42:03

by Dexuan Cui

[permalink] [raw]
Subject: RE: [PATCH] PCI: hv: fix pci-hyperv build, depends on SYSFS

> From: [email protected]
> <[email protected]> On Behalf Of Randy Dunlap
> Sent: Tuesday, July 2, 2019 8:25 PM
> To: Matthew Wilcox <[email protected]>
> Cc: LKML <[email protected]>; [email protected]; Jake
> Oshins <[email protected]>; KY Srinivasan <[email protected]>; Haiyang
> Zhang <[email protected]>; Stephen Hemminger
> <[email protected]>; Sasha Levin <[email protected]>; linux-pci
> <[email protected]>; Bjorn Helgaas <[email protected]>
> Subject: Re: [PATCH] PCI: hv: fix pci-hyperv build, depends on SYSFS
>
> On 7/2/19 5:15 PM, Matthew Wilcox wrote:
> > On Tue, Jul 02, 2019 at 04:24:30PM -0700, Randy Dunlap wrote:
> >> From: Randy Dunlap <[email protected]>
> >>
> >> 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.
> >
> > I wonder if we shouldn't rather provide no-op versions of
> > pci_create|destroy_slot for when SYSFS is not set?
> >
>
> Makes sense. I'm test-building that now.
>
> --
> ~Randy

+ Yuehaibing, who submitted a similar patch, which I guess is neglected
at the end of the discussion last month:

https://lkml.org/lkml/2019/5/31/559
https://lkml.org/lkml/2019/6/14/784
https://lkml.org/lkml/2019/6/15/24

Thanks,
-- Dexuan

2019-07-03 05:06:14

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH] PCI: hv: fix pci-hyperv build, depends on SYSFS

On 7/2/19 9:33 PM, Dexuan Cui wrote:
>> From: [email protected]
>> <[email protected]> On Behalf Of Randy Dunlap
>> Sent: Tuesday, July 2, 2019 4:25 PM
>> 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: 4daace0d8ce8 ("PCI: hv: Add paravirtual PCI front-end for Microsoft
>> Hyper-V VMs")
>
> I think the Fixes tag should be:
> Fixes: a15f2c08c708 ("PCI: hv: support reporting serial number as slot information")
>
> Thanks,
> -- Dexuan
>

Thanks. I did have a little trouble with that.

--
~Randy