RE: [PATCH net-next, 2/6] PCI: hv: Add a Hyper-V PCI mini driver for software backchannel interface
From: Haiyang Zhang <haiyangz@microsoft.com>
Date: 2019-08-16 14:48:55
Also in:
linux-hyperv, linux-pci, lkml
-----Original Message----- From: Vitaly Kuznetsov <vkuznets@redhat.com> Sent: Friday, August 16, 2019 8:28 AM To: Haiyang Zhang <haiyangz@microsoft.com>; sashal@kernel.org; davem@davemloft.net; saeedm@mellanox.com; leon@kernel.org; eranbe@mellanox.com; lorenzo.pieralisi@arm.com; bhelgaas@google.com; linux-pci@vger.kernel.org; linux-hyperv@vger.kernel.org; netdev@vger.kernel.org Cc: Haiyang Zhang <haiyangz@microsoft.com>; KY Srinivasan [off-list ref]; Stephen Hemminger [off-list ref]; linux-kernel@vger.kernel.org Subject: Re: [PATCH net-next, 2/6] PCI: hv: Add a Hyper-V PCI mini driver for software backchannel interface Haiyang Zhang [off-list ref] writes:quoted
This mini driver is a helper driver allows other drivers to have a common interface with the Hyper-V PCI frontend driver. Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Saeed Mahameed <redacted> --- MAINTAINERS | 1 + drivers/pci/Kconfig | 1 + drivers/pci/controller/Kconfig | 7 ++++ drivers/pci/controller/Makefile | 1 + drivers/pci/controller/pci-hyperv-mini.c | 70++++++++++++++++++++++++++++++++quoted
drivers/pci/controller/pci-hyperv.c | 12 ++++-- include/linux/hyperv.h | 30 ++++++++++---- 7 files changed, 111 insertions(+), 11 deletions(-) create mode 100644 drivers/pci/controller/pci-hyperv-mini.cdiff --git a/MAINTAINERS b/MAINTAINERS index e352550..c4962b9 100644 --- a/MAINTAINERS +++ b/MAINTAINERS@@ -7453,6 +7453,7 @@ F: drivers/hid/hid-hyperv.c F: drivers/hv/ F: drivers/input/serio/hyperv-keyboard.c F: drivers/pci/controller/pci-hyperv.c +F: drivers/pci/controller/pci-hyperv-mini.c F: drivers/net/hyperv/ F: drivers/scsi/storvsc_drv.c F: drivers/uio/uio_hv_generic.cdiff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig index2ab9240..bb852f5 100644--- a/drivers/pci/Kconfig +++ b/drivers/pci/Kconfig@@ -182,6 +182,7 @@ config PCI_LABEL config PCI_HYPERV tristate "Hyper-V PCI Frontend" depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN&"ed
X86_64 + select PCI_HYPERV_MINI help The PCI device frontend driver allows the kernel to import arbitrary PCI devices from a PCI backend to support PCI driver domains.diff --git a/drivers/pci/controller/Kconfigb/drivers/pci/controller/Kconfig index fe9f9f1..8e31cba 100644--- a/drivers/pci/controller/Kconfig +++ b/drivers/pci/controller/Kconfig@@ -281,5 +281,12 @@ config VMD To compile this driver as a module, choose M here: the module will be called vmd. +config PCI_HYPERV_MINI + tristate "Hyper-V PCI Mini" + depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN&& X86_64quoted
+ help + The Hyper-V PCI Mini is a helper driver allows other drivers to + have a common interface with the Hyper-V PCI frontend driver. +Out of pure curiosity, why not just export this interface from PCI_HYPERV directly? Why do we need this stub?
The pci_hyperv can only be loaded on VMs on Hyper-V and Azure. Other drivers like MLX5e will have symbolic dependency of pci_hyperv if they use functions exported by pci_hyperv. This dependency will cause other drivers fail to load on other platforms, like VMs on KVM. So we created this mini driver, which can be loaded on any platforms to provide the symbolic dependency. Thanks, - Haiyang