[PATCH 0/4] USB hostdev: allow addressing by port

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This resubmission splits up the previous patch into multiple patches and
incorporates review comments from Michal Prívozník.

Currently, only vendor/product and bus/device matching are supported for USB host
devices. Neither of these provide a stable and persistent way of assigning a guest
a specific host device. Vendor/product can be ambiguous. Device numbers change on
every enumeration.

This patch adds a bus/port matching, which allows a specific port on the host to be
specified using the dotted notation found in Linux's "devpath" sysfs attribute.

This patch is based on the previous work of Thomas Hebb: https://lists.libvirt.org/archives/list/devel@xxxxxxxxxxxxxxxxx/message/7U3HFUW3DGDOSF4RIBRZJINKFDYCE2ZH/

Resolves: https://gitlab.com/libvirt/libvirt/-/issues/513

Signed-off-by: Maximilian Martin <maximilian_martin@xxxxxx>

Maximilian Martin (4):
  virusb test data: add devpath files for port addressing
  domain_conf, virhostdev, virusb, virusb test: add bus/port matching
  schema: add USB port attribute
  docs: add description for USB port matching

 docs/formatdomain.rst                         |  29 ++--
 src/conf/domain_conf.c                        |  69 +++++++-
 src/conf/domain_conf.h                        |   1 +
 src/conf/schemas/domaincommon.rng             |  11 +-
 src/hypervisor/virhostdev.c                   | 131 +++++++++------
 src/libvirt_private.syms                      |   2 -
 src/util/virusb.c                             | 156 ++++++------------
 src/util/virusb.h                             |  32 ++--
 tests/virusbtest.c                            | 149 ++++++++++++-----
 .../sys_bus_usb/devices/1-1.5.3.1/devpath     |   1 +
 .../sys_bus_usb/devices/1-1.5.3.3/devpath     |   1 +
 .../sys_bus_usb/devices/1-1.5.3/devpath       |   1 +
 .../sys_bus_usb/devices/1-1.5.4/devpath       |   1 +
 .../sys_bus_usb/devices/1-1.5.5/devpath       |   1 +
 .../sys_bus_usb/devices/1-1.5.6/devpath       |   1 +
 .../sys_bus_usb/devices/1-1.5/devpath         |   1 +
 .../sys_bus_usb/devices/1-1.6/devpath         |   1 +
 .../sys_bus_usb/devices/1-1/devpath           |   1 +
 .../sys_bus_usb/devices/2-1.2/devpath         |   1 +
 .../sys_bus_usb/devices/2-1/devpath           |   1 +
 .../sys_bus_usb/devices/usb1/devpath          |   1 +
 .../sys_bus_usb/devices/usb2/devpath          |   1 +
 .../sys_bus_usb/devices/usb3/devpath          |   1 +
 .../sys_bus_usb/devices/usb4/devpath          |   1 +
 24 files changed, 351 insertions(+), 244 deletions(-)
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.1/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3.3/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.3/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.4/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.5/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5.6/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.5/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1.6/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/1-1/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1.2/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/2-1/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb1/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb2/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb3/devpath
 create mode 100644 tests/virusbtestdata/sys_bus_usb/devices/usb4/devpath

-- 
2.39.5




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux