Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1335880 > unrolled thread

[PATCH RESEND v3 0/3] PCI: hv: New paravirtual PCI front-end driver

Started byjakeo@microsoft.com
First post2016-02-16 23:00 +0100
Last post2016-02-17 18:30 +0100
Articles 3 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH RESEND v3 0/3] PCI: hv: New paravirtual PCI front-end driver jakeo@microsoft.com - 2016-02-16 23:00 +0100
    [PATCH RESEND v3 1/3] PCI: Add fwnode_handle to pci_sysdata jakeo@microsoft.com - 2016-02-16 23:00 +0100
    Re: [PATCH RESEND v3 0/3] PCI: hv: New paravirtual PCI front-end  driver Bjorn Helgaas <helgaas@kernel.org> - 2016-02-17 18:30 +0100

#1335880 — [PATCH RESEND v3 0/3] PCI: hv: New paravirtual PCI front-end driver

Fromjakeo@microsoft.com
Date2016-02-16 23:00 +0100
Subject[PATCH RESEND v3 0/3] PCI: hv: New paravirtual PCI front-end driver
Message-ID<r2VP6-5bH-15@gated-at.bofh.it>
From: Jake Oshins <jakeo@microsoft.com>

This version incorporates more feedback from Bjorn Helgaas.  Most notably,
I removed some debugging code and I consistently used architectural
means for getting the PCI domain instead of just reaching into the sysdata.

This is a resend of patches that enable PCI pass-through within Hyper-V
VMs.  This patch series only includes those which were deemed appropriate
for being incorportated via the PCI tree.  All other patches in previous
patch series have gone through other trees and are now in mainline.

The first two patches modify PCI so that new root PCI buses can be marked with
an associated fwnode_handle, and so that root PCI buses can look up their
associated IRQ domain by that handle.

The last patch, introduces a new driver, hv_pcifront, which exposes root PCI
buses in a Hyper-V VM.  These root PCI buses expose real PCIe devices, or PCI
Virtual Functions.

Jake Oshins (3):
  PCI: Add fwnode_handle to pci_sysdata
  PCI: irqdomain: Look up IRQ domain by fwnode_handle
  PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

 MAINTAINERS                   |    1 +
 arch/x86/include/asm/pci.h    |   15 +
 drivers/pci/Kconfig           |    7 +
 drivers/pci/host/Makefile     |    1 +
 drivers/pci/host/pci-hyperv.c | 2359 +++++++++++++++++++++++++++++++++++++++++
 drivers/pci/probe.c           |   15 +
 include/linux/pci.h           |    4 +
 7 files changed, 2402 insertions(+)
 create mode 100644 drivers/pci/host/pci-hyperv.c

--
1.9.1

[toc] | [next] | [standalone]


#1335884 — [PATCH RESEND v3 1/3] PCI: Add fwnode_handle to pci_sysdata

Fromjakeo@microsoft.com
Date2016-02-16 23:00 +0100
Subject[PATCH RESEND v3 1/3] PCI: Add fwnode_handle to pci_sysdata
Message-ID<r2VP7-5bH-57@gated-at.bofh.it>
In reply to#1335880
From: Jake Oshins <jakeo@microsoft.com>

This patch adds an fwnode_handle to struct pci_sysdata, which is
used by the next patch in the series when trying to locate an
IRQ domain associated with a root PCI bus.

Signed-off-by: Jake Oshins <jakeo@microsoft.com>
---
 arch/x86/include/asm/pci.h | 15 +++++++++++++++
 include/linux/pci.h        |  4 ++++
 2 files changed, 19 insertions(+)

diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h
index 4625943..6fc3c7c 100644
--- a/arch/x86/include/asm/pci.h
+++ b/arch/x86/include/asm/pci.h
@@ -20,6 +20,9 @@ struct pci_sysdata {
 #ifdef CONFIG_X86_64
 	void		*iommu;		/* IOMMU private data */
 #endif
+#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
+	void		*fwnode;	/* IRQ domain for MSI assignment */
+#endif
 };
 
 extern int pci_routeirq;
@@ -32,6 +35,7 @@ extern int noioapicreroute;
 static inline int pci_domain_nr(struct pci_bus *bus)
 {
 	struct pci_sysdata *sd = bus->sysdata;
+
 	return sd->domain;
 }
 
@@ -41,6 +45,17 @@ static inline int pci_proc_domain(struct pci_bus *bus)
 }
 #endif
 
+#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
+static inline void *_pci_root_bus_fwnode(struct pci_bus *bus)
+{
+	struct pci_sysdata *sd = bus->sysdata;
+
+	return sd->fwnode;
+}
+
+#define pci_root_bus_fwnode	_pci_root_bus_fwnode
+#endif
+
 /* Can be used to override the logic in pci_scan_bus for skipping
    already-configured bus numbers - to be used for buggy BIOSes
    or architectures with incomplete PCI setup by the loader */
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 27df4a6..1bb44af 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1515,6 +1515,10 @@ static inline int pci_get_new_domain_nr(void) { return -ENOSYS; }
 
 #include <asm/pci.h>
 
+#ifndef pci_root_bus_fwnode
+#define pci_root_bus_fwnode(bus)	NULL
+#endif
+
 /* these helpers provide future and backwards compatibility
  * for accessing popular PCI BAR info */
 #define pci_resource_start(dev, bar)	((dev)->resource[(bar)].start)
-- 
1.9.1

[toc] | [prev] | [next] | [standalone]


#1336602 — Re: [PATCH RESEND v3 0/3] PCI: hv: New paravirtual PCI front-end driver

FromBjorn Helgaas <helgaas@kernel.org>
Date2016-02-17 18:30 +0100
SubjectRe: [PATCH RESEND v3 0/3] PCI: hv: New paravirtual PCI front-end driver
Message-ID<r3e5l-19i-25@gated-at.bofh.it>
In reply to#1335880
On Tue, Feb 16, 2016 at 09:56:20PM +0000, jakeo@microsoft.com wrote:
> From: Jake Oshins <jakeo@microsoft.com>
> 
> This version incorporates more feedback from Bjorn Helgaas.  Most notably,
> I removed some debugging code and I consistently used architectural
> means for getting the PCI domain instead of just reaching into the sysdata.
> 
> This is a resend of patches that enable PCI pass-through within Hyper-V
> VMs.  This patch series only includes those which were deemed appropriate
> for being incorportated via the PCI tree.  All other patches in previous
> patch series have gone through other trees and are now in mainline.
> 
> The first two patches modify PCI so that new root PCI buses can be marked with
> an associated fwnode_handle, and so that root PCI buses can look up their
> associated IRQ domain by that handle.
> 
> The last patch, introduces a new driver, hv_pcifront, which exposes root PCI
> buses in a Hyper-V VM.  These root PCI buses expose real PCIe devices, or PCI
> Virtual Functions.
> 
> Jake Oshins (3):
>   PCI: Add fwnode_handle to pci_sysdata
>   PCI: irqdomain: Look up IRQ domain by fwnode_handle
>   PCI: hv: New paravirtual PCI front-end for Hyper-V VMs
> 
>  MAINTAINERS                   |    1 +
>  arch/x86/include/asm/pci.h    |   15 +
>  drivers/pci/Kconfig           |    7 +
>  drivers/pci/host/Makefile     |    1 +
>  drivers/pci/host/pci-hyperv.c | 2359 +++++++++++++++++++++++++++++++++++++++++
>  drivers/pci/probe.c           |   15 +
>  include/linux/pci.h           |    4 +
>  7 files changed, 2402 insertions(+)
>  create mode 100644 drivers/pci/host/pci-hyperv.c

Applied to pci/host-hv, thanks, Jake!

This is a new driver, and I don't think there's any risk of breaking
anything, so I think we should still be able to merge this for v4.5.

Bjorn

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web