[PATCH 4/5] hv: Reverse order of resources in hyperv_mmio

2016-02-24 Thread jakeo
From: Jake Oshins A patch later in this series allocates child nodes in this resource tree. For that to work, this tree needs to be sorted in ascending order. Signed-off-by: Jake Oshins --- drivers/hv/vmbus_drv.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/hv

[PATCH 5/5] hv: Track allocations of children of hv_vmbus in private resource tree

2016-02-24 Thread jakeo
From: Jake Oshins This patch changes vmbus_allocate_mmio() and vmbus_free_mmio() so that when child paravirtual devices allocate memory-mapped I/O space, they allocate it privately from a resource tree pointed at by hyperv_mmio and also by the public resource tree iomem_resource. This allows the

[PATCH 1/5] hv: Make a function to free mmio regions through vmbus

2016-02-24 Thread jakeo
From: Jake Oshins This patch introduces a function that reverses everything done by vmbus_allocate_mmio(). Existing code just called release_mem_region(). Future patches in this series require a more complex sequence of actions, so this function is introduced to wrap those actions. Signed-off-

[PATCH 2/5] hv: Lock access to hyperv_mmio resource tree

2016-02-24 Thread jakeo
From: Jake Oshins In existing code, this tree of resources is created in single-threaded code and never modified after it is created, and thus needs no locking. This patch introduces a semaphore for tree access, as other patches in this series introduce run-time modifications of this resource tr

[PATCH 0/5] hv: drivers: Ensure that bridge windows don't overlap

2016-02-24 Thread jakeo
From: Jake Oshins Hyper-V VMs expose paravirtual drivers through a mechanism called VMBus, which is managed by hv_vmbus.ko. For each paravirtual service instance, this driver exposes a new child device. Some of these child devices need memory address space, into which Hyper-V will map things li

[PATCH 3/5] hv: Use new vmbus_mmio_free() from client drivers.

2016-02-24 Thread jakeo
From: Jake Oshins This patch modifies all the callers of vmbus_mmio_allocate() to call vmbus_mmio_free() instead of release_mem_region(). Signed-off-by: Jake Oshins --- drivers/pci/host/pci-hyperv.c | 14 +++--- drivers/video/fbdev/hyperv_fb.c | 4 ++-- 2 files changed, 9 insertions

[PATCH] PCI: Remove usage of pci_domain_nr when the PCI bus doesn't yet exist

2016-02-24 Thread jakeo
From: Jake Oshins This patch fixes a race condition in this driver. Using the function pci_domain_nr() only works if the PCI bus has already been fully created. This patch just deletes one call site, as it was in debug prints which aren't strictly necessary. Another call site is changed to look

[PATCH RESEND v3 2/3] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2016-02-16 Thread jakeo
From: Jake Oshins This patch adds a second way of finding an IRQ domain associated with a root PCI bus. After looking to see if one can be found through the OF tree, it attempts to look up the IRQ domain through an fwnode_handle stored in the pci_sysdata struct. Signed-off-by: Jake Oshins ---

[PATCH RESEND v3 3/3] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2016-02-16 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

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

2016-02-16 Thread jakeo
From: Jake Oshins 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 wi

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

2016-02-16 Thread jakeo
From: Jake Oshins 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 --- arch/x86/include/asm/pci.h | 15 +++ include/linux/pci.h

[PATCH RESEND v2 3/3] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2016-02-09 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH RESEND v2 1/3] PCI: Add fwnode_handle to pci_sysdata

2016-02-09 Thread jakeo
From: Jake Oshins 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 --- arch/x86/include/asm/pci.h | 15 +++ include/linux/pci.h

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

2016-02-09 Thread jakeo
From: Jake Oshins This version incorporates feedback from Bjorn Helgaas and fixes a build break reported by the kbuild test robot. 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 incorport

[PATCH RESEND v2 2/3] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2016-02-09 Thread jakeo
From: Jake Oshins This patch adds a second way of finding an IRQ domain associated with a root PCI bus. After looking to see if one can be found through the OF tree, it attempts to look up the IRQ domain through an fwnode_handle stored in the pci_sysdata struct. Signed-off-by: Jake Oshins ---

[PATCH RESEND 3/3] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2016-02-02 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH RESEND 2/3] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2016-02-02 Thread jakeo
From: Jake Oshins This patch adds a second way of finding an IRQ domain associated with a root PCI bus. After looking to see if one can be found through the OF tree, it attempts to look up the IRQ domain through an fwnode_handle stored in the pci_sysdata struct. Signed-off-by: Jake Oshins ---

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

2016-02-02 Thread jakeo
From: Jake Oshins 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 ma

[PATCH RESEND 1/3] PCI: Add fwnode_handle to pci_sysdata

2016-02-02 Thread jakeo
From: Jake Oshins 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 --- arch/x86/include/asm/pci.h | 15 +++ drivers/pci/probe.c

[PATCH v10 6/7] drivers:hv: Define the channel type of Hyper-V PCI Express pass-through

2015-12-10 Thread jakeo
From: Jake Oshins This defines the channel type for PCI front-ends in Hyper-V VMs. Signed-off-by: Jake Oshins --- include/linux/hyperv.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index 24d0b65..c9a9eed 100644 --- a/include/

[PATCH v10 4/7] PCI: Add fwnode_handle to pci_sysdata

2015-12-10 Thread jakeo
From: Jake Oshins 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 --- arch/x86/include/asm/pci.h | 15 +++ drivers/pci/probe.c

[PATCH v10 0/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-12-10 Thread jakeo
From: Jake Oshins This version of the patch series removes warning when compiling x86 32-bit while still making it build cleanly for x64. First, export functions that allow correlating Hyper-V virtual processors and Linux cpus, along with the means for invoking a hypercall that targets interrupt

[PATCH v10 1/7] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num

2015-12-10 Thread jakeo
From: Jake Oshins This patch exposes the mapping between Linux CPU number and Hyper-V virtual processor number. This is necessary because the hypervisor needs to know which virtual processor to target when making a mapping in the Interrupt Redirection Table in the I/O MMU. Signed-off-by: Jake Os

[PATCH v10 3/7] PCI: Make it possible to implement a PCI MSI IRQ Domain in a module.

2015-12-10 Thread jakeo
From: Jake Oshins The Linux kernel already has the concpet of IRQ domain, wherein a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI

[PATCH v10 5/7] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2015-12-10 Thread jakeo
From: Jake Oshins This patch adds a second way of finding an IRQ domain associated with a root PCI bus. After looking to see if one can be found through the OF tree, it attempts to look up the IRQ domain through an fwnode_handle stored in the pci_sysdata struct. Signed-off-by: Jake Oshins ---

[PATCH v10 7/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-12-10 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH v10 2/7] drivers:hv: Export hv_do_hypercall()

2015-12-10 Thread jakeo
From: Jake Oshins This patch exposes the function that hv_vmbus.ko uses to make hypercalls. This is necessary for retargeting an interrupt when it is given a new affinity and vector. Signed-off-by: Jake Oshins --- drivers/hv/hv.c | 20 ++-- drivers/hv/hyperv_vmbus.h |

[PATCH v9 7/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-12-09 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH v9 5/7] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2015-12-09 Thread jakeo
From: Jake Oshins This patch adds a second way of finding an IRQ domain associated with a root PCI bus. After looking to see if one can be found through the OF tree, it attempts to look up the IRQ domain through an fwnode_handle stored in the pci_sysdata struct. Signed-off-by: Jake Oshins ---

[PATCH v9 0/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-12-09 Thread jakeo
From: Jake Oshins This version of the patch series removes warning when compiling x86 32-bit. First, export functions that allow correlating Hyper-V virtual processors and Linux cpus, along with the means for invoking a hypercall that targets interrupts at chosen vectors on specific cpus. Secon

[PATCH v9 3/7] PCI: Make it possible to implement a PCI MSI IRQ Domain in a module.

2015-12-09 Thread jakeo
From: Jake Oshins The Linux kernel already has the concpet of IRQ domain, wherein a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI

[PATCH v9 4/7] PCI: Add fwnode_handle to pci_sysdata

2015-12-09 Thread jakeo
From: Jake Oshins 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 --- arch/x86/include/asm/pci.h | 15 +++ drivers/pci/probe.c

[PATCH v9 1/7] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num

2015-12-09 Thread jakeo
From: Jake Oshins This patch exposes the mapping between Linux CPU number and Hyper-V virtual processor number. This is necessary because the hypervisor needs to know which virtual processor to target when making a mapping in the Interrupt Redirection Table in the I/O MMU. Signed-off-by: Jake Os

[PATCH v9 6/7] drivers:hv: Define the channel type of Hyper-V PCI Express pass-through

2015-12-09 Thread jakeo
From: Jake Oshins This defines the channel type for PCI front-ends in Hyper-V VMs. Signed-off-by: Jake Oshins --- include/linux/hyperv.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index 24d0b65..c9a9eed 100644 --- a/include/

[PATCH v9 2/7] drivers:hv: Export hv_do_hypercall()

2015-12-09 Thread jakeo
From: Jake Oshins This patch exposes the function that hv_vmbus.ko uses to make hypercalls. This is necessary for retargeting an interrupt when it is given a new affinity and vector. Signed-off-by: Jake Oshins --- drivers/hv/hv.c | 20 ++-- drivers/hv/hyperv_vmbus.h |

[PATCH v8 6/7] drivers:hv: Define the channel type of Hyper-V PCI Express pass-through

2015-12-09 Thread jakeo
From: Jake Oshins This defines the channel type for PCI front-ends in Hyper-V VMs. Signed-off-by: Jake Oshins --- include/linux/hyperv.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index 24d0b65..c9a9eed 100644 --- a/include/

[PATCH v8 2/7] drivers:hv: Export hv_do_hypercall()

2015-12-09 Thread jakeo
From: Jake Oshins This patch exposes the function that hv_vmbus.ko uses to make hypercalls. This is necessary for retargeting an interrupt when it is given a new affinity and vector. Signed-off-by: Jake Oshins --- drivers/hv/hv.c | 20 ++-- drivers/hv/hyperv_vmbus.h |

[PATCH v8 0/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-12-09 Thread jakeo
From: Jake Oshins This version of the patch series incorporates feedback from Mark Zyngier, making this build on arm/arm64. First, export functions that allow correlating Hyper-V virtual processors and Linux cpus, along with the means for invoking a hypercall that targets interrupts at chosen ve

[PATCH v8 7/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-12-09 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH v8 4/7] PCI: Add fwnode_handle to pci_sysdata

2015-12-09 Thread jakeo
From: Jake Oshins 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 --- arch/x86/include/asm/pci.h | 15 +++ drivers/pci/probe.c

[PATCH v8 3/7] PCI: Make it possible to implement a PCI MSI IRQ Domain in a module.

2015-12-09 Thread jakeo
From: Jake Oshins The Linux kernel already has the concpet of IRQ domain, wherein a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI

[PATCH v8 1/7] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num

2015-12-09 Thread jakeo
From: Jake Oshins This patch exposes the mapping between Linux CPU number and Hyper-V virtual processor number. This is necessary because the hypervisor needs to know which virtual processor to target when making a mapping in the Interrupt Redirection Table in the I/O MMU. Signed-off-by: Jake Os

[PATCH v8 5/7] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2015-12-09 Thread jakeo
From: Jake Oshins This patch adds a second way of finding an IRQ domain associated with a root PCI bus. After looking to see if one can be found through the OF tree, it attempts to look up the IRQ domain through an fwnode_handle stored in the pci_sysdata struct. Signed-off-by: Jake Oshins ---

[PATCH v7 7/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-12-04 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH v7 1/7] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num

2015-12-04 Thread jakeo
From: Jake Oshins This patch exposes the mapping between Linux CPU number and Hyper-V virtual processor number. This is necessary because the hypervisor needs to know which virtual processor to target when making a mapping in the Interrupt Redirection Table in the I/O MMU. Signed-off-by: Jake Os

[PATCH v7 3/7] PCI: Make it possible to implement a PCI MSI IRQ Domain in a module.

2015-12-04 Thread jakeo
From: Jake Oshins The Linux kernel already has the concpet of IRQ domain, wherein a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI

[PATCH v7 4/7] PCI: Add fwnode_handle to pci_sysdata

2015-12-04 Thread jakeo
From: Jake Oshins 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 --- arch/x86/include/asm/pci.h | 15 +++ include/asm-generic/pci.h

[PATCH v7 0/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-12-04 Thread jakeo
From: Jake Oshins This version of the patch series incorporates feedback from Gerry Liu. First, export functions that allow correlating Hyper-V virtual processors and Linux cpus, along with the means for invoking a hypercall that targets interrupts at chosen vectors on specific cpus. Second, ma

[PATCH v7 5/7] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2015-12-04 Thread jakeo
From: Jake Oshins This patch adds a second way of finding an IRQ domain associated with a root PCI bus. After looking to see if one can be found through the OF tree, it attempts to look up the IRQ domain through an fwnode_handle stored in the pci_sysdata struct. Signed-off-by: Jake Oshins ---

[PATCH v7 6/7] drivers:hv: Define the channel type of Hyper-V PCI Express pass-through

2015-12-04 Thread jakeo
From: Jake Oshins This defines the channel type for PCI front-ends in Hyper-V VMs. Signed-off-by: Jake Oshins --- include/linux/hyperv.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index 24d0b65..c9a9eed 100644 --- a/include/

[PATCH v7 2/7] drivers:hv: Export hv_do_hypercall()

2015-12-04 Thread jakeo
From: Jake Oshins This patch exposes the function that hv_vmbus.ko uses to make hypercalls. This is necessary for retargeting an interrupt when it is given a new affinity and vector. Signed-off-by: Jake Oshins --- drivers/hv/hv.c | 20 ++-- drivers/hv/hyperv_vmbus.h |

[PATCH 1/1] drivers:hv: Allow for MMIO claims that span ACPI _CRS records

2015-11-09 Thread jakeo
From: Jake Oshins This patch makes 16GB GPUs work in Hyper-V VMs, since, for compatibility reasons, the Hyper-V BIOS lists MMIO ranges in 2GB chunks in its root bus's _CRS object. Signed-off-by: Jake Oshins --- drivers/hv/vmbus_drv.c | 16 1 file changed, 16 insertions(+) dif

[PATCH v6 6/7] drivers:hv: Define the channel type of Hyper-V PCI Express pass-through

2015-11-02 Thread jakeo
From: Jake Oshins This defines the channel type for PCI front-ends in Hyper-V VMs. Signed-off-by: Jake Oshins --- include/linux/hyperv.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index ea0a0e3..5587899 100644 --- a/include/

[PATCH v6 5/7] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2015-11-02 Thread jakeo
From: Jake Oshins This patch adds a second way of finding an IRQ domain associated with a root PCI bus. After looking to see if one can be found through the OF tree, it attempts to look up the IRQ domain through an fwnode_handle stored in the pci_sysdata struct. Signed-off-by: Jake Oshins ---

[PATCH v6 7/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-11-02 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH v6 2/7] drivers:hv: Export hv_do_hypercall()

2015-11-02 Thread jakeo
From: Jake Oshins This patch exposes the function that hv_vmbus.ko uses to make hypercalls. This is necessary for retargeting an interrupt when it is given a new affinity and vector. Signed-off-by: Jake Oshins --- drivers/hv/hv.c | 20 ++-- drivers/hv/hyperv_vmbus.h |

[PATCH v6 4/7] PCI: Add fwnode_handle to pci_sysdata

2015-11-02 Thread jakeo
From: Jake Oshins 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 --- arch/x86/include/asm/pci.h | 13 + include/asm-generic/pci.h |

[PATCH v6 3/7] PCI: Make it possible to implement a PCI MSI IRQ Domain in a module.

2015-11-02 Thread jakeo
From: Jake Oshins The Linux kernel already has the concpet of IRQ domain, whereing a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI

[PATCH v6 0/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-11-02 Thread jakeo
From: Jake Oshins This version of this patch series incorporates feedback from Andy Shevchenko. First, export functions that allow correlating Hyper-V virtual processors and Linux cpus, along with the means for invoking a hypercall that targets interrupts at chosen vectors on specfic cpus. Seco

[PATCH v6 1/7] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num

2015-11-02 Thread jakeo
From: Jake Oshins This patch exposes the mapping between Linux CPU number and Hyper-V virtual processor number. This is necessary because the hypervisor needs to know which virtual processor to target when making a mapping in the Interrupt Redirection Table in the I/O MMU. Signed-off-by: Jake Os

[PATCH v5 1/7] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num

2015-10-30 Thread jakeo
From: Jake Oshins This patch exposes the mapping between Linux CPU number and Hyper-V virtual processor number. This is necessary because the hypervisor needs to know which virtual processor to target when making a mapping in the Interrupt Redirection Table in the I/O MMU. Signed-off-by: Jake Os

[PATCH v5 2/7] drivers:hv: Export hv_do_hypercall()

2015-10-30 Thread jakeo
From: Jake Oshins This patch exposes the function that hv_vmbus.ko uses to make hypercalls. This is necessary for retargeting an interrupt when it is given a new affinity and vector. Signed-off-by: Jake Oshins --- drivers/hv/hv.c | 20 ++-- drivers/hv/hyperv_vmbus.h |

[PATCH v5 5/7] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2015-10-30 Thread jakeo
From: Jake Oshins This patch adds a second way of finding an IRQ domain associated with a root PCI bus. After looking to see if one can be found through the OF tree, it attempts to look up the IRQ domain through an fwnode_handle stored in the pci_sysdata struct. Signed-off-by: Jake Oshins ---

[PATCH v5 7/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-10-30 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH v5 6/7] drivers:hv: Define the channel type for Hyper-V PCI Express pass-through

2015-10-30 Thread jakeo
From: Jake Oshins This defines the channel type for PCI front-ends in Hyper-V VMs. Signed-off-by: Jake Oshins --- include/linux/hyperv.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index ea0a0e3..5587899 100644 --- a/include/

[PATCH v5 4/7] PCI: Add fwnode_handle to pci_sysdata

2015-10-30 Thread jakeo
From: Jake Oshins 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 --- arch/x86/include/asm/pci.h | 11 +++ 1 file changed, 11 insertions(

[PATCH v5 0/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-10-30 Thread jakeo
From: Jake Oshins This patch series incorporates feedback related to the version sent yesterday. First, export functions that allow correlating Hyper-V virtual processors and Linux cpus, along with the means for invoking a hypercall that targets interrupts at chosen vectors on specfic cpus. Sec

[PATCH v5 3/7] PCI: Make it possible to implement a PCI MSI IRQ Domain in a module.

2015-10-30 Thread jakeo
From: Jake Oshins The Linux kernel already has the concpet of IRQ domain, whereing a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI

[PATCH v4 6/7] drivers:hv: Define the channel type for Hyper-V PCI Express pass-through

2015-10-29 Thread jakeo
From: Jake Oshins This defines the channel type for PCI front-ends in Hyper-V VMs. Signed-off-by: Jake Oshins --- include/linux/hyperv.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index ea0a0e3..5587899 100644 --- a/include/

[PATCH v4 7/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-10-29 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH v4 0/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-10-29 Thread jakeo
From: Jake Oshins This patch series incorporates feedback from Gerry Liu (jiang@linux.intel.com). First, export functions that allow correlating Hyper-V virtual processors and Linux cpus, along with the means for invoking a hypercall that targets interrupts at chosen vectors on specfic cpus.

[PATCH v4 2/7] drivers:hv: Export hv_do_hypercall()

2015-10-29 Thread jakeo
From: Jake Oshins This patch exposes the function that hv_vmbus.ko uses to make hypercalls. This is necessary for retargeting an interrupt when it is given a new affinity and vector. Signed-off-by: Jake Oshins --- drivers/hv/hv.c | 20 ++-- drivers/hv/hyperv_vmbus.h |

[PATCH v4 5/7] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2015-10-29 Thread jakeo
From: Jake Oshins This patch adds a second way of finding an IRQ domain associated with a root PCI bus. After looking to see if one can be found through the OF tree, it attempts to look up the IRQ domain through an fwnode_handle stored in the pci_sysdata struct. Signed-off-by: Jake Oshins ---

[PATCH v4 3/7] PCI: Make it possible to implement a PCI MSI IRQ Domain in a module.

2015-10-29 Thread jakeo
From: Jake Oshins The Linux kernel already has the concpet of IRQ domain, whereing a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI

[PATCH v4 4/7] PCI: Add fwnode_handle to pci_sysdata

2015-10-29 Thread jakeo
From: Jake Oshins 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 --- arch/x86/include/asm/pci.h | 11 +++ 1 file changed, 11 insertions(

[PATCH v4 1/7] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num

2015-10-29 Thread jakeo
From: Jake Oshins This patch exposes the mapping between Linux CPU number and Hyper-V virtual processor number. This is necessary because the hypervisor needs to know which virtual processor to target when making a mapping in the Interrupt Redirection Table in the I/O MMU. Signed-off-by: Jake Os

[PATCH v3 7/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs

2015-10-26 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH v3 3/7] PCI: Make it possible to implement a PCI MSI IRQ Domain in a module.

2015-10-26 Thread jakeo
From: Jake Oshins The Linux kernel already has the concept of IRQ domain, wherein a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI

[PATCH v3 0/7] New paravirtual PCI front-end for Hyper-V VMs

2015-10-26 Thread jakeo
From: Jake Oshins This patch series updates the one sent on Sept. 10, mostly by rebasing on Mark Zyngier's changes around IRQ domains and the OF tree. First, export functions that allow correlating Hyper-V virtual processors and Linux cpus, along with the means for invoking a hypercall that targ

[PATCH v3 1/7] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num

2015-10-26 Thread jakeo
From: Jake Oshins This patch exposes the mapping between Linux CPU number and Hyper-V virtual processor number. This is necessary because the hypervisor needs to know which virtual processors to target when making a mapping in the Interrupt Redirection Table in the I/O MMU. Signed-off-by: Jake O

[PATCH v3 6/7] drivers:hv: Define the channel type for Hyper-V PCI Express pass-through

2015-10-26 Thread jakeo
From: Jake Oshins This defines the channel type for PCI front-ends in Hyper-V VMs. Signed-off-by: Jake Oshins --- include/linux/hyperv.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index ea0a0e3..5587899 100644 --- a/include/

[PATCH v3 2/7] drivers:hv: Export hv_do_hypercall()

2015-10-26 Thread jakeo
From: Jake Oshins This patch exposes the function that hv_vmbus.ko uses to make hypercalls. This is necessary for retargeting an interrupt when it is given a new affinity. Signed-off-by: Jake Oshins --- drivers/hv/hv.c | 20 ++-- drivers/hv/hyperv_vmbus.h | 2 +- inc

[PATCH v3 4/7] PCI: Record an fwnode associated with root PCI buses, optionally

2015-10-26 Thread jakeo
From: Jake Oshins This patch allows a PCI front-end implementation to supply an fwnode_handle associated with a root PCI bus, optionally. If supplied, the PCI driver records this. This patch supports the next patch in the series, which looks up an IRQ domain through this handle. Signed-off-by:

[PATCH v3 5/7] PCI: irqdomain: Look up IRQ domain by fwnode_handle

2015-10-26 Thread jakeo
From: Jake Oshins The existing PCI code looks for an IRQ domain associated with a root PCI bus by looking in the Open Firmware tree. This patch introduces a second way to identify the associated IRQ domain, if the lookup in the OF tree fails. The handle used for the IRQ domain lookup was introdu

[PATCH v2 11/11] drivers:pci:hv: New paravirtual PCI front-end for Hyper-V VMs

2015-09-10 Thread jakeo
From: Jake Oshins This patch introduces a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within the driver.

[PATCH v2 09/11] kernel:irq: Implement msi match function

2015-09-10 Thread jakeo
From: Jake Oshins Previous patches in this series introduced the concept of ranked matches of IRQ domains, where a default implementation ranks low and a specific implementation might rank higher, overriding the default. This patch supplies a match function for use by any IRQ domain derived from

[PATCH v2 06/12] drivers:hv: Export do_hypercall()

2015-09-10 Thread jakeo
From: Jake Oshins This patch exposes the function that hv_vmbus.ko uses to make hypercalls. This is necessary for retargeting an interrupt when it is given a new affinity. Signed-off-by: Jake Oshins --- drivers/hv/hv.c| 3 ++- include/linux/hyperv.h | 1 + 2 files changed, 3 insertion

[PATCH v2 08/12] drivers:pci:msi: Store PCI domain (segment) as part of IRQ domain

2015-09-10 Thread jakeo
From: Jake Oshins In order to allow an MSI IRQ domain to be specific to a PCI domain, add a field to the struct that tracks the PCI domain. Signed-off-by: Jake Oshins --- include/linux/msi.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/linux/msi.h b/include/linux/msi.h index a

[PATCH v2 10/11] drivers:hv: Define the channel type for Hyper-V PCI Express pass-through

2015-09-10 Thread jakeo
From: Jake Oshins This defines the channel type for PCI front-ends in Hyper-V VMs. Signed-off-by: Jake Oshins --- include/linux/hyperv.h | 11 +++ 1 file changed, 11 insertions(+) diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index 033fe59..af0f2e7 100644 --- a/include/

[PATCH v2 07/12] drivers:x86:pci: Make it possible to implement a PCI MSI IRQ Domain in a module.

2015-09-10 Thread jakeo
From: Jake Oshins The Linux kernel already has the concept of IRQ domain, wherein a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI

[PATCH v2 02/12] kernel:irq: Change signature of irq_find_matching_host()

2015-09-10 Thread jakeo
From: Jake Oshins In order to use the facility introduced in the last patch (the ability to match on both bus type and something that identifies the specific bus of that type,) irq_find_matching_host() needs to take that bus-specific parameter. Signed-off-by: Jake Oshins --- drivers/irqchip/ir

[PATCH v2 05/12] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num

2015-09-10 Thread jakeo
From: Jake Oshins This patch exposes the mapping between Linux CPU number and Hyper-V virtual processor number. This is necessary because the hypervisor needs to know which virtual processors to target when making a mapping in the Interrupt Redirection Table in the I/O MMU. Signed-off-by: Jake

[PATCH v2 04/12] drivers:pci: Add IRQ domain lookup by PCI domain

2015-09-10 Thread jakeo
From: Jake Oshins The PCI driver currently looks up IRQ domains for root PCI buses by walking up the Open Firmware tree looking for any that cover this particular PCI root. Since x86 PCs don't implement Open Firmware, this patch offers an alternative lookup by the PCI domain ID (known as "segment

[PATCH v2 03/12] kernel:irq: Allow for ranked matches on IRQ domains

2015-09-10 Thread jakeo
From: Jake Oshins The existing IRQ domain match code cycles through all the IRQ domains looking for the first one to return a non-zero value from its match() function. There's even a comment that says "this isn't a problem so far..." This patch changes the semantics on the match() function so t

[PATCH v2 01/12] kernel:irq: Change signature of irq_domain_ops match() method, adding *bus_data

2015-09-10 Thread jakeo
From: Jake Oshins The current irq_domain_ops allows an IRQ domain to match on bus type, but not a specific PCI bus heirarchy. This patch introduces a bus_data parameter, intended to allow a more specific match. This patch does nothing more than introduce that parameter and change all the imple

[PATCH v2 00/12] New paravirtual PCI front-end for Hyper-V VMs

2015-09-10 Thread jakeo
From: Jake Oshins The patch series updates the one sent about a month ago in three ways. It integrated with other IRQ domain work done in linux-next in that time, it distributes interrupts to multiple virtual processors in the guest VM, and it incorporates feedback from Thomas Gleixner and other

[PATCH 0/4] New Paravirtual front-end for PCI in a Hyper-V VM

2015-08-01 Thread jakeo
From: Jake Oshins This patch series exposes the primitives necessary for an interrupt domain in a module and then introduces a new driver. This driver exposes a root PCI bus when running in a Hyper-V VM for each device which is passed through to the VM from the physical host. This patch series

[PATCH 3/4] drivers:x86:pci: Make it possible to implement a PCI MSI IRQ Domain in a module.

2015-08-01 Thread jakeo
From: Jake Oshins The Linux kernel already has the concept of IRQ domain, wherein a component can expose a set of IRQs which are managed by a particular interrupt controller chip or other subsystem. The PCI driver exposes the notion of an IRQ domain for Message-Signaled Interrupts (MSI) from PCI

[PATCH 1/4] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num

2015-08-01 Thread jakeo
From: Jake Oshins This patch exposes the mapping between Linux CPU number and Hyper-V virtual processor number. This is necessary because the hypervisor needs to know which virtual processors to target when making a mapping in the Interrupt Redirection Table in the I/O MMU. Signed-off-by: Jake

[PATCH 4/4] drivers:pci:hv: New paravirtual PCI front-end for Hyper-V VMs

2015-08-01 Thread jakeo
From: Jake Oshins This patch introduces a driver which exposes a root PCI bus whenever a PCI Express device is passed through to a Hyper-V VM. The device can be single- or multi-function. The interrupts for the devices are managed by an IRQ domain, implemented within this driver. Signed-off-by

  1   2   >