lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 11 Sep 2015 00:00:59 +0000
From:	jakeo@...rosoft.com
To:	gregkh@...uxfoundation.org, kys@...rosoft.com,
	linux-kernel@...r.kernel.org, devel@...uxdriverproject.org,
	olaf@...fle.de, apw@...onical.com, vkuznets@...hat.com,
	linux-pci@...r.kernel.org, bhelgaas@...gle.com, tglx@...utronix.de
Cc:	Jake Oshins <jakeo@...rosoft.com>
Subject: [PATCH v2 00/12] New paravirtual PCI front-end for Hyper-V VMs

From: Jake Oshins <jakeo@...rosoft.com>

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 others.

These patches change the IRQ domain code so that an IRQ domain can match on both
bus type and on the PCI domain.  The IRQ domain match code is modified so that
IRQ domains can have a "rank," allowing for a default one which matches every
x86 PC and more specific ones that replace the default.

The next step is to make it possible to implement an IRQ domain in a module,
by exporting a few functions.  This seems to make sense here, rather than
linking it into the kernel, because pulling it into the kernel would involve
pulling a lot of other Hyper-V-related code into the kernel, since the IRQ
domain implementation has to send messages to and receive messages from the
hypervisor, and those facilities are currently built as modules.

After that, a couple of new Hyper-V-related facilities are exported from 
hv_vmbus.ko, so that the PCI front end can correlate Linux CPUs with virtual
processor IDs and to make hypercalls.

The last patch is a new front-end driver that exposes new root PCI buses that
(virtually) contain devices being passed through into the VM.

Jake Oshins (12):
  kernel:irq:  Change signature of irq_domain_ops match() method, adding
    *bus_data
  kernel:irq: Change signature of irq_find_matching_host()
  kernel:irq: Allow for ranked matches on IRQ domains
  drivers:pci: Add IRQ domain lookup by PCI domain
  drivers:hv: Export a function that maps Linux CPU num onto Hyper-V
    proc num
  drivers:hv: Export do_hypercall()
  drivers:x86:pci: Make it possible to implement a PCI MSI IRQ Domain in
    a module.
  drivers:pci:msi: Store PCI domain (segment) as part of IRQ domain
  kernel:irq: Implement msi match function
  kernel:irq: Return a higher ranked match when the IRQ domain matches a
    specific PCI domain
  drivers:hv: Define the channel type for Hyper-V PCI Express
    pass-through
  drivers:pci:hv: New paravirtual PCI front-end for Hyper-V VMs

 MAINTAINERS                                      |    1 +
 arch/powerpc/platforms/512x/mpc5121_ads_cpld.c   |    2 +-
 arch/powerpc/platforms/cell/interrupt.c          |    2 +-
 arch/powerpc/platforms/embedded6xx/flipper-pic.c |    3 +-
 arch/powerpc/platforms/powermac/pic.c            |    3 +-
 arch/powerpc/platforms/powernv/opal-irqchip.c    |    2 +-
 arch/powerpc/platforms/ps3/interrupt.c           |    2 +-
 arch/powerpc/sysdev/ehv_pic.c                    |    3 +-
 arch/powerpc/sysdev/i8259.c                      |    2 +-
 arch/powerpc/sysdev/ipic.c                       |    2 +-
 arch/powerpc/sysdev/mpic.c                       |    2 +-
 arch/powerpc/sysdev/qe_lib/qe_ic.c               |    2 +-
 arch/powerpc/sysdev/xics/xics-common.c           |    2 +-
 arch/x86/include/asm/msi.h                       |    4 +
 arch/x86/kernel/apic/msi.c                       |    5 +-
 arch/x86/kernel/apic/vector.c                    |    2 +
 drivers/hv/hv.c                                  |    3 +-
 drivers/hv/vmbus_drv.c                           |   17 +
 drivers/irqchip/irq-gic-v3-its-pci-msi.c         |    2 +-
 drivers/irqchip/irq-gic-v3-its-platform-msi.c    |    2 +-
 drivers/of/irq.c                                 |    2 +-
 drivers/pci/Kconfig                              |    7 +
 drivers/pci/host/Makefile                        |    1 +
 drivers/pci/host/hv_pcifront.c                   | 2244 ++++++++++++++++++++++
 drivers/pci/msi.c                                |    2 +
 drivers/pci/of.c                                 |    2 +-
 drivers/pci/probe.c                              |   11 +
 include/linux/hyperv.h                           |   14 +
 include/linux/irqdomain.h                        |    9 +-
 include/linux/msi.h                              |    4 +
 kernel/irq/chip.c                                |    1 +
 kernel/irq/irqdomain.c                           |   48 +-
 kernel/irq/msi.c                                 |   24 +
 33 files changed, 2394 insertions(+), 38 deletions(-)
 create mode 100644 drivers/pci/host/hv_pcifront.c

-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ