]> git.ipfire.org Git - thirdparty/libvirt.git/log
thirdparty/libvirt.git
4 years agonode_device: mdev vfio-ccw support
Boris Fiuczynski [Mon, 14 Sep 2020 19:11:47 +0000 (21:11 +0200)] 
node_device: mdev vfio-ccw support

Allow vfio-ccw mdev devices to be created besides vfio-pci mdev devices
as well.

Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Bjoern Walk <bwalk@linux.ibm.com>
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
4 years agonode_device: detect DASD devices
Boris Fiuczynski [Mon, 14 Sep 2020 19:11:46 +0000 (21:11 +0200)] 
node_device: detect DASD devices

Make Direct Access Storage Devices (DASDs) available in the node_device driver.

Reviewed-by: Bjoern Walk <bwalk@linux.ibm.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
4 years agovirsh: nodedev: ability to filter CSS capabilities
Boris Fiuczynski [Mon, 14 Sep 2020 19:11:45 +0000 (21:11 +0200)] 
virsh: nodedev: ability to filter CSS capabilities

Allow to filter for CSS devices.

Reviewed-by: Bjoern Walk <bwalk@linux.ibm.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
4 years agonode_device: detect CSS devices
Boris Fiuczynski [Mon, 14 Sep 2020 19:11:44 +0000 (21:11 +0200)] 
node_device: detect CSS devices

Make channel subsystem (CSS) devices available in the node_device driver.
The CCS devices reside in the computer system and provide CCW devices, e.g.:

  +- css_0_0_003a
      |
      +- ccw_0_0_1a2b
          |
          +- scsi_host0
              |
              +- scsi_target0_0_0
                  |
                  +- scsi_0_0_0_0

Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Bjoern Walk <bwalk@linux.ibm.com>
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
4 years agonode_device: refactor udevProcessCCW
Boris Fiuczynski [Mon, 14 Sep 2020 19:11:43 +0000 (21:11 +0200)] 
node_device: refactor udevProcessCCW

Refactor out CCW address parsing for later reuse.

Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Bjoern Walk <bwalk@linux.ibm.com>
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
4 years agoqemuProcessReconnect: clear 'oldjob'
Ján Tomko [Mon, 14 Sep 2020 11:29:23 +0000 (13:29 +0200)] 
qemuProcessReconnect: clear 'oldjob'

After we started copying the privateData pointer in
qemuDomainObjRestoreJob, we should also free them
once we're done with them.

Register the clear function and use g_auto.
Also add a check for job->cb to qemuDomainObjClearJob,
to prevent freeing an uninitialized job.

https://bugzilla.redhat.com/show_bug.cgi?id=1878450

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Fixes: aca37c3fb2e8d733c2788ca4b796c153ea7ce391
4 years agoqemu: qemuDomainObjClearJob: use g_clear_pointer
Ján Tomko [Mon, 14 Sep 2020 11:22:46 +0000 (13:22 +0200)] 
qemu: qemuDomainObjClearJob: use g_clear_pointer

The function used g_clear_pointer for all but one pointer.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agoqemu: rename qemuDomainObjFreeJob -> qemuDomainObjClearJob
Ján Tomko [Mon, 14 Sep 2020 11:20:35 +0000 (13:20 +0200)] 
qemu: rename qemuDomainObjFreeJob -> qemuDomainObjClearJob

This function does not free the job.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agoutil: Remove VIR_ALLOC_N_QUIET
Tim Wiederhake [Mon, 14 Sep 2020 08:01:54 +0000 (10:01 +0200)] 
util: Remove VIR_ALLOC_N_QUIET

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agoutil: Use glib memory functions in virJSONValueGetArrayAsBitmap
Tim Wiederhake [Mon, 14 Sep 2020 08:01:53 +0000 (10:01 +0200)] 
util: Use glib memory functions in virJSONValueGetArrayAsBitmap

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agotests: Use glib memory function in testConfRoundTrip
Tim Wiederhake [Mon, 14 Sep 2020 08:01:52 +0000 (10:01 +0200)] 
tests: Use glib memory function in testConfRoundTrip

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agoutil: Remove VIR_ALLOC_QUIET
Tim Wiederhake [Mon, 14 Sep 2020 08:01:51 +0000 (10:01 +0200)] 
util: Remove VIR_ALLOC_QUIET

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agoutil: Use glib memory functions in virLastErrorObject
Tim Wiederhake [Mon, 14 Sep 2020 08:01:50 +0000 (10:01 +0200)] 
util: Use glib memory functions in virLastErrorObject

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agoutil: Use glib memory functions in virErrorCopyNew
Tim Wiederhake [Mon, 14 Sep 2020 08:01:49 +0000 (10:01 +0200)] 
util: Use glib memory functions in virErrorCopyNew

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agotests: Fix false positive in testConfRoundTrip
Tim Wiederhake [Mon, 14 Sep 2020 08:01:48 +0000 (10:01 +0200)] 
tests: Fix false positive in testConfRoundTrip

testConfRoundTrip would return 0 (success) if virConfWriteMem succeeded
and virTestCompareToFile failed.

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agovirsh: limit completion of checkpoint-{create, delete} to active domains
Lin Ma [Fri, 11 Sep 2020 07:13:18 +0000 (15:13 +0800)] 
virsh: limit completion of checkpoint-{create, delete} to active domains

Signed-off-by: Lin Ma <lma@suse.de>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: limit completion of backup-{begin, dumpxml} to active domains
Lin Ma [Fri, 11 Sep 2020 07:13:17 +0000 (15:13 +0800)] 
virsh: limit completion of backup-{begin, dumpxml} to active domains

Signed-off-by: Lin Ma <lma@suse.de>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: limit completion of net-port* to active networks
Lin Ma [Fri, 11 Sep 2020 07:13:16 +0000 (15:13 +0800)] 
virsh: limit completion of net-port* to active networks

Signed-off-by: Lin Ma <lma@suse.de>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: limit completion of net-dhcp-leases to active networks
Lin Ma [Fri, 11 Sep 2020 07:13:15 +0000 (15:13 +0800)] 
virsh: limit completion of net-dhcp-leases to active networks

Signed-off-by: Lin Ma <lma@suse.de>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: Add logical CPU list completion for --cpulist argument
Lin Ma [Fri, 11 Sep 2020 07:13:14 +0000 (15:13 +0800)] 
virsh: Add logical CPU list completion for --cpulist argument

Currently this patch works for the commands emulatorpin, iothreadpin and
vcpupin.

Signed-off-by: Lin Ma <lma@suse.de>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: Add vcpu list completion to setvcpu command
Lin Ma [Fri, 11 Sep 2020 07:13:13 +0000 (15:13 +0800)] 
virsh: Add vcpu list completion to setvcpu command

Signed-off-by: Lin Ma <lma@suse.de>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: Add vcpu IDs completion to vcpupin command
Lin Ma [Fri, 11 Sep 2020 07:13:12 +0000 (15:13 +0800)] 
virsh: Add vcpu IDs completion to vcpupin command

Signed-off-by: Lin Ma <lma@suse.de>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: Add iothread IDs completion to iothread* commands
Lin Ma [Fri, 11 Sep 2020 07:13:10 +0000 (15:13 +0800)] 
virsh: Add iothread IDs completion to iothread* commands

Signed-off-by: Lin Ma <lma@suse.de>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: Add domain uuid completion to domname command
Lin Ma [Fri, 11 Sep 2020 07:13:09 +0000 (15:13 +0800)] 
virsh: Add domain uuid completion to domname command

Signed-off-by: Lin Ma <lma@suse.de>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: Add network uuid completion to network-name command
Lin Ma [Fri, 11 Sep 2020 07:13:08 +0000 (15:13 +0800)] 
virsh: Add network uuid completion to network-name command

Signed-off-by: Lin Ma <lma@suse.de>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovshReadlineParse: Ignore vshReadlineOptionsGenerator for VSH_OT_INT options
Lin Ma [Fri, 11 Sep 2020 07:13:07 +0000 (15:13 +0800)] 
vshReadlineParse: Ignore vshReadlineOptionsGenerator for VSH_OT_INT options

Commit c7151b0 added the completion for VSH_OT_INT options, say '--cellno'
and '--pagesize', So we need to ignore VSH_OT_INT otherwise we get the
incorrect completion.

before:
 # virsh freepages --pagesize <TAB><TAB>
--all     --cellno  1GiB      2MiB      4KiB

after:
 # virsh freepages --pagesize <TAB><TAB>
1GiB  2MiB  4KiB

Signed-off-by: Lin Ma <lma@suse.de>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: Add event completer to --enable/--disable args of perf command
Lin Ma [Fri, 11 Sep 2020 07:13:06 +0000 (15:13 +0800)] 
virsh: Add event completer to --enable/--disable args of perf command

Signed-off-by: Lin Ma <lma@suse.de>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: checkpoint: Only return domains that have checkpoints
Lin Ma [Fri, 11 Sep 2020 07:13:05 +0000 (15:13 +0800)] 
virsh: checkpoint: Only return domains that have checkpoints

Signed-off-by: Lin Ma <lma@suse.de>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: managedsave-*: Only return domains that have a managed save image
Lin Ma [Fri, 11 Sep 2020 07:13:04 +0000 (15:13 +0800)] 
virsh: managedsave-*: Only return domains that have a managed save image

Signed-off-by: Lin Ma <lma@suse.de>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirsh: snapshot: Only return domains that have snapshot images
Lin Ma [Fri, 11 Sep 2020 07:13:03 +0000 (15:13 +0800)] 
virsh: snapshot: Only return domains that have snapshot images

Signed-off-by: Lin Ma <lma@suse.de>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agovirshDomainNameCompleter: Add some of VIR_CONNECT_LIST_DOMAINS_ flags
Lin Ma [Fri, 11 Sep 2020 07:13:02 +0000 (15:13 +0800)] 
virshDomainNameCompleter: Add some of VIR_CONNECT_LIST_DOMAINS_ flags

Commit 3b225256 removed unused VIR_CONNECT_LIST_DOMAINS_* flags, But some
of them will be used in upcoming patches, So add some of them back.

Signed-off-by: Lin Ma <lma@suse.de>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoutil: virNetDevTapCreate: initialize fd to -1
Ján Tomko [Mon, 14 Sep 2020 11:01:35 +0000 (13:01 +0200)] 
util: virNetDevTapCreate: initialize fd to -1

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Fixes: 95089f481e003d971fe0a082018216c58c1b80e5
4 years agoesx: improve some of the virErrorNumber used
Pino Toscano [Thu, 10 Sep 2020 13:24:02 +0000 (15:24 +0200)] 
esx: improve some of the virErrorNumber used

A lot of virReportError() calls use VIR_ERR_INTERNAL_ERROR to represent
the number of the error, even in cases where there is one fitting more.
Hence, replace some of them with better virErrorNumber values.

Signed-off-by: Pino Toscano <ptoscano@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
4 years agoesx: generator: fix free of elements in lists
Pino Toscano [Thu, 10 Sep 2020 13:08:24 +0000 (15:08 +0200)] 
esx: generator: fix free of elements in lists

When a list is freed, we iterate through all the items, invoking the
free function for each; the actual free function called for each element
is the function of the actual type of each element, and thus the @_next
pointer in the element struct has the same type as the element itself.
Currently, the free function gets the parent of the current element
type, and invoke its free function to continue freeing the list.
However, in case the hierarchy of the classes has more than 1 level
(i.e. Class <- SubClass <- SubSubClass), the invoked free function is
only the parent class' one, and not the actual base class of the
hierarchy.

To fix that, change the generator to get the base class of a class, and
invoking that instead.  Also, avoid to set the @_next back, as it is not
needed.

Fixes commits 5cff36e39ae691fbd7c40597df1732eecf294150 and
f76c6dde2e33233566e886d96e76b5fe0c102d9a.

Signed-off-by: Pino Toscano <ptoscano@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
4 years agoesx: implement domainGetHostname
Pino Toscano [Thu, 10 Sep 2020 12:35:39 +0000 (14:35 +0200)] 
esx: implement domainGetHostname

Implement the .domainGetHostname hypervisor driver API to get the
hostname of a running guest (needs VMware Tools).

Signed-off-by: Pino Toscano <ptoscano@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
4 years agonetwork: Only check kernel added routes in virNetDevIPCheckIPv6Forwarding
Ian Wienand [Fri, 11 Sep 2020 11:34:17 +0000 (21:34 +1000)] 
network: Only check kernel added routes in virNetDevIPCheckIPv6Forwarding

The original motivation for adding virNetDevIPCheckIPv6Forwarding
(commit 00d28a78b5) was that networking routes would disappear when
ipv6 forwarding was enabled for an interface.

This is a fairly undocumented side-effect of the "accept_ra" sysctl
for an interface.  1 means the interface will accept_ra's if not
forwarding, 2 means always accept_RAs; but it is not explained that
enabling forwarding when accept_ra==1 will also clear any kernel RA
assigned routes, very likely breaking your networking.

The check to warn about this currently uses netlink to go through all
the routes and then look at the accept_ra status of the interfaces.

However, it has been noticed that this problem does not affect systems
where IPv6 RA configuration is handled in userspace, e.g. via tools
such as NetworkManager.  In this case, the error message from libvirt
is spurious, and modifying the forwarding state will not affect the RA
state or disable your networking.

If you refer to the function rt6_purge_dflt_routers() in the kernel,
we can see that the routes being purged are only those with the
kernel's RTF_ADDRCONF flag set; that is, routes added by the kernel's
RA handling.  Why does it do this?  I think this is a Linux
implementation decision; it has always been like that and there are
some comments suggesting that it is because a router should be
statically configured, rather than accepting external configurations.

The solution implemented here is to convert the existing check into a
walk of /proc/net/ipv6_route (because RTF_ADDRCONF is apparently not
exposed in netlink) and look for routes with this flag set.  We then
check the accept_ra status for the interface, and if enabling
forwarding would break things raise an error.

This should hopefully avoid "interactive" users, who are likely to be
using NetworkManager and the like, having false warnings when enabling
IPv6, but retain the error check for users relying on kernel-based
IPv6 interface auto-configuration.

Signed-off-by: Ian Wienand <iwienand@redhat.com>
Reviewed-by: Laine Stump <laine@redhat.com>
Reviewed-by: Cedric Bosdonnat <CBosdonnat@suse.com>
4 years agodocs: virsh: Drop duplicate spelling for dompmwakeup
Lin Ma [Fri, 11 Sep 2020 07:06:19 +0000 (15:06 +0800)] 
docs: virsh: Drop duplicate spelling for dompmwakeup

Signed-off-by: Lin Ma <lma@suse.de>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agovirsh: pool-list: options --all and --inactive are mutually exclusive
Lin Ma [Fri, 11 Sep 2020 07:06:17 +0000 (15:06 +0800)] 
virsh: pool-list: options --all and --inactive are mutually exclusive

Signed-off-by: Lin Ma <lma@suse.de>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agovirsh: iface-list: options --all and --inactive are mutually exclusive
Lin Ma [Fri, 11 Sep 2020 07:06:16 +0000 (15:06 +0800)] 
virsh: iface-list: options --all and --inactive are mutually exclusive

Signed-off-by: Lin Ma <lma@suse.de>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agovirsh: domdisplay: options --all and --type are mutually exclusive
Lin Ma [Fri, 11 Sep 2020 07:06:15 +0000 (15:06 +0800)] 
virsh: domdisplay: options --all and --type are mutually exclusive

Signed-off-by: Lin Ma <lma@suse.de>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agovirsh: domblkinfo: options --all and --device are mutually exclusive
Lin Ma [Fri, 11 Sep 2020 07:06:14 +0000 (15:06 +0800)] 
virsh: domblkinfo: options --all and --device are mutually exclusive

Signed-off-by: Lin Ma <lma@suse.de>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agoqemu: Return perf status that affect next boot for shutoff domains
Lin Ma [Fri, 11 Sep 2020 07:06:09 +0000 (15:06 +0800)] 
qemu: Return perf status that affect next boot for shutoff domains

While we set up perf events for a shutoff domain and check the settings,
All of perf events are reported as 'disabled', unless we add --config,
This is redundant for a shutoff domain.

 # virsh domstate $GUEST
shut off

 # virsh perf --domain $GUEST
cmt            : disabled
mbmt           : disabled
mbml           : disabled
......

 # virsh perf --domain $GUEST --enable mbmt
mbmt           : enabled

 # virsh perf --domain $GUEST
cmt            : disabled
mbmt           : disabled
mbml           : disabled
......

Use virDomainObjGetOneDefState instead of virDomainObjGetOneDef to fix
the issue. After patch, The perf event status of a shutoff domain is
reported correctly:

 # virsh domstate $GUEST
shut off

 # virsh perf --domain $GUEST
cmt            : disabled
mbmt           : disabled
mbml           : disabled
......

 # virsh perf --domain $GUEST --enable mbmt
mbmt           : enabled

 # virsh perf --domain $GUEST
cmt            : disabled
mbmt           : enabled
mbml           : disabled
......

Signed-off-by: Lin Ma <lma@suse.de>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agoqemu: qemuDomainPMSuspendForDuration: Check availability of agent
Lin Ma [Fri, 11 Sep 2020 07:06:08 +0000 (15:06 +0800)] 
qemu: qemuDomainPMSuspendForDuration: Check availability of agent

It requires a guest agent configured and running in the domain's guest
OS, So check qemu agent during qemuDomainPMSuspendForDuration().

Signed-off-by: Lin Ma <lma@suse.de>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agodaemon: Fix a comment typo in libvirtd.conf.in
Jim Fehlig [Fri, 11 Sep 2020 20:55:59 +0000 (14:55 -0600)] 
daemon: Fix a comment typo in libvirtd.conf.in

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
4 years agoutil: Remove VIR_REALLOC_N_QUIET
Tim Wiederhake [Fri, 11 Sep 2020 11:42:18 +0000 (13:42 +0200)] 
util: Remove VIR_REALLOC_N_QUIET

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agoutil: Use glib memory functions in virFileGetXAttrQuiet
Tim Wiederhake [Fri, 11 Sep 2020 11:42:17 +0000 (13:42 +0200)] 
util: Use glib memory functions in virFileGetXAttrQuiet

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agotools: Use glib memory functions in vshCompleterFilter
Tim Wiederhake [Fri, 11 Sep 2020 11:42:16 +0000 (13:42 +0200)] 
tools: Use glib memory functions in vshCompleterFilter

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agotests: Use glib memory functions in pci_driver_new
Tim Wiederhake [Fri, 11 Sep 2020 11:42:15 +0000 (13:42 +0200)] 
tests: Use glib memory functions in pci_driver_new

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agotests: Use glib memory functions in add_fd
Tim Wiederhake [Fri, 11 Sep 2020 11:42:14 +0000 (13:42 +0200)] 
tests: Use glib memory functions in add_fd

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agoqemu: Use glib memory functions in qemuProcessReadLog
Tim Wiederhake [Fri, 11 Sep 2020 11:42:13 +0000 (13:42 +0200)] 
qemu: Use glib memory functions in qemuProcessReadLog

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agoqemu: Use glib memory functions in qemuDomainLogContextRead
Tim Wiederhake [Fri, 11 Sep 2020 11:42:12 +0000 (13:42 +0200)] 
qemu: Use glib memory functions in qemuDomainLogContextRead

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agoqemu: Use glib memory functions in qemuDomainMasterKeyReadFile
Tim Wiederhake [Fri, 11 Sep 2020 11:42:11 +0000 (13:42 +0200)] 
qemu: Use glib memory functions in qemuDomainMasterKeyReadFile

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agoutil: Use glib memory functions in virDevMapperGetTargetsImpl
Tim Wiederhake [Fri, 11 Sep 2020 11:42:08 +0000 (13:42 +0200)] 
util: Use glib memory functions in virDevMapperGetTargetsImpl

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agoutil: Use glib memory functions in virThreadCreateFull
Tim Wiederhake [Fri, 11 Sep 2020 11:42:05 +0000 (13:42 +0200)] 
util: Use glib memory functions in virThreadCreateFull

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agoutil: Use glib memory functions in virLogFilterNew
Tim Wiederhake [Fri, 11 Sep 2020 11:42:04 +0000 (13:42 +0200)] 
util: Use glib memory functions in virLogFilterNew

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agoutil: Use glib memory functions in virSaveLastError
Tim Wiederhake [Fri, 11 Sep 2020 11:42:03 +0000 (13:42 +0200)] 
util: Use glib memory functions in virSaveLastError

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agoutil: Use glib memory functions in virBitmapNewQuiet
Tim Wiederhake [Fri, 11 Sep 2020 11:42:00 +0000 (13:42 +0200)] 
util: Use glib memory functions in virBitmapNewQuiet

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agorpc: Use glib memory functions in virNetMessageSaveError
Tim Wiederhake [Fri, 11 Sep 2020 11:41:59 +0000 (13:41 +0200)] 
rpc: Use glib memory functions in virNetMessageSaveError

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agotests: Use glib memory functions in virpcimock.c
Tim Wiederhake [Fri, 11 Sep 2020 11:41:58 +0000 (13:41 +0200)] 
tests: Use glib memory functions in virpcimock.c

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agocpu: Replace VIR_FREE with g_free
Tim Wiederhake [Fri, 11 Sep 2020 13:22:49 +0000 (15:22 +0200)] 
cpu: Replace VIR_FREE with g_free

Note the use of g_clear_pointer(..., g_free) in ppc64DataClear and virCPUx86Baseline.

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agocpu: Replace VIR_ALLOC_N with g_new0
Tim Wiederhake [Fri, 11 Sep 2020 13:22:48 +0000 (15:22 +0200)] 
cpu: Replace VIR_ALLOC_N with g_new0

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agocpu: Replace VIR_ALLOC with g_new0
Tim Wiederhake [Fri, 11 Sep 2020 13:22:47 +0000 (15:22 +0200)] 
cpu: Replace VIR_ALLOC with g_new0

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agocpu_map: Remove unnecessary variable in loadData
Tim Wiederhake [Fri, 11 Sep 2020 13:22:46 +0000 (15:22 +0200)] 
cpu_map: Remove unnecessary variable in loadData

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agocpu_x86: Use g_auto* in virX86CpuIncompatible
Tim Wiederhake [Fri, 11 Sep 2020 13:22:45 +0000 (15:22 +0200)] 
cpu_x86: Use g_auto* in virX86CpuIncompatible

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agocpu_map: Use g_auto* in loadIncludes
Tim Wiederhake [Fri, 11 Sep 2020 13:22:44 +0000 (15:22 +0200)] 
cpu_map: Use g_auto* in loadIncludes

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agocpu_map: Use g_auto* in loadData
Tim Wiederhake [Fri, 11 Sep 2020 13:22:43 +0000 (15:22 +0200)] 
cpu_map: Use g_auto* in loadData

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agocpu_ppc64: Use g_auto* in ppc64MakeCPUData
Tim Wiederhake [Fri, 11 Sep 2020 13:22:42 +0000 (15:22 +0200)] 
cpu_ppc64: Use g_auto* in ppc64MakeCPUData

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agoqemu: qemuDomainPMSuspendAgent: Don't assign to 'ret' in a conditional
Erik Skultety [Fri, 11 Sep 2020 12:44:27 +0000 (14:44 +0200)] 
qemu: qemuDomainPMSuspendAgent: Don't assign to 'ret' in a conditional

When the guest agent isn't running, we still report success on a PM
suspend action even though we logged an error correctly, this is because
we poisoned the 'ret' value a few lines above.

Fixes: a663a860819287e041c3de672aad1d8543098ecc
Signed-off-by: Erik Skultety <eskultet@redhat.com>
4 years agovirnuma: Use numa_nodes_ptr when checking available NUMA nodes
Michal Privoznik [Fri, 11 Sep 2020 09:50:33 +0000 (11:50 +0200)] 
virnuma: Use numa_nodes_ptr when checking available NUMA nodes

In v6.7.0-rc1~86 I've tried to fix a problem where we were not
detecting NUMA nodes properly because we misused behaviour of a
libnuma API and as it turned out the behaviour was correct for
hosts with 64 CPUs in one NUMA node. So I changed the code to use
nodemask_isset(&numa_all_nodes, ..) instead and it fixed the
problem on such hosts. However, what I did not realize is that
numa_all_nodes does not reflect all NUMA nodes visible to
userspace, it contains only those nodes that the process
(libvirtd) an allocate memory from, which can be only a subset of
all NUMA nodes. The bitmask that contains all NUMA nodes visible
to userspace and which one I should have used is: numa_nodes_ptr.
For curious ones:

https://github.com/numactl/numactl/commit/4a22f2238234155e11e3e2717c011864722b767b

And as I was fixing virNumaGetNodeCPUs() I came to realize that
we already have a function that wraps the correct bitmask:
virNumaNodeIsAvailable().

Fixes: 24d7d85208f812a45686b32a0561cc9c5c9a49c9
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1876956
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agovirnuma: Assume numa_bitmask_isbitset() exists
Michal Privoznik [Fri, 11 Sep 2020 11:10:25 +0000 (13:10 +0200)] 
virnuma: Assume numa_bitmask_isbitset() exists

This function was introduced in the 2.0.6 release which happened
in December 2010. I think it is safe to assume that all libnuma
we deal with have the function.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agotools: virsh-domain: Remove redundant conditional before virshDomainFree
Yi Li [Fri, 11 Sep 2020 02:24:52 +0000 (10:24 +0800)] 
tools: virsh-domain: Remove redundant conditional before virshDomainFree

virshDomainFree handles NULL pointers gracefully, so there's no need to
check the pointer before the call.

Signed-off-by: Yi Li <yili@winhong.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agoutil: remove unused virNetDevIPWaitDadFinish()
Laine Stump [Fri, 4 Sep 2020 17:53:18 +0000 (13:53 -0400)] 
util: remove unused virNetDevIPWaitDadFinish()

Since we no longer need to wait for IPv6 DAD to complete, we never
call this function.

Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agonetwork: don't wait for IPv6 DAD completion when starting a network
Laine Stump [Fri, 4 Sep 2020 16:44:33 +0000 (12:44 -0400)] 
network: don't wait for IPv6 DAD completion when starting a network

0f7436ca54 added code during virtual network startup to wait for DAD
(Duplicate Address Detection) to complete if there were any IPv6
addresses on the network. This wait was needed because (according to
the commit log) "created problems when [the "dummy" tap device] is set
to IFF_DOWN prior to DAD completing".

That commit in turn referenced commit db488c7917, which had added the
code to set the dummy tap device IFF_DOWN, commenting "DAD has
happened (dnsmasq waits for it)", and in its commit message pointed
out that if we just got rid of the dummy tap device this wouldn't be
needed.

Now that the dummy tap device has indeed been removed (commit
ee6c936fbb), there is no longer any need to set it IFF_DOWN, and thus
nothing requiring us to wait for DAD to complete. At any rate, with
the dummy tap device removed, leaving nothing else on the bridge when
it is first started, DAD never completes, leading to failure to start
any IPv6 network.

So, yes, this patch removes the wait for DAD completion, and IPv6
networks can once again start, and their associated dnsmasq process
starts successfully (this is the problem that the DAD wait was
originally intended to fix)

Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
4 years agodocs: kbase: Tune how CPU support for SEV should be queried
Erik Skultety [Thu, 10 Sep 2020 13:15:48 +0000 (15:15 +0200)] 
docs: kbase: Tune how CPU support for SEV should be queried

 #useless_use_of_cat + avoid accidental substring matches.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agoAdd FreeBSD 11.4 CI job on Cirrus
Daniel P. Berrangé [Fri, 4 Sep 2020 10:22:16 +0000 (11:22 +0100)] 
Add FreeBSD 11.4 CI job on Cirrus

The previous 11.3 image provided by Cirrus did not boot, but they have
now provided a working 11.4 image

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agoFix linkage to libutil and libkvm on FreeBSD 11
Daniel P. Berrangé [Fri, 4 Sep 2020 11:52:13 +0000 (12:52 +0100)] 
Fix linkage to libutil and libkvm on FreeBSD 11

We are currently adding -lutil and -lkvm to the linker using the
add_project_link_arguments method. On FreeBSD 11.4, this results in
build errors because the args appear too early in the command line.

We need to pass the libraries as dependencies so that they get placed
at the same point in the linker args as other dependencies.

Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agoFix a typo in hacking.rst: "contirbute" -> "contribute"
Matt Coleman [Tue, 8 Sep 2020 20:43:54 +0000 (16:43 -0400)] 
Fix a typo in hacking.rst: "contirbute" -> "contribute"

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agoFix errors in contribute.html.in
Matt Coleman [Tue, 8 Sep 2020 20:43:53 +0000 (16:43 -0400)] 
Fix errors in contribute.html.in

* Add a period to the end of the page's introductory sentence.
* Correct a spelling error: "Evangalism"/"evangalise" -> "Evangelism"/"evangelize"

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agoFix a typo in compiling.html.in: that -> from
Matt Coleman [Tue, 8 Sep 2020 20:43:52 +0000 (16:43 -0400)] 
Fix a typo in compiling.html.in: that -> from

The original author intended to write "different than".
"Different" is commonly followed by "from", "than", and "to".
Globally, "from" is the most common.

Signed-off-by: Matt Coleman <matt@datto.com>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
4 years agoremote: fix error reporting for invalid daemon mode
Daniel P. Berrangé [Fri, 7 Aug 2020 17:39:22 +0000 (18:39 +0100)] 
remote: fix error reporting for invalid daemon mode

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agorpc: use new virt-ssh-helper binary for remote tunnelling
Daniel P. Berrangé [Wed, 8 Jul 2020 16:03:38 +0000 (17:03 +0100)] 
rpc: use new virt-ssh-helper binary for remote tunnelling

This wires up support for using the new virt-ssh-helper binary with the ssh,
libssh and libssh2 protocols.

The new binary will be used preferentially if it is available in $PATH,
otherwise we fall back to traditional netcat.

The "proxy" URI parameter can be used to force use of netcat e.g.

  qemu+ssh://host/system?proxy=netcat

or the disable fallback e.g.

  qemu+ssh://host/system?proxy=native

With use of virt-ssh-helper, we can now support remote session URIs

  qemu+ssh://host/session

and this will only use virt-ssh-helper, with no fallback. This also lets
the libvirtd process be auto-started, and connect directly to the
modular daemons, avoiding use of virtproxyd back-compat tunnelling.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agorpc: switch order of args in virNetClientNewSSH
Daniel P. Berrangé [Wed, 8 Jul 2020 12:05:38 +0000 (13:05 +0100)] 
rpc: switch order of args in virNetClientNewSSH

Switch keyfile and netcat parameters, since the netcat path and
socket path are a logical pair that belong together. This patches
the other constructors.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agoremote: introduce virt-ssh-helper binary
Daniel P. Berrangé [Mon, 8 Jul 2019 15:38:49 +0000 (16:38 +0100)] 
remote: introduce virt-ssh-helper binary

When accessing libvirtd over a SSH tunnel, the remote driver needs a way
to proxy the SSH input/output stream to a suitable libvirt daemon. This
is currently done by spawning netcat, pointing it to the libvirtd socket
path. This is problematic for a number of reasons:

 - The socket path varies according to the --prefix chosen at build
   time. The remote client is seeing the local prefix, but what we
   need is the remote prefix

 - The socket path varies according to remote env variables, such as
   the XDG_RUNTIME_DIR location. Again we see the local XDG_RUNTIME_DIR
   value, but what we need is the remote value (if any)

 - The remote driver doesn't know whether it must connect to the legacy
   libvirtd or the modular daemons, so must always assume legacy
   libvirtd for back-compat. This means we'll always end up using the
   virtproxyd daemon adding an extra hop in the RPC layer.

 - We can not able to autospawn the libvirtd daemon for session mode
   access

To address these problems this patch introduces the 'virtd-ssh-helper'
program which takes the URI for the remote driver as a CLI parameter.
It then figures out which daemon to connect to and its socket path,
using the same code that the remote driver client would on the remote
host's build of libvirt.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agoremote: extract logic for determining daemon to connect to
Daniel P. Berrangé [Mon, 8 Jul 2019 14:30:59 +0000 (15:30 +0100)] 
remote: extract logic for determining daemon to connect to

We'll shortly want to reuse code for determining whether to connect to
the system or session daemon from places outside the remote driver
client. Pulling it out into a self contained function facilitates reuse.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agoremote: split out function for constructing socket path
Daniel P. Berrangé [Wed, 4 Mar 2020 17:45:55 +0000 (17:45 +0000)] 
remote: split out function for constructing socket path

The remoteGetUNIXSocketHelper method will be needed by source files
beyond the remote driver client.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agoremote: parse the remote transport string earlier
Daniel P. Berrangé [Wed, 8 Jul 2020 17:02:50 +0000 (18:02 +0100)] 
remote: parse the remote transport string earlier

We delay converting the remote transport string to enum form until
fairly late. As a result we're doing string comparisons when we
could be just doing enum comparisons.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agoremote: split out function for parsing URI scheme
Daniel P. Berrangé [Wed, 4 Mar 2020 17:45:55 +0000 (17:45 +0000)] 
remote: split out function for parsing URI scheme

The remoteSplitURISCheme method will be needed by source files beyond
the remote driver client.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agoremote: split off enums into separate source file
Daniel P. Berrangé [Wed, 4 Mar 2020 17:39:48 +0000 (17:39 +0000)] 
remote: split off enums into separate source file

The remoteDriverTransport and remoteDriverMode enums are going to be
needed by source files beyond the remote driver client.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agoremote: push logic for default netcat binary into common helper
Daniel P. Berrangé [Tue, 21 Jul 2020 11:15:57 +0000 (12:15 +0100)] 
remote: push logic for default netcat binary into common helper

We don't want to repeat the choice of default netcat binary setting in
three different places. This will also make it possible to do better
error reporting in the helper.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agorpc: merge logic for generating remote SSH shell script
Daniel P. Berrangé [Tue, 11 Feb 2020 19:05:53 +0000 (19:05 +0000)] 
rpc: merge logic for generating remote SSH shell script

Three parts of the code all build up the same SSH shell script
snippet for remote tunneling the RPC protocol, but in slightly
different ways. Combine them all into one helper method in the
virNetClient code, since this logic doesn't really belong in
the virNetSocket code.

Note that the this change means the shell snippet is passed to
the SSH binary as a single arg, instead of three separate args,
but this is functionally identical, as the three separate args
were combined into one already when passed to the remote system.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 years agodisk storage: fix allocation size for pool format dos
Sebastian Mitterle [Sat, 29 Aug 2020 00:49:07 +0000 (00:49 +0000)] 
disk storage: fix allocation size for pool format dos

The changed condition was always false because the function was always
called with boundary values 0.

Use the free extent's start value to get its start offset from the
cylinder boundary and determine if the needed size for allocation
needs to be expanded too in case the offset doesn't fit within extra
bytes for alignment.

This fixes an issue where vol-create-from will call qemu-img convert
to create a destination volume of same capacity as the source volume
and qemu-img will error 'Cannot grow device files' due to the partition
being too small for the source although both destination partition and
source volume have the same capacity.

Signed-off-by: Sebastian Mitterle <smitterl@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agodoc: add some examples for IPv6 NAT configuration
Ian Wienand [Wed, 12 Aug 2020 01:21:47 +0000 (11:21 +1000)] 
doc: add some examples for IPv6 NAT configuration

Add some expanded examples for the nat ipv6 introduced with
927acaedec7effbe67a154d8bfa0e67f7d08e6c7.

Unfortunately while for IPv4 it's well-known what addresses ranges are
useful for NAT, with IPv6 unless you enjoy digging through RFC's going
back-and-forth over unique local addresses and the meaning of the word
"site" it's generally much less obvious.  I've tried to add some
details on choosing a range inline with RFC 4193 and then some
pointers for when it maybe doesn't work in the guest as you first
expect despite you doing what the RFC's say!

Signed-off-by: Ian Wienand <iwienand@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
4 years agoclient: fix memory leak in client msg
Hao Wang [Sat, 18 Jul 2020 07:43:30 +0000 (15:43 +0800)] 
client: fix memory leak in client msg

When closing client->waitDispatch in virNetClientIOEventLoopRemoveAll
or virNetClientIOEventLoopRemoveDone, VIR_FREE() is called to free
call->msg directly, resulting in leak of the memory call->msg->buffer
points to.
Use virNetMessageFree(call->msg) instead of VIR_FREE(call->msg).

Signed-off-by: Hao Wang <wanghao232@huawei.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agoqemuFirmwareFillDomain: Fill NVRAM template on migration too
Michal Privoznik [Tue, 8 Sep 2020 15:42:09 +0000 (17:42 +0200)] 
qemuFirmwareFillDomain: Fill NVRAM template on migration too

In 8e1804f9f66 I've tried to fix the following use case: domain
is started with path to UEFI only and relies on libvirt to figure
out corresponding NVRAM template to create a per-domain copy
from. The fix consisted of having a check tailored exactly for
this use case and if it's hit then using FW autoselection to
figure it out. Unfortunately, the NVRAM template is not saved in
the inactive XML (well, the domain might be transient anyway).
Then, as a part of that check we see whether the per-domain copy
doesn't exist already and if it does then no template is looked
up hence no template will appear in the live XML.

This works, until the domain is migrated. At the destination, the
per-domain copy will not exist so we need to know the template to
create the per-domain copy from. But we don't even get to the
check because we are not starting a fresh new domain and thus the
qemuFirmwareFillDomain() function quits early.

The solution is to switch order of these two checks. That is
evaluate the check for the old style before checking flags.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1852910
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
4 years agovirsh: cmdScreenshot: fix cbdata passing to virshStreamSink
Ján Tomko [Wed, 9 Sep 2020 08:55:40 +0000 (10:55 +0200)] 
virsh: cmdScreenshot: fix cbdata passing to virshStreamSink

The changes for sparse stream support started passing
virshStreamCallbackDataPtr to virshStreamSink
instead of passing a simple file descriptor, but
forgot to adjust all the callers.

Fix it in cmdScreenshot as well.

https://bugzilla.redhat.com/show_bug.cgi?id=1875195

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Fixes: 9e745a97171e10f050962c166082439d6724e245
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
4 years agocpu_ppc64: Remove error path in virCPUppc64DriverGetModels
Tim Wiederhake [Wed, 9 Sep 2020 06:37:51 +0000 (08:37 +0200)] 
cpu_ppc64: Remove error path in virCPUppc64DriverGetModels

The call to `g_strfreev` is not required, as in both cases no memory has been allocated.

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agocpu_map: Use g_auto* in loadData
Tim Wiederhake [Wed, 9 Sep 2020 06:37:50 +0000 (08:37 +0200)] 
cpu_map: Use g_auto* in loadData

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agocpu_ppc64.c: use g_autoptr() whenever possible
Daniel Henrique Barboza [Wed, 2 Sep 2020 20:25:46 +0000 (17:25 -0300)] 
cpu_ppc64.c: use g_autoptr() whenever possible

Using g_autoptr() in virCPUDef pointers allows for more
cleanups in ppc64Compute() and virCPUppc64Baseline()

Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agocpu_ppc64.c: use g_autofree() whenever possible
Daniel Henrique Barboza [Wed, 2 Sep 2020 20:25:45 +0000 (17:25 -0300)] 
cpu_ppc64.c: use g_autofree() whenever possible

This allows for a label removal in ppc64ModelParse().

Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
4 years agocpu_ppc64.c: use g_autoptr() in virCPUppc64GetHost()
Daniel Henrique Barboza [Wed, 2 Sep 2020 20:25:44 +0000 (17:25 -0300)] 
cpu_ppc64.c: use g_autoptr() in virCPUppc64GetHost()

We don't need to call virCPUppc64DataFree() in a cleanup label.
This function is already assigned to the 'dataFree' interface
of cpuDriverPPC64, and it will be called by virCPUDataFree(), the
autocleanup function of virCPUDataPtr, via driver->dataFree.

Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>