]> xenbits.xensource.com Git - libvirt.git/log
libvirt.git
2 years agonetwork: Generate TFTP config regardless of DHCP
Michal Privoznik [Thu, 9 Dec 2021 15:47:04 +0000 (16:47 +0100)]
network: Generate TFTP config regardless of DHCP

We already allow users to provide TFTP root path in network XML
and not specify any DHCP. This makes sense, because dnsmasq is
not only DHCP server but also TFTP server and users might have
a DHCP server configured on their own, outside of libvirt's
control and want just the TFTP part.

By moving TFTP config generator out of DHCP generator and calling
it for every IPv4 range, users can finally enable just TFTP.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2026765
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agonetwork: Separate DHCP config generator into a function
Michal Privoznik [Thu, 9 Dec 2021 15:33:22 +0000 (16:33 +0100)]
network: Separate DHCP config generator into a function

Generating configuration file for dnsmasq is done in
networkDnsmasqConfContents() which is this big, self-contained
function. Separate at least DHCP part into its own function for
better readability.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agonetwork: Initialize variables in networkDnsmasqConfContents()
Michal Privoznik [Thu, 9 Dec 2021 15:33:08 +0000 (16:33 +0100)]
network: Initialize variables in networkDnsmasqConfContents()

In networkDnsmasqConfContents() there's a for() loop which
initializes some variables in its initialization block. This
makes both the loop() statement and variable declaration block
look needlessly ugly. Speaking of variable declaration, also move
some variables which are used only within blocks into their
respective blocks.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agolib: Be consistent about vm->pid
Michal Privoznik [Thu, 26 May 2022 07:07:56 +0000 (09:07 +0200)]
lib: Be consistent about vm->pid

The virDomainObj struct has @pid member where the domain's
hypervisor PID is stored (e.g. QEMU/bhyve/libvirt_lxc/... PID).
However, we are not consistent when it comes to shutoff state.
Initially, because virDomainObjNew() uses g_new0() the @pid is
initialized to 0. But when domain is shut off, some functions set
it to -1 (virBhyveProcessStop, virCHProcessStop, qemuProcessStop,
..).

In other places, the @pid is tested to be 0, on some other places
it's tested for being negative and in the rest for being
positive.

To solve this inconsistency we can stick with either value, -1 or
0. I've chosen the latter as it's safer IMO. For instance if by
mistake we'd kill(vm->pid, SIGTERM) we would kill ourselves
instead of init's process group.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
2 years agoPost-release version bump to 8.5.0
Jiri Denemark [Wed, 1 Jun 2022 07:30:38 +0000 (09:30 +0200)]
Post-release version bump to 8.5.0

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2 years agoRelease of libvirt-8.4.0
Jiri Denemark [Wed, 1 Jun 2022 07:28:24 +0000 (09:28 +0200)]
Release of libvirt-8.4.0

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2 years agoci: eliminate many cross arch CI builds
Daniel P. Berrangé [Fri, 27 May 2022 14:06:20 +0000 (10:06 -0400)]
ci: eliminate many cross arch CI builds

We currently build cross-arch containers for all three Debian
releases (10, 11, Sid), and do libvirt builds covering each
arch. This is overkill in terms of the number of problems it
identifies. The most important aspect of cross arch builds is
to find problems with 32-bit builds and problems with big
endian builds.

With this in mind the cross arch jobs are altered as follows

 - Debian 10
     - build the containers by default
     - build armv7 (32-bit) & s390x (big endian)
     - other arch builds manual

 - Debian 11 / Sid
     - container builds all optional
     - arch builds all optional

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2 years agoci: move Ubuntu GCC santizers build to 20.04
Daniel P. Berrangé [Fri, 27 May 2022 14:06:19 +0000 (10:06 -0400)]
ci: move Ubuntu GCC santizers build to 20.04

We currently build on Ubuntu 22.04 twice, for GCC and CLang
with santizers turned on. Moving the GCC santizers build
to 20.04 lets us cull one of the 22.04 jobs

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2 years agoci: disable native builds on certain distros
Daniel P. Berrangé [Fri, 27 May 2022 14:06:18 +0000 (10:06 -0400)]
ci: disable native builds on certain distros

Currently we do native builds on all distros that are covered
by the support matrix. This reduces that such that we mostly
only run builds on the newest (ie bleeding edge non-released)
version and the oldest version. The effect is that cut out
builds on the newest release version. This is acceptable,
because that version is sandwiched between two versions we
do still test, so unlikely to have failures not already
identified by other jobs.

This has the effect of disabling:

  - AlmaLinux 8 GCC - still has a CLang build
    and CentOS 8 Stream also gives coverage

  - Debian 11 - still has a Debian 10 and Sid
    build

  - Alpine 3.15 - still has a Alpine 3.14 and Edge
    build

Ideally Fedora 35 would be disabled too, but we rely on that
for the integration tests.

The Ubuntu jobs will be handled in the next patch.

The containers are still built since this is cheap-ish.

The build jobs can also be triggered manually if desired.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2 years agoci: refresh with lcitool manifest
Daniel P. Berrangé [Fri, 27 May 2022 14:06:17 +0000 (10:06 -0400)]
ci: refresh with lcitool manifest

This refreshes the containers bringing in new behaviour when
builds/containers are disabled.

Instead of deleting the job entirely, the job still exists
but is set to be a manual job. It won't affect the pipeline
result, but can be triggered by the developer if they wish
to test a specific scenario.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2 years agoTranslated using Weblate (Swedish)
Göran Uddeborg [Tue, 31 May 2022 10:29:03 +0000 (12:29 +0200)]
Translated using Weblate (Swedish)

Currently translated at 33.1% (3461 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Translated using Weblate (Swedish)

Currently translated at 32.9% (3441 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Translated using Weblate (Swedish)

Currently translated at 32.7% (3421 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Co-authored-by: Göran Uddeborg <goeran@uddeborg.se>
Signed-off-by: Göran Uddeborg <goeran@uddeborg.se>
2 years agoTranslated using Weblate (Swedish)
Göran Uddeborg [Mon, 30 May 2022 07:27:34 +0000 (09:27 +0200)]
Translated using Weblate (Swedish)

Currently translated at 32.7% (3421 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Co-authored-by: Göran Uddeborg <goeran@uddeborg.se>
Signed-off-by: Göran Uddeborg <goeran@uddeborg.se>
2 years agoTranslated using Weblate (Korean)
김인수 [Mon, 30 May 2022 07:27:33 +0000 (09:27 +0200)]
Translated using Weblate (Korean)

Currently translated at 100.0% (10431 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/ko/

Co-authored-by: 김인수 <simmon@nplob.com>
Signed-off-by: 김인수 <simmon@nplob.com>
2 years agoTranslated using Weblate (Ukrainian)
Yuri Chornoivan [Mon, 30 May 2022 07:27:33 +0000 (09:27 +0200)]
Translated using Weblate (Ukrainian)

Currently translated at 100.0% (10431 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/uk/

Co-authored-by: Yuri Chornoivan <yurchor@ukr.net>
Signed-off-by: Yuri Chornoivan <yurchor@ukr.net>
2 years agoUpdate translation files
Weblate [Mon, 30 May 2022 07:27:30 +0000 (09:27 +0200)]
Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/

Co-authored-by: Weblate <noreply@weblate.org>
Signed-off-by: Fedora Weblate Translation <i18n@lists.fedoraproject.org>
2 years agonews: Add APIs virDomainSaveParams virDomainRestoreParams
Han Han [Tue, 31 May 2022 01:48:26 +0000 (09:48 +0800)]
news: Add APIs virDomainSaveParams virDomainRestoreParams

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agonews: Add qemu-vdagent
Han Han [Tue, 31 May 2022 01:48:25 +0000 (09:48 +0800)]
news: Add qemu-vdagent

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agovirDomainInputDefValidate: Validate model
Michal Privoznik [Thu, 26 May 2022 11:48:56 +0000 (13:48 +0200)]
virDomainInputDefValidate: Validate model

If input device has one of virtio* models set then it has to go
onto virtio bus. Introduce such check into the validator.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2081981
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2 years agovirDomainInputDefValidate: Reformat
Michal Privoznik [Thu, 26 May 2022 11:50:23 +0000 (13:50 +0200)]
virDomainInputDefValidate: Reformat

There are some formatting problems with virDomainInputDefValidate().
Reformat it to our standards. Use this opportunity to move error
messages onto a single line.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2 years agoNEWS: Mention 'absolute' clock offset
Peter Krempa [Fri, 27 May 2022 10:35:16 +0000 (12:35 +0200)]
NEWS: Mention 'absolute' clock offset

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemuProcessStop: Don't try to remove QoS on already removed TAP
Michal Privoznik [Fri, 27 May 2022 14:59:54 +0000 (16:59 +0200)]
qemuProcessStop: Don't try to remove QoS on already removed TAP

When cleaning up after stopped domain, one of the things we do is
attempt to clear QoS settings on OVS type interfaces. Well, this
is needless because they were removed just a couple of lines
above. As a result, the attempt fails and a warning is printed
into logs, polluting them needlessly.

Closes: https://gitlab.com/libvirt/libvirt/-/issues/313
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agogitlab: mark job dependencies as optional
Daniel P. Berrangé [Fri, 27 May 2022 11:47:07 +0000 (07:47 -0400)]
gitlab: mark job dependencies as optional

The container jobs are all optional in upstream now, only
running if dockerfile changes were made. Thus any build
jobs which reference the container jobs need to mark their
dependency as optional too.

Reviewed-by: Erik Skultety <eskultet@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2 years agonss: Compare hostname case insensitive
Michal Privoznik [Fri, 27 May 2022 07:00:59 +0000 (09:00 +0200)]
nss: Compare hostname case insensitive

There are some tools that convert hostname to lowercase before
resolving it (e.g. ssh). In a way it makes sense because DNS is
case insensitive and in case of ssh the lowercase version is then
used to find matching record in its config file. However, our NSS
module performs case sensitive comparison, which makes it useless
with ssh. Just consider a machine named FooBar.

Therefore, switch to case insensitive string comparison.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1777873
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2 years agoci: Refresh generated files
Martin Kletzander [Fri, 27 May 2022 11:35:33 +0000 (13:35 +0200)]
ci: Refresh generated files

Notable changes:

* 'lcitool manifest' now generates absolute include paths

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
2 years agobuild-aux: remove syntax checks for ATTRIBUTE_* and ARRAY_CARDINALITY
Daniel P. Berrangé [Tue, 24 May 2022 12:30:35 +0000 (13:30 +0100)]
build-aux: remove syntax checks for ATTRIBUTE_* and ARRAY_CARDINALITY

These checks made sense when we were in process of converting code.
Since the definition of the macros has been entirely removed now,
the compiler will already thrown an error. There aren't likely to
be any in-flight patches that would hit this anyone either.

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2 years agoci: Don't mark any Fedora 36 job as optional
Andrea Bolognani [Thu, 26 May 2022 13:41:14 +0000 (15:41 +0200)]
ci: Don't mark any Fedora 36 job as optional

It's a stable distro, so we expect all jobs to succeed.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2 years agoci: Move MinGW jobs to Fedora 36
Andrea Bolognani [Thu, 26 May 2022 06:39:10 +0000 (08:39 +0200)]
ci: Move MinGW jobs to Fedora 36

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2 years agoci: Add Fedora 36
Andrea Bolognani [Thu, 26 May 2022 06:37:53 +0000 (08:37 +0200)]
ci: Add Fedora 36

The target is intentionally not added to the integration tests
at this time, because the corresponding VM template is not yet
available on the runner. A later patch will take care of that.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2 years agoci: Refresh generated files
Andrea Bolognani [Thu, 26 May 2022 06:36:47 +0000 (08:36 +0200)]
ci: Refresh generated files

Notable changes:

  * 'lcitool manifest' now generates GitLab CI rules spread
    across a bunch of files;

  * container images are built less frequently for the main
    repository.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2 years agoci: Drop Fedora 34
Andrea Bolognani [Thu, 26 May 2022 06:34:01 +0000 (08:34 +0200)]
ci: Drop Fedora 34

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2 years agovircgroupv1: fix null string specifier argument in virCgroupV1ValidatePlacement
Scott Davis [Wed, 25 May 2022 22:20:40 +0000 (18:20 -0400)]
vircgroupv1: fix null string specifier argument in virCgroupV1ValidatePlacement

Detected by gcc 11 -Wformat-overflow:
../../src/util/vircgroupv1.c: In function ‘virCgroupV1ValidatePlacement’:
../../src/util/virerror.h:176:5: warning: ‘%s’ directive argument is null [-Wformat-overflow=]
  176 |     virReportErrorHelper(VIR_FROM_THIS, code, __FILE__, \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  177 |                          __FUNCTION__, __LINE__, __VA_ARGS__)
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../src/util/vircgroupv1.c:411:13: note: in expansion of macro ‘virReportError’
  411 |             virReportError(VIR_ERR_INTERNAL_ERROR,
      |             ^~~~~~~~~~~~~~
../../src/util/vircgroupv1.c:412:80: note: format string is defined here
  412 |                            _("Could not find placement for v1 controller %s at %s"),
      |                                                                                ^~

Signed-off-by: Scott Davis <scott.davis@starlab.io>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoremote: fix null string specifier argument in remoteProbeSessionDriverFromBinary
Scott Davis [Wed, 25 May 2022 22:20:39 +0000 (18:20 -0400)]
remote: fix null string specifier argument in remoteProbeSessionDriverFromBinary

Detected by gcc 11 -Wformat-overflow:
../src/remote/remote_sockets.c: In function ‘remoteProbeSessionDriverFromBinary’:
../src/util/virlog.h:79:5: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
   79 |     virLogMessage(src, VIR_LOG_DEBUG, filename, linenr, funcname, NULL, __VA_ARGS__)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/util/virlog.h:88:5: note: in expansion of macro ‘VIR_DEBUG_INT’
   88 |     VIR_DEBUG_INT(&virLogSelf, __FILE__, __LINE__, __func__, __VA_ARGS__)
      |     ^~~~~~~~~~~~~
../src/remote/remote_sockets.c:187:9: note: in expansion of macro ‘VIR_DEBUG’
  187 |         VIR_DEBUG("Probing driver '%s' via daemon %s", drivers[i], daemonpath);
      |         ^~~~~~~~~
../src/remote/remote_sockets.c:187:51: note: format string is defined here
  187 |         VIR_DEBUG("Probing driver '%s' via daemon %s", drivers[i], daemonpath);
      |                                                   ^~

Signed-off-by: Scott Davis <scott.davis@starlab.io>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agoqemu: fix null string specifier argument in qemuDomainBlockJobAbort
Scott Davis [Wed, 25 May 2022 22:20:38 +0000 (18:20 -0400)]
qemu: fix null string specifier argument in qemuDomainBlockJobAbort

Detected by gcc 11 -Wformat-overflow:
../../src/qemu/qemu_driver.c: In function ‘qemuDomainBlockJobAbort’:
../../src/util/virerror.h:176:5: warning: ‘%s’ directive argument is null [-Wformat-overflow=]
  176 |     virReportErrorHelper(VIR_FROM_THIS, code, __FILE__, \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  177 |                          __FUNCTION__, __LINE__, __VA_ARGS__)
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../src/qemu/qemu_driver.c:14475:17: note: in expansion of macro ‘virReportError’
14475 |                 virReportError(VIR_ERR_OPERATION_FAILED,
      |                 ^~~~~~~~~~~~~~
../../src/qemu/qemu_driver.c:14476:73: note: format string is defined here
14476 |                                _("block job '%s' failed while pivoting: %s"),
      |                                                                         ^~

Signed-off-by: Scott Davis <scott.davis@starlab.io>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2 years agopo: Refresh potfile for v8.4.0
Jiri Denemark [Wed, 25 May 2022 20:18:56 +0000 (22:18 +0200)]
po: Refresh potfile for v8.4.0

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2 years agoTranslated using Weblate (Korean)
김인수 [Tue, 24 May 2022 09:14:14 +0000 (11:14 +0200)]
Translated using Weblate (Korean)

Currently translated at 100.0% (10419 of 10419 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/ko/

Co-authored-by: 김인수 <simmon@nplob.com>
Signed-off-by: 김인수 <simmon@nplob.com>
2 years agoUpdate translation files
Weblate [Tue, 24 May 2022 09:14:12 +0000 (11:14 +0200)]
Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/

Co-authored-by: Weblate <noreply@weblate.org>
Signed-off-by: Fedora Weblate Translation <i18n@lists.fedoraproject.org>
2 years agovbox: SnapshotConfAllChildren: reduce scope of tempSize
Ján Tomko [Wed, 18 May 2022 13:59:16 +0000 (15:59 +0200)]
vbox: SnapshotConfAllChildren: reduce scope of tempSize

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2 years agoapparmor: report error when removing profile failed
Ján Tomko [Wed, 18 May 2022 13:58:06 +0000 (15:58 +0200)]
apparmor: report error when removing profile failed

Assign the return value to 'rc' before comparing it.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2 years agoDo not check if unsigned vars are less than zero
Ján Tomko [Wed, 18 May 2022 13:54:26 +0000 (15:54 +0200)]
Do not check if unsigned vars are less than zero

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2 years agoNEWS.rst: document Power10 support
Daniel Henrique Barboza [Tue, 24 May 2022 10:14:10 +0000 (07:14 -0300)]
NEWS.rst: document Power10 support

Update NEWS.rst with the now added Power10 processor support.

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2 years agocpu_ppc64: add support for host-model on POWER10
Daniel Henrique Barboza [Tue, 3 May 2022 20:15:05 +0000 (17:15 -0300)]
cpu_ppc64: add support for host-model on POWER10

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2 years agocpu_map: add POWER10 cpu model
Daniel Henrique Barboza [Thu, 5 May 2022 20:26:13 +0000 (17:26 -0300)]
cpu_map: add POWER10 cpu model

Add POWER10 as a supported cpu model.

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2 years agoqemu: Do not pass unused opaque pointer to monitor callbacks
Jiri Denemark [Tue, 24 May 2022 13:02:58 +0000 (15:02 +0200)]
qemu: Do not pass unused opaque pointer to monitor callbacks

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoqemu: Do not use opaque pointer in QEMU monitor callbacks
Jiri Denemark [Tue, 24 May 2022 13:01:07 +0000 (15:01 +0200)]
qemu: Do not use opaque pointer in QEMU monitor callbacks

It always points to QEMU driver, which is quite redundant as all
callbacks also get a pointer to a vm object. Let's get the driver
pointer from there instead.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoqemu: Drop driver parameter from qemuProcessEventSubmit
Jiri Denemark [Tue, 24 May 2022 13:30:41 +0000 (15:30 +0200)]
qemu: Drop driver parameter from qemuProcessEventSubmit

We can easily get it from the vm object.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoqemu: Make vm parameter of qemuProcessEventSubmit mandatory
Jiri Denemark [Tue, 24 May 2022 13:27:43 +0000 (15:27 +0200)]
qemu: Make vm parameter of qemuProcessEventSubmit mandatory

All callers (QMP event handlers) always pass non-NULL vm pointer. Let's
make the parameter mandatory.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoqemu: Pass arguments to qemuProcessEventSubmit directly
Jiri Denemark [Tue, 24 May 2022 10:51:47 +0000 (12:51 +0200)]
qemu: Pass arguments to qemuProcessEventSubmit directly

Allocating and filling qemuProcessEvent structure is a repeated pattern
before all calls to qemuProcessEventSubmit. We can move the allocation
inside this function and let callers pass all arguments directly.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoqemu: Avoid unlocked access to vm object in monitor callbacks
Jiri Denemark [Tue, 24 May 2022 13:09:49 +0000 (15:09 +0200)]
qemu: Avoid unlocked access to vm object in monitor callbacks

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoqemu_tpm: Make APIs work over a single virDomainTPMDef
Michal Privoznik [Fri, 29 Apr 2022 14:38:33 +0000 (16:38 +0200)]
qemu_tpm: Make APIs work over a single virDomainTPMDef

In qemu_extdevice.c lives code that handles helper daemons that
are required for some types of devices (e.g. virtiofsd,
vhost-user-gpu, swtpm, etc.). These devices have their own
handling code in separate files, with only a very basic functions
exposed (e.g. for starting/stopping helper process, placing it
into given CGroup, etc.). And these functions all work over a
single instance of device (virDomainVideoDef *, virDomainFSDef *,
etc.), except for TPM handling code which takes virDomainDef *
and iterates over it inside its module.

Remove this oddness and make qemuExtTPM*() functions look closer
to the rest of the code.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2 years agovirprocess: Drop workaround for setns() wrt old glibc
Michal Privoznik [Tue, 24 May 2022 08:21:11 +0000 (10:21 +0200)]
virprocess: Drop workaround for setns() wrt old glibc

We have our own implementation of setns() which was introduced in
v1.2.9-rc1~190 and extended afterwards. The reason was that back
in 2014 we were dealing with glibc that in some of its older
versions did not provide the function. Mostly for non-intel
arches. Nevertheless, glibc now offers the function for all
architectures we care about (aarch64 being the freshest
architecture where the function was introduced, in glibc-2.17).

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2 years agosyntax-check: Pull updates from gnulib
Andrea Bolognani [Mon, 23 May 2022 12:39:30 +0000 (14:39 +0200)]
syntax-check: Pull updates from gnulib

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agosyntax-check: Add versioning information
Andrea Bolognani [Mon, 23 May 2022 12:33:01 +0000 (14:33 +0200)]
syntax-check: Add versioning information

Our copy of syntax-check has diverged quite a bit from the
gnulib original, but a lot of the core logic has remained
identical and it would be nice if we could periodically pull
improvements.

To make this manageable, record the gnulib commit our copy is
derived from: this way, the person updating the file will know
the range of gnulib commits that they have to consider.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agosrc: Use archive.org for dead URLs
Andrea Bolognani [Tue, 24 May 2022 07:45:21 +0000 (09:45 +0200)]
src: Use archive.org for dead URLs

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agodocs: Use HTTPS where possible
Andrea Bolognani [Tue, 24 May 2022 07:32:22 +0000 (09:32 +0200)]
docs: Use HTTPS where possible

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agodocs: Update various URLs
Andrea Bolognani [Tue, 24 May 2022 08:14:07 +0000 (10:14 +0200)]
docs: Update various URLs

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agodocs: Update URL for MinGW
Andrea Bolognani [Tue, 24 May 2022 07:38:53 +0000 (09:38 +0200)]
docs: Update URL for MinGW

The MinGW-w64 project has effectively replaced the original
MinGW project, and distributions such as Fedora have been shipping
packages based on the former for years now.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agodocs: Update URL for libxml2
Andrea Bolognani [Tue, 24 May 2022 08:13:16 +0000 (10:13 +0200)]
docs: Update URL for libxml2

The project is developed as part of GNOME these days, and the
old URL redirects to GNOME's GitLab instance.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agodocs: Use more generic URL for netcat
Andrea Bolognani [Tue, 24 May 2022 07:27:45 +0000 (09:27 +0200)]
docs: Use more generic URL for netcat

GNU netcat was last updated in 2004. These days, most operating
systems will include either the nmap or OpenBSD variant of the
tool.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoutil: Drop references to netlink.pdf
Andrea Bolognani [Tue, 24 May 2022 07:23:18 +0000 (09:23 +0200)]
util: Drop references to netlink.pdf

The website no longer exists and the PDF file can't even be
retrieved via archive.org.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agodocs: apps: Drop Snooze
Andrea Bolognani [Tue, 24 May 2022 07:48:30 +0000 (09:48 +0200)]
docs: apps: Drop Snooze

The website is still up, but the software itself was last
updated in 2014.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agodocs: apps: Drop Cracow Cloud One
Andrea Bolognani [Tue, 24 May 2022 07:42:33 +0000 (09:42 +0200)]
docs: apps: Drop Cracow Cloud One

The website is still up, although the latency is so high that it
could hardly considered usable; the software itself was last
updated in 2015.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agodocs: apps: Drop Tivoli Provisioning Manager
Andrea Bolognani [Tue, 24 May 2022 07:26:59 +0000 (09:26 +0200)]
docs: apps: Drop Tivoli Provisioning Manager

It doesn't seem to be a current product: there is no proper
website for it, and the most recent installation instructions
I've been able to locate are targeted at RHEL 6.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agosyntax-check: Drop unused http_sites
Andrea Bolognani [Tue, 24 May 2022 07:23:53 +0000 (09:23 +0200)]
syntax-check: Drop unused http_sites

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agosyntax-check: Enforce sc_prohibit_backslash_alignment everywhere
Andrea Bolognani [Mon, 23 May 2022 15:01:00 +0000 (17:01 +0200)]
syntax-check: Enforce sc_prohibit_backslash_alignment everywhere

Basically all files in the repository are already passing the
check, except for syntax-check.mk itself. Fix that, and stop
limiting the files on which the test is performed.

These changes have been generated by running

  $ sed -Ei 's/[ '$'\t'']+\\$/ \\/g' $(git grep -El '[ '$'\t'']+\\$')

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agosyntax-check: Drop sc_ prefix when adding checks to meson
Andrea Bolognani [Mon, 23 May 2022 13:47:43 +0000 (15:47 +0200)]
syntax-check: Drop sc_ prefix when adding checks to meson

All checks are added to the syntax-check suite, and this name is
displayed prominently in the output of 'meson test', so there
really is no need to include the sc_ prefix too.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agosyntax-check: Add all target
Andrea Bolognani [Mon, 23 May 2022 14:20:31 +0000 (16:20 +0200)]
syntax-check: Add all target

The makefile is an implementation detail, so point users towards
the proper way of running syntax-check if they happen to call it
directly.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agosyntax-check: Reorganize file
Andrea Bolognani [Mon, 23 May 2022 14:23:59 +0000 (16:23 +0200)]
syntax-check: Reorganize file

Due to the way make works, we are not forced to follow a strict
order in defining rules and variables. In fact _sc_search_regexp,
which is used by all checks, is only defined halfway through the
file.

Shuffle things around so that the things that we need to look at
the most frequently are closer to the top of the file.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agosyntax-check: Detect awk the same as all other programs
Andrea Bolognani [Mon, 23 May 2022 13:20:48 +0000 (15:20 +0200)]
syntax-check: Detect awk the same as all other programs

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agosyntax-check: Drop ME variable
Andrea Bolognani [Mon, 23 May 2022 13:55:16 +0000 (15:55 +0200)]
syntax-check: Drop ME variable

It's only used in diagnostics, and even there it's not
particularly useful and can make it more difficult to spot the
actual error message.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agosyntax-check: Drop unused machinery
Andrea Bolognani [Mon, 23 May 2022 12:48:46 +0000 (14:48 +0200)]
syntax-check: Drop unused machinery

_equal is not used anywhere; the rest of the code implements the
syntax-check target, which takes care of figuring out the list of
checks that have been defined and running them, printing the name
of each check along with its execution time.

This was useful when we were using autotools, but these days we
have meson driving the entire build process and each of the
checks is registered as a separate test, which gives us all of
the features described above for free.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agosyntax-check: Simplify VC_LIST_ALWAYS_EXCLUDE_REGEX
Andrea Bolognani [Mon, 23 May 2022 12:41:08 +0000 (14:41 +0200)]
syntax-check: Simplify VC_LIST_ALWAYS_EXCLUDE_REGEX

Most of the pattern is no longer relevant, because the files it
was intended to match have been dropped from the repository.

Specifically:

               files        commit        date
  ------------------  ------------  ----------
               *.gif  6cb131e5cbd0  2022-01-19
               *.fig  9ad637c9651f  2020-07-10
  docs/news*.html.in  f45735786a3d  2020-06-02
        docs/*.patch  6be034a8c062  2018-08-23

We can also avoid having a fallback value for the pattern: that
made sense when the implementation was coming from gnulib, as
they wouldn't be able to know in advance if the user would need
to provide their own exclude patterns, but that scenario is no
longer relevant to us.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agosyntax-check: Use VC_LIST_EXCEPT in sc_prohibit_backup_files
Andrea Bolognani [Mon, 23 May 2022 15:11:55 +0000 (17:11 +0200)]
syntax-check: Use VC_LIST_EXCEPT in sc_prohibit_backup_files

We can assume that VC_LIST_ALWAYS_EXCLUDE_REGEX will not be
defined in a way that would catch backup files.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agosyntax-check: Improve sc_prohibit_config_h_in_headers check
Andrea Bolognani [Mon, 23 May 2022 13:46:24 +0000 (15:46 +0200)]
syntax-check: Improve sc_prohibit_config_h_in_headers check

In its current form, the check will not only catch the intended

  #include <config.h>

but also stuff like

  #include <wireshark/config.h>
  #include "qemu_interop_config.h"
  #include <meson-config.h>

The last one is problematic, because it's used in config.h itself.
Making the pattern more strict allows us to drop the exception.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agosyntax-check: Remove sc_copyright_usage exception
Andrea Bolognani [Mon, 23 May 2022 14:12:20 +0000 (16:12 +0200)]
syntax-check: Remove sc_copyright_usage exception

The pattern in build-aux/syntax-check.mk is written specifically
so that it won't match itself, which makes having an exception
for the file unnecessary.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agosyntax-check: Remove sc_gettext_init exception
Andrea Bolognani [Mon, 23 May 2022 13:34:58 +0000 (15:34 +0200)]
syntax-check: Remove sc_gettext_init exception

The file src/util/vireventglib.c doesn't contain a main() function
and so it's not even considered by the check.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agosyntax-check: Drop sc_bindtextdomain check
Andrea Bolognani [Mon, 23 May 2022 13:30:29 +0000 (15:30 +0200)]
syntax-check: Drop sc_bindtextdomain check

This is one of the standard checks that we have inherited from
gnulib, but it's not applicable to libvirt because we don't want
plain bindtextdomain() to be used: virGettextInitialize() is our
own private API that should be used instead.

The sc_gettext_init check ensures that our private API is used
in all the places where it makes sense, and the sc_bindtextdomain
check was disabled entirely via a blanket exception. Drop it
instead of keeping dead code around.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoqemu_hotplug: Deny changing @rss and @rss_hash_report attributes of virtio vNICs
Michal Privoznik [Mon, 23 May 2022 15:17:02 +0000 (17:17 +0200)]
qemu_hotplug: Deny changing @rss and @rss_hash_report attributes of virtio vNICs

We have virDomainUpdateDeviceFlags() API that allows changing of
some attributes of a device whilst domain is still running (e.g.
setting different QoS, link state change on vNICs). But only very
limited set of attributes can be changed and we have to check
whether user isn't trying to sneak in a change that's not
allowed. Well, in case of a virtio vNIC we forgot to check for
@rss and @rss_hash_report attributes of <driver/>.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2082540
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Laine Stump <laine@redhat.com>
2 years agonodedev: prevent internal error on dev_busid parse
Boris Fiuczynski [Mon, 23 May 2022 15:56:21 +0000 (17:56 +0200)]
nodedev: prevent internal error on dev_busid parse

As "none" is a legal value represented in the sysfs attribute dev_busid
this patch prevents libvirt from incorrectly reporting an internal error.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Suggested-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoqemuxml2argvtest.c: use CAPS_ARCH_LATEST() with pseries-cpu-compat-power9
Daniel Henrique Barboza [Fri, 20 May 2022 18:15:18 +0000 (15:15 -0300)]
qemuxml2argvtest.c: use CAPS_ARCH_LATEST() with pseries-cpu-compat-power9

Use the newly added ARG_CAPS_HOST_CPU_MODEL to set which host CPU we
expect the test to use - the test should fail when using a POWER8 host
cpu but complete when using a POWER9 host cpu.

Two new macros were added because we will be adding similar tests in the
near future when adding support for the Power10 chip.

Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2 years agotestutilsqemu: introduce ARG_CAPS_HOST_CPU_MODEL
Daniel Henrique Barboza [Fri, 20 May 2022 13:58:23 +0000 (10:58 -0300)]
testutilsqemu: introduce ARG_CAPS_HOST_CPU_MODEL

When loading a latest caps for an arch for the first time the following
occurs in testQemuInfoInitArgs():

- the caps file is located. It's not in the cache since it's the first time
it's being read;
- the cachecaps are retrieved using qemuTestParseCapabilitiesArch() and
stored in the capscache;
- FLAG_REAL_CAPS is set and regular flow continues.

Loading the same latest caps for the second time the caps are loaded from the
cache, skipping qemuTestParseCapabilitiesArch(). By skipping this function it
means that it also skips virQEMUCapsLoadCache() and, more relevant to
our case, virQEMUCapsInitHostCPUModel(). This function will use the
current arch and cpuModel settings to write the qemuCaps that are being
stored in the cache. And we're also setting FLAG_REAL_CAPS, meaning that
we won't be updating the qemucaps host model via testUpdateQEMUCaps() as
well.

This has side-effects such as:

- the first time the latest caps for an arch is loaded determines the
cpuModel it'll use during the current qemuxml2argvtest run. For
example, when running all tests, the first time the latest ppc64 caps
are read is on "disk-floppy-pseries" test. Since the current host arch
at this point is x86_64, the cpuModel that will be set for this
capability is "core2duo";

- every other latest arch test will use the same hostCPU as the first
one set since we read it from the cache after the first run.
qemuTestSetHostCPU() makes no difference because we won't update the
host model due to FLAG_REAL_CAPS being set. Using the previous example,
every other latest ppc64 test that will be run will be using the
"core2duo" cpuModel.

Using fake capabilities (e.g. using DO_TEST()) prevents FLAG_REAL_CAPS to
be set, meaning that the cpuModel will be updated using the current
settings the test is being ran due to testUpdateQEMUCaps().

Note that not all latest caps arch tests care about the cpuModel being
set to an unexpected default cpuModel. But some tests will care, e.g.
"pseries-cpu-compat-power9", and changing it from DO_TEST() to
DO_TEST_CAPS_ARCH_LATEST() will make it fail every time the
"disk-floppy-pseries" is being ran first.

One way of fixing it is to rethink all the existing logic, for example
not setting FLAG_REAL_CAPS for latest arch tests. Another way is
presented here. ARGS_CAPS_HOST_CPU_MODEL is a new testQemuInfo arg that
allow us to set any specific host CPU model we want when running latest
arch caps tests. This new arg can then be used when converting existing
DO_TEST() testcases to DO_TEST_CAPS_ARCH_LATEST() that requires a
specific host CPU setting to be successful, which we're going to do in
the next patch with "pseries-cpu-compat-power9".

Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2 years agoqemu_capspriv.h: fix indentation
Daniel Henrique Barboza [Fri, 20 May 2022 12:29:11 +0000 (09:29 -0300)]
qemu_capspriv.h: fix indentation

Fix identation of virQEMUCapsUpdateHostCPUModel() params.

Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2 years agoqemuxml2xmltests.c: convert pseries tests to DO_TEST_CAPS_ARCH_LATEST
Daniel Henrique Barboza [Sat, 21 May 2022 14:54:56 +0000 (11:54 -0300)]
qemuxml2xmltests.c: convert pseries tests to DO_TEST_CAPS_ARCH_LATEST

qemuxml2xmltests that have "pseries" in the name now use the
DO_TEST_CAPS_LATEST_ARCH() macro.

Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2 years agoqemu: Do not return NULL when qemuMigrationSrcBegin succeeds
Jiri Denemark [Mon, 23 May 2022 14:31:51 +0000 (16:31 +0200)]
qemu: Do not return NULL when qemuMigrationSrcBegin succeeds

My recent commit v8.3.0-201-gc500955e95 tried to fix a regression which
would cause the function to return success even if virCloseCallbacksSet
failed. But due to a strange code flow in the function introduced an
opposite regression. The function would return NULL on success when
called without VIR_MIGRATE_CHANGE_PROTECTION flag.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agonodedev: add tests for optional device address to css device
Boris Fiuczynski [Fri, 13 May 2022 10:31:16 +0000 (12:31 +0200)]
nodedev: add tests for optional device address to css device

Add nodedev schema parsing and format tests for the optional new device
address on the css devices.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agonodedev: add optional device address of channel device to css device
Boris Fiuczynski [Fri, 13 May 2022 10:31:15 +0000 (12:31 +0200)]
nodedev: add optional device address of channel device to css device

Add the new introduced sysfs attribute dev_busid which provides the address
of the device in the subchannel independent from the bound device driver.
It is added if available in the sysfs as optional channel_dev_addr element into
the css device capabilty providing the ccw deivce address attributes cssid,
ssid and devno.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoschemas: refactor out nodedev ccw address schema
Boris Fiuczynski [Fri, 13 May 2022 10:31:14 +0000 (12:31 +0200)]
schemas: refactor out nodedev ccw address schema

Refactor out nodedev ccw address schema for easy reuse later.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agonodedev: refactor css XML parsing from ccw XML parsing
Boris Fiuczynski [Fri, 13 May 2022 10:31:13 +0000 (12:31 +0200)]
nodedev: refactor css XML parsing from ccw XML parsing

In preparation for easier extension later.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agonodedev: refactor ccw device address parsing from XML
Boris Fiuczynski [Fri, 13 May 2022 10:31:12 +0000 (12:31 +0200)]
nodedev: refactor ccw device address parsing from XML

Move ccw device address XML parsing into new method for later reuse.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agonodedev: refactor css format from ccw format method
Boris Fiuczynski [Fri, 13 May 2022 10:31:11 +0000 (12:31 +0200)]
nodedev: refactor css format from ccw format method

In preparation for easier extension later.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoutil: add virCCWDeviceAddressFromString to virccw
Boris Fiuczynski [Fri, 13 May 2022 10:31:10 +0000 (12:31 +0200)]
util: add virCCWDeviceAddressFromString to virccw

Add a method to parse a ccw device address from a string.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoutil: add ccw device address parsing into virccw
Boris Fiuczynski [Fri, 13 May 2022 10:31:09 +0000 (12:31 +0200)]
util: add ccw device address parsing into virccw

Add virCCWDeviceAddressParseFromString and use it in nodedev udev.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoconf: adjust method name virDomainDeviceCCWAddressParseXML
Boris Fiuczynski [Fri, 13 May 2022 10:31:08 +0000 (12:31 +0200)]
conf: adjust method name virDomainDeviceCCWAddressParseXML

Adjust method name virDomainDeviceCCWAddressParseXML to
virCCWDeviceAddressParseXML.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoutil: refactor virDomainDeviceCCWAddressEqual into virccw
Boris Fiuczynski [Fri, 13 May 2022 10:31:07 +0000 (12:31 +0200)]
util: refactor virDomainDeviceCCWAddressEqual into virccw

Refactor virDomainDeviceCCWAddressEqual into virccw and rename method as
virCCWDeviceAddressEqual.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoutil: refactor virDomainDeviceCCWAddressIsValid into virccw
Boris Fiuczynski [Fri, 13 May 2022 10:31:06 +0000 (12:31 +0200)]
util: refactor virDomainDeviceCCWAddressIsValid into virccw

Refactor virDomainDeviceCCWAddressIsValid into virccw and rename method
as virCCWDeviceAddressIsValid.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoutil: refactor virDomainCCWAddressIncrement into virccw
Boris Fiuczynski [Fri, 13 May 2022 10:31:05 +0000 (12:31 +0200)]
util: refactor virDomainCCWAddressIncrement into virccw

Refactor virDomainCCWAddressIncrement into virccw and rename method as
virCCWDeviceAddressIncrement.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoutil: refactor ccw address constants into virccw
Boris Fiuczynski [Fri, 13 May 2022 10:31:04 +0000 (12:31 +0200)]
util: refactor ccw address constants into virccw

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoutil: make reuse of ccw device address format constant
Boris Fiuczynski [Fri, 13 May 2022 10:31:03 +0000 (12:31 +0200)]
util: make reuse of ccw device address format constant

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoutil: refactor virDomainCCWAddressAsString into virccw
Boris Fiuczynski [Fri, 13 May 2022 10:31:02 +0000 (12:31 +0200)]
util: refactor virDomainCCWAddressAsString into virccw

Move virDomainCCWAddressAsString into virccw and rename method as
virCCWDeviceAddressAsString.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agoutil: refactor virDomainDeviceCCWAddress into virccw.h
Boris Fiuczynski [Fri, 13 May 2022 10:31:01 +0000 (12:31 +0200)]
util: refactor virDomainDeviceCCWAddress into virccw.h

Refactor ccw data structure virDomainDeviceCCWAddress into util virccw.h
and rename it as virCCWDeviceAddress.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2 years agonodedev: fix reported error msg in css cap XML parsing
Boris Fiuczynski [Fri, 13 May 2022 10:31:00 +0000 (12:31 +0200)]
nodedev: fix reported error msg in css cap XML parsing

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>