[v5,0/6] Fix PCI passthrough for HVM with stubdomain
mbox series

Message ID cover.537da3804adbe71352bed871578f3e893e2210c5.1563325215.git-series.marmarek@invisiblethingslab.com
Headers show
Series
  • Fix PCI passthrough for HVM with stubdomain
Related show

Message

Marek Marczykowski-Górecki July 17, 2019, 1 a.m. UTC
In this version, I add PHYSDEVOP_msi_control to allow stubdomain
enabling MSI after mapping it.

Related article:
https://www.qubes-os.org/news/2017/10/18/msi-support/

Changes in v2:
 - new "xen/x86: Allow stubdom access to irq created for msi" patch
 - applied review comments from v1
Changes is v3:
 - apply suggestions by Roger
 - add PHYSDEVOP_msi_msix_set_enable
Changes in v4:
 - implement suggestions by Wei, Roger, Jan
 - plug new physdevop into XSM
Changes in v5:
 - rebase on master
 - rename to PHYSDEVOP_msi_control
 - move granting access to IRQ into create_irq

---
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Wei Liu <wl@xen.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: George Dunlap <George.Dunlap@eu.citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien.grall@arm.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Tim Deegan <tim@xen.org>
Cc: Anthony PERARD <anthony.perard@citrix.com>
Cc: "Roger Pau Monné" <roger.pau@citrix.com>
Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Cc: Brian Woods <brian.woods@amd.com>
Cc: Kevin Tian <kevin.tian@intel.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>

Marek Marczykowski-Górecki (6):
  libxl: do not attach xen-pciback to HVM domain, if stubdomain is in use
  libxl: attach PCI device to qemu only after setting pciback/pcifront
  libxl: don't try to manipulate json config for stubdomain
  xen/x86: Allow stubdom access to irq created for msi.
  xen/x86: add PHYSDEVOP_msi_control
  tools/libxc: add wrapper for PHYSDEVOP_msi_control

 tools/libxc/include/xenctrl.h            |  6 ++-
 tools/libxc/xc_physdev.c                 | 19 ++++++++-
 tools/libxl/libxl_pci.c                  | 63 +++++++++++++++++--------
 xen/arch/x86/hpet.c                      |  3 +-
 xen/arch/x86/irq.c                       | 51 ++++++++++++++------
 xen/arch/x86/msi.c                       | 42 +++++++++++++++++-
 xen/arch/x86/physdev.c                   | 25 ++++++++++-
 xen/arch/x86/x86_64/physdev.c            |  4 ++-
 xen/common/irq.c                         |  1 +-
 xen/drivers/char/ns16550.c               |  2 +-
 xen/drivers/passthrough/amd/iommu_init.c |  2 +-
 xen/drivers/passthrough/pci.c            |  3 +-
 xen/drivers/passthrough/vtd/iommu.c      |  3 +-
 xen/include/asm-x86/irq.h                |  2 +-
 xen/include/asm-x86/msi.h                |  1 +-
 xen/include/public/physdev.h             | 16 ++++++-
 xen/include/xen/irq.h                    |  1 +-
 xen/include/xlat.lst                     |  1 +-
 xen/include/xsm/dummy.h                  |  7 +++-
 xen/include/xsm/xsm.h                    |  6 ++-
 xen/xsm/dummy.c                          |  1 +-
 xen/xsm/flask/hooks.c                    | 24 ++++++++++-
 xen/xsm/flask/policy/access_vectors      |  1 +-
 23 files changed, 246 insertions(+), 38 deletions(-)

base-commit: b541287c3600713feaaaf7608cd405e7b2e4efd0