[libvirt PATCH 0/2] Minor fixes to new mdev apis

A couple issues with the recently merged mdev patch series that were caught by Daniel Berrange. Jonathon Jongsma (2): nodedev: fix release version in comments for new API api: Add 'flags' param to virNodeDeviceCreate/Undefine() include/libvirt/libvirt-nodedev.h | 6 ++++-- src/driver-nodedev.h | 6 ++++-- src/libvirt-nodedev.c | 16 ++++++++++------ src/node_device/node_device_driver.c | 10 ++++++++-- src/node_device/node_device_driver.h | 6 ++++-- src/node_device/node_device_udev.c | 6 +++--- src/remote/remote_driver.c | 6 +++--- src/remote/remote_protocol.x | 2 ++ src/remote_protocol-structs | 2 ++ tools/virsh-nodedev.c | 4 ++-- 10 files changed, 42 insertions(+), 22 deletions(-) -- 2.26.3

The comments mistakenly say 7.2.0, when they were actually merged during the 7.3 development cycle. Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com> --- src/node_device/node_device_udev.c | 6 +++--- src/remote/remote_driver.c | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c index 77b5a56f3d..7d4e8f5c0b 100644 --- a/src/node_device/node_device_udev.c +++ b/src/node_device/node_device_udev.c @@ -2325,9 +2325,9 @@ static virNodeDeviceDriver udevNodeDeviceDriver = { .nodeDeviceListCaps = nodeDeviceListCaps, /* 0.7.3 */ .nodeDeviceCreateXML = nodeDeviceCreateXML, /* 0.7.3 */ .nodeDeviceDestroy = nodeDeviceDestroy, /* 0.7.3 */ - .nodeDeviceDefineXML = nodeDeviceDefineXML, /* 7.2.0 */ - .nodeDeviceUndefine = nodeDeviceUndefine, /* 7.2.0 */ - .nodeDeviceCreate = nodeDeviceCreate, /* 7.2.0 */ + .nodeDeviceDefineXML = nodeDeviceDefineXML, /* 7.3.0 */ + .nodeDeviceUndefine = nodeDeviceUndefine, /* 7.3.0 */ + .nodeDeviceCreate = nodeDeviceCreate, /* 7.3.0 */ }; diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index 31b293ac4a..82e4fba7a1 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -8696,9 +8696,9 @@ static virNodeDeviceDriver node_device_driver = { .nodeDeviceNumOfCaps = remoteNodeDeviceNumOfCaps, /* 0.5.0 */ .nodeDeviceListCaps = remoteNodeDeviceListCaps, /* 0.5.0 */ .nodeDeviceCreateXML = remoteNodeDeviceCreateXML, /* 0.6.3 */ - .nodeDeviceCreate = remoteNodeDeviceCreate, /* 7.2.0 */ - .nodeDeviceDefineXML = remoteNodeDeviceDefineXML, /* 7.2.0 */ - .nodeDeviceUndefine = remoteNodeDeviceUndefine, /* 7.2.0 */ + .nodeDeviceCreate = remoteNodeDeviceCreate, /* 7.3.0 */ + .nodeDeviceDefineXML = remoteNodeDeviceDefineXML, /* 7.3.0 */ + .nodeDeviceUndefine = remoteNodeDeviceUndefine, /* 7.3.0 */ .nodeDeviceDestroy = remoteNodeDeviceDestroy /* 0.6.3 */ }; -- 2.26.3

On Fri, Apr 09, 2021 at 11:04:46AM -0500, Jonathon Jongsma wrote:
The comments mistakenly say 7.2.0, when they were actually merged during the 7.3 development cycle.
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com> --- src/node_device/node_device_udev.c | 6 +++--- src/remote/remote_driver.c | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

Follow best practices and add a unsigned int flags parameter to these new APIs that have not been in a release yet. Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com> --- include/libvirt/libvirt-nodedev.h | 6 ++++-- src/driver-nodedev.h | 6 ++++-- src/libvirt-nodedev.c | 16 ++++++++++------ src/node_device/node_device_driver.c | 10 ++++++++-- src/node_device/node_device_driver.h | 6 ++++-- src/remote/remote_protocol.x | 2 ++ src/remote_protocol-structs | 2 ++ tools/virsh-nodedev.c | 4 ++-- 8 files changed, 36 insertions(+), 16 deletions(-) diff --git a/include/libvirt/libvirt-nodedev.h b/include/libvirt/libvirt-nodedev.h index cf51c3d085..067d914d37 100644 --- a/include/libvirt/libvirt-nodedev.h +++ b/include/libvirt/libvirt-nodedev.h @@ -135,9 +135,11 @@ virNodeDevicePtr virNodeDeviceDefineXML(virConnectPtr conn, const char *xmlDesc, unsigned int flags); -int virNodeDeviceUndefine(virNodeDevicePtr dev); +int virNodeDeviceUndefine(virNodeDevicePtr dev, + unsigned int flags); -int virNodeDeviceCreate(virNodeDevicePtr dev); +int virNodeDeviceCreate(virNodeDevicePtr dev, + unsigned int flags); /** * VIR_NODE_DEVICE_EVENT_CALLBACK: diff --git a/src/driver-nodedev.h b/src/driver-nodedev.h index d2c7f7fe17..75464943a5 100644 --- a/src/driver-nodedev.h +++ b/src/driver-nodedev.h @@ -80,10 +80,12 @@ typedef virNodeDevicePtr unsigned int flags); typedef int -(*virDrvNodeDeviceUndefine)(virNodeDevicePtr dev); +(*virDrvNodeDeviceUndefine)(virNodeDevicePtr dev, + unsigned int flags); typedef int -(*virDrvNodeDeviceCreate)(virNodeDevicePtr dev); +(*virDrvNodeDeviceCreate)(virNodeDevicePtr dev, + unsigned int flags); typedef int (*virDrvConnectNodeDeviceEventRegisterAny)(virConnectPtr conn, diff --git a/src/libvirt-nodedev.c b/src/libvirt-nodedev.c index 477232f630..e416c12534 100644 --- a/src/libvirt-nodedev.c +++ b/src/libvirt-nodedev.c @@ -782,6 +782,7 @@ virNodeDeviceDefineXML(virConnectPtr conn, /** * virNodeDeviceUndefine: * @dev: a device object + * @flags: extra flags; not used yet, so callers should always pass 0 * * Undefine the device object. The virtual device is removed from the host * operating system. This function may require privileged access. @@ -789,9 +790,10 @@ virNodeDeviceDefineXML(virConnectPtr conn, * Returns 0 in case of success and -1 in case of failure. */ int -virNodeDeviceUndefine(virNodeDevicePtr dev) +virNodeDeviceUndefine(virNodeDevicePtr dev, + unsigned int flags) { - VIR_DEBUG("dev=%p", dev); + VIR_DEBUG("dev=%p, flags=0x%x", dev, flags); virResetLastError(); @@ -800,7 +802,7 @@ virNodeDeviceUndefine(virNodeDevicePtr dev) if (dev->conn->nodeDeviceDriver && dev->conn->nodeDeviceDriver->nodeDeviceUndefine) { - int retval = dev->conn->nodeDeviceDriver->nodeDeviceUndefine(dev); + int retval = dev->conn->nodeDeviceDriver->nodeDeviceUndefine(dev, flags); if (retval < 0) goto error; @@ -818,15 +820,17 @@ virNodeDeviceUndefine(virNodeDevicePtr dev) /** * virNodeDeviceCreate: * @dev: a device object + * @flags: extra flags; not used yet, so callers should always pass 0 * * Start a defined node device: * * Returns 0 in case of success and -1 in case of failure. */ int -virNodeDeviceCreate(virNodeDevicePtr dev) +virNodeDeviceCreate(virNodeDevicePtr dev, + unsigned int flags) { - VIR_DEBUG("dev=%p", dev); + VIR_DEBUG("dev=%p, flags=0x%x", dev, flags); virResetLastError(); @@ -835,7 +839,7 @@ virNodeDeviceCreate(virNodeDevicePtr dev) if (dev->conn->nodeDeviceDriver && dev->conn->nodeDeviceDriver->nodeDeviceCreate) { - int retval = dev->conn->nodeDeviceDriver->nodeDeviceCreate(dev); + int retval = dev->conn->nodeDeviceDriver->nodeDeviceCreate(dev, flags); if (retval < 0) goto error; diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c index 951a77f902..c11b8d89ab 100644 --- a/src/node_device/node_device_driver.c +++ b/src/node_device/node_device_driver.c @@ -1341,12 +1341,15 @@ nodeDeviceDefineXML(virConnect *conn, int -nodeDeviceUndefine(virNodeDevice *device) +nodeDeviceUndefine(virNodeDevice *device, + unsigned int flags) { int ret = -1; virNodeDeviceObj *obj = NULL; virNodeDeviceDef *def; + virCheckFlags(0, -1); + if (nodeDeviceWaitInit() < 0) return -1; @@ -1387,12 +1390,15 @@ nodeDeviceUndefine(virNodeDevice *device) int -nodeDeviceCreate(virNodeDevice *device) +nodeDeviceCreate(virNodeDevice *device, + unsigned int flags) { int ret = -1; virNodeDeviceObj *obj = NULL; virNodeDeviceDef *def = NULL; + virCheckFlags(0, -1); + if (!(obj = nodeDeviceObjFindByName(device->name))) return -1; diff --git a/src/node_device/node_device_driver.h b/src/node_device/node_device_driver.h index 4d10be2611..8a935ffed6 100644 --- a/src/node_device/node_device_driver.h +++ b/src/node_device/node_device_driver.h @@ -108,7 +108,8 @@ nodeDeviceDefineXML(virConnect *conn, unsigned int flags); int -nodeDeviceUndefine(virNodeDevice *dev); +nodeDeviceUndefine(virNodeDevice *dev, + unsigned int flags); int nodeConnectNodeDeviceEventRegisterAny(virConnectPtr conn, @@ -165,4 +166,5 @@ nodeDeviceGetMdevctlCreateCommand(const char *uuid, char **errmsg); int -nodeDeviceCreate(virNodeDevice *dev); +nodeDeviceCreate(virNodeDevice *dev, + unsigned int flags); diff --git a/src/remote/remote_protocol.x b/src/remote/remote_protocol.x index ecfc708fb7..de69704b68 100644 --- a/src/remote/remote_protocol.x +++ b/src/remote/remote_protocol.x @@ -2156,10 +2156,12 @@ struct remote_node_device_define_xml_ret { struct remote_node_device_undefine_args { remote_nonnull_string name; + unsigned int flags; }; struct remote_node_device_create_args { remote_nonnull_string name; + unsigned int flags; }; diff --git a/src/remote_protocol-structs b/src/remote_protocol-structs index 15bd7ae8f0..6b46328adc 100644 --- a/src/remote_protocol-structs +++ b/src/remote_protocol-structs @@ -1609,9 +1609,11 @@ struct remote_node_device_define_xml_ret { }; struct remote_node_device_undefine_args { remote_nonnull_string name; + u_int flags; }; struct remote_node_device_create_args { remote_nonnull_string name; + u_int flags; }; struct remote_connect_domain_event_register_ret { int cb_registered; diff --git a/tools/virsh-nodedev.c b/tools/virsh-nodedev.c index e13c15b4b0..8b59b1f452 100644 --- a/tools/virsh-nodedev.c +++ b/tools/virsh-nodedev.c @@ -1045,7 +1045,7 @@ cmdNodeDeviceUndefine(vshControl *ctl, const vshCmd *cmd G_GNUC_UNUSED) if (!dev) goto cleanup; - if (virNodeDeviceUndefine(dev) == 0) { + if (virNodeDeviceUndefine(dev, 0) == 0) { vshPrintExtra(ctl, _("Undefined node device '%s'\n"), device_value); } else { vshError(ctl, _("Failed to undefine node device '%s'"), device_value); @@ -1151,7 +1151,7 @@ cmdNodeDeviceStart(vshControl *ctl, const vshCmd *cmd) return false; } - if (virNodeDeviceCreate(device) == 0) { + if (virNodeDeviceCreate(device, 0) == 0) { vshPrintExtra(ctl, _("Device %s started\n"), name); } else { vshError(ctl, _("Failed to start device %s"), name); -- 2.26.3

On Fri, Apr 09, 2021 at 11:04:47AM -0500, Jonathon Jongsma wrote:
Follow best practices and add a unsigned int flags parameter to these new APIs that have not been in a release yet.
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com> --- include/libvirt/libvirt-nodedev.h | 6 ++++-- src/driver-nodedev.h | 6 ++++-- src/libvirt-nodedev.c | 16 ++++++++++------ src/node_device/node_device_driver.c | 10 ++++++++-- src/node_device/node_device_driver.h | 6 ++++-- src/remote/remote_protocol.x | 2 ++ src/remote_protocol-structs | 2 ++ tools/virsh-nodedev.c | 4 ++-- 8 files changed, 36 insertions(+), 16 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
participants (2)
-
Daniel P. Berrangé
-
Jonathon Jongsma