https://bugzilla.redhat.com/show_bug.cgi?id=1447169
With this patch users can cold plug a watchdog. Things are pretty
simple because a domain can have at most one watchdog device.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
src/qemu/qemu_driver.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index b7824512c..583908972 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -7842,6 +7842,7 @@ qemuDomainAttachDeviceConfig(virDomainDefPtr vmdef,
virDomainFSDefPtr fs;
virDomainRedirdevDefPtr redirdev;
virDomainShmemDefPtr shmem;
+ virDomainWatchdogDefPtr watchdog;
switch ((virDomainDeviceType) dev->type) {
case VIR_DOMAIN_DEVICE_DISK:
@@ -7978,10 +7979,20 @@ qemuDomainAttachDeviceConfig(virDomainDefPtr vmdef,
dev->data.shmem = NULL;
break;
+ case VIR_DOMAIN_DEVICE_WATCHDOG:
+ watchdog = dev->data.watchdog;
+ if (vmdef->watchdog) {
+ virReportError(VIR_ERR_OPERATION_INVALID, "%s",
+ _("domain already has a watchdog"));
+ return -1;
+ }
+ vmdef->watchdog = watchdog;
+ dev->data.watchdog = NULL;
+ break;
+
case VIR_DOMAIN_DEVICE_INPUT:
case VIR_DOMAIN_DEVICE_SOUND:
case VIR_DOMAIN_DEVICE_VIDEO:
- case VIR_DOMAIN_DEVICE_WATCHDOG:
case VIR_DOMAIN_DEVICE_GRAPHICS:
case VIR_DOMAIN_DEVICE_HUB:
case VIR_DOMAIN_DEVICE_SMARTCARD:
--
2.13.5
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
On 09/05/2017 07:45 AM, Michal Privoznik wrote:
> https://bugzilla.redhat.com/show_bug.cgi?id=1447169
>
> With this patch users can cold plug a watchdog. Things are pretty
> simple because a domain can have at most one watchdog device.
>
> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
> ---
> src/qemu/qemu_driver.c | 13 ++++++++++++-
> 1 file changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index b7824512c..583908972 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -7842,6 +7842,7 @@ qemuDomainAttachDeviceConfig(virDomainDefPtr vmdef,
> virDomainFSDefPtr fs;
> virDomainRedirdevDefPtr redirdev;
> virDomainShmemDefPtr shmem;
> + virDomainWatchdogDefPtr watchdog;
>
> switch ((virDomainDeviceType) dev->type) {
> case VIR_DOMAIN_DEVICE_DISK:
> @@ -7978,10 +7979,20 @@ qemuDomainAttachDeviceConfig(virDomainDefPtr vmdef,
> dev->data.shmem = NULL;
> break;
>
> + case VIR_DOMAIN_DEVICE_WATCHDOG:
> + watchdog = dev->data.watchdog;
> + if (vmdef->watchdog) {
> + virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> + _("domain already has a watchdog"));
> + return -1;
> + }
> + vmdef->watchdog = watchdog;
> + dev->data.watchdog = NULL;
Couldn't this just simply be:
VIR_STEAL_PTR(vmdef->watchdog, dev->data.watchdog);
the local @watchdog wouldn't be necessary then either...
Reviewed-by: John Ferlan <jferlan@redhat.com>
John
> + break;
> +
> case VIR_DOMAIN_DEVICE_INPUT:
> case VIR_DOMAIN_DEVICE_SOUND:
> case VIR_DOMAIN_DEVICE_VIDEO:
> - case VIR_DOMAIN_DEVICE_WATCHDOG:
> case VIR_DOMAIN_DEVICE_GRAPHICS:
> case VIR_DOMAIN_DEVICE_HUB:
> case VIR_DOMAIN_DEVICE_SMARTCARD:
>
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
On 09/12/2017 03:26 PM, John Ferlan wrote:
>
>
> On 09/05/2017 07:45 AM, Michal Privoznik wrote:
>> https://bugzilla.redhat.com/show_bug.cgi?id=1447169
>>
>> With this patch users can cold plug a watchdog. Things are pretty
>> simple because a domain can have at most one watchdog device.
>>
>> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
>> ---
>> src/qemu/qemu_driver.c | 13 ++++++++++++-
>> 1 file changed, 12 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
>> index b7824512c..583908972 100644
>> --- a/src/qemu/qemu_driver.c
>> +++ b/src/qemu/qemu_driver.c
>> @@ -7842,6 +7842,7 @@ qemuDomainAttachDeviceConfig(virDomainDefPtr vmdef,
>> virDomainFSDefPtr fs;
>> virDomainRedirdevDefPtr redirdev;
>> virDomainShmemDefPtr shmem;
>> + virDomainWatchdogDefPtr watchdog;
>>
>> switch ((virDomainDeviceType) dev->type) {
>> case VIR_DOMAIN_DEVICE_DISK:
>> @@ -7978,10 +7979,20 @@ qemuDomainAttachDeviceConfig(virDomainDefPtr vmdef,
>> dev->data.shmem = NULL;
>> break;
>>
>> + case VIR_DOMAIN_DEVICE_WATCHDOG:
>> + watchdog = dev->data.watchdog;
>> + if (vmdef->watchdog) {
>> + virReportError(VIR_ERR_OPERATION_INVALID, "%s",
>> + _("domain already has a watchdog"));
>> + return -1;
>> + }
>> + vmdef->watchdog = watchdog;
>> + dev->data.watchdog = NULL;
>
> Couldn't this just simply be:
>
> VIR_STEAL_PTR(vmdef->watchdog, dev->data.watchdog);
>
> the local @watchdog wouldn't be necessary then either...
Oh right. For some reason I can not get used to these macros.
>
> Reviewed-by: John Ferlan <jferlan@redhat.com>
Fixed and pushed, thanks.
Michal
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
© 2016 - 2026 Red Hat, Inc.