While working on v2 of my series[1] intended to fix
https://bugzilla.redhat.com/show_bug.cgi?id=1272300
I'm running into some smaller stuff that isn't necessarily strictly
related to the issue at hand. The idea is to have this smaller patches
merged before the bigger, more invasive changes that series will bring,
and hopefully make it easier to review by laying down the groundwork
in advance.
The series is organized as follows:
1-2: remove function parameters that are either not inspected by the
function or never have an interesting value
3: change a string field that can only assume one of three values
to a proper enumeration
4: improve bookkeeping when detaching PCI devices from the host,
by making sure they always transition through the 'inactive'
state (when they're attached to the stub driver)
5: make sure we never try to reattach an unmanaged device to the
host, not even when recovering from a previous error
6: add some useful debug messages
I expect patches 1, 2 and 6 to be fairly uncontroversial and easy to
review; patch 3 is kinda big, but it's IMHO a nice improvement over
the current situation; patches 4 and 5 are small but definitely need
a long hard stare from a different pair of eyes to ensure they're not
breaking anything.
Cheers.
[1]
https://www.redhat.com/archives/libvir-list/2015-December/msg00070.html
Andrea Bolognani (6):
pci: Remove redundant parameter from virPCIDeviceBindToStub()
pci: Remove 'reprobe' parameter from virPCIDeviceUnbind()
pci: Introduce virPCIStubDriver enumeration
hostdev: Mark PCI devices as inactive as they're detached
hostdev: Only rollback detach of managed devices on error
hostdev: Emit debug messages while handling PCI hostdevs
src/libvirt_private.syms | 2 +
src/libxl/libxl_driver.c | 3 +-
src/qemu/qemu_driver.c | 6 +--
src/util/virhostdev.c | 107 ++++++++++++++++++++++++++++++-----------------
src/util/virpci.c | 102 ++++++++++++++++++++++----------------------
src/util/virpci.h | 18 +++++---
src/xen/xen_driver.c | 3 +-
tests/virhostdevtest.c | 5 ++-
tests/virpcitest.c | 35 ++++++++++------
9 files changed, 163 insertions(+), 118 deletions(-)
--
2.5.0