- 10 6月, 2020 15 次提交
-
-
由 Michal Privoznik 提交于
QEMU has -fw_cfg which allows users to tweak how firmware configures itself and/or provide new configuration blobs. Introduce new <sysinfo/> type "fwcfg" that will hold these new blobs. It's possible to either specify new value as a string or provide a filename which contents then serve as the value. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com> Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
-
由 Michal Privoznik 提交于
Setting OEM strings for a domain was introduced in v4.1.0-rc1~315. However, any application that wanted to use them (e.g. to point to an URL where a config file is stored) had to 'dmidecode -u --oem-string N' (where N is index of the string). Well, we can expose them under our <sysinfo/> XML and if the domain is running Libvirt inside it can be obtained using virConnectGetSysinfo() API. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com> Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
-
由 Michal Privoznik 提交于
Since nobody sets custom dmidecode path anymore, we can drop all code that exists only because of that. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com> Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
-
由 Michal Privoznik 提交于
Problem with custom dmidecode scripts is that they are hard to modify, especially if we will want them to act differently based on passed arguments. So far, we have two scripts which do no more than 'cat $sysinfo' where $sysinfo is saved dmidecode output. The virCommandSetDryRun() can be used to trick virSysinfoReadDMI() thinking it executed real dmidecode. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com> Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
-
由 Michal Privoznik 提交于
When trying to decode DMI table, just before constructing virCommand() the decoder is looked for in PATH using virFindFileInPath(). Well, this is not necessary because virCommandRun() will do this too (in virExec()). Signed-off-by: NMichal Privoznik <mprivozn@redhat.com> Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
-
由 Michal Privoznik 提交于
Virtually every variable defined in the function can be freed automatically when going out of scope. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com> Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
-
由 Jiri Denemark 提交于
Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Jiri Denemark 提交于
Before QEMU introduced migratable CPU property, "-cpu host" included all features that could be enabled on the host, even those which would block migration. In other words, the default was equivalent to migratable=off. When the migratable property was introduced, the default changed to migratable=on. Let's record the default in domain XML. Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Jiri Denemark 提交于
Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Jiri Denemark 提交于
Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Jiri Denemark 提交于
The attribute is only allowed for host-passthrough CPUs and it can be used to request only migratable or all supported features to be enabled in the virtual CPU. Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Jiri Denemark 提交于
Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Jiri Denemark 提交于
Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Jiri Denemark 提交于
Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Jiri Denemark 提交于
Signed-off-by: NJiri Denemark <jdenemar@redhat.com> Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
-
- 09 6月, 2020 5 次提交
-
-
由 Michal Privoznik 提交于
There's no need to set ctxt->node outside of the function. The function can set it itself - it has all the info needed. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com> Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
-
由 Michal Privoznik 提交于
I think that since <qemu:commandline/> is kind of a hack, it doesn't deserve place in the front row. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com> Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
-
由 Bihong Yu 提交于
The virStateInitialize() function has ATTRIBUTE_NONNULL() referring to @root argument (incorrectly anyway) but in daemonRunStateInit() NULL is passed in anyway. Then there is virCommandAddArgPair() which also has ATTRIBUTE_NONNULL() for one of its arguments and then checks the argument for being NULL anyways. Signed-off-by: NBihong Yu <yubihong@huawei.com> Reviewed-by: NChuan Zheng <zhengchuan@huawei.com> Signed-off-by: NMichal Privoznik <mprivozn@redhat.com> Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Peter Krempa 提交于
Commit b50a8354 added call to qemuDomainDiskBlockJobIsSupported prior to filling the 'disk' variable resulting in a crash when attempting a block commit. https://gitlab.com/libvirt/libvirt/-/issues/31Signed-off-by: NPeter Krempa <pkrempa@redhat.com> Reviewed-by: NJán Tomko <jtomko@redhat.com>
-
由 Laine Stump 提交于
Juan Quintela noticed that when he restarted libvirt he was getting extra iptables rules added by libvirt even though he didn't have any libvirt networks that used iptables rules. It turns out this also happens if the firewalld service is restarted. The extra rules are just the private chains, and they're sometimes being added unnecessarily because they are added separately in a global networkPreReloadFirewallRules() that does the init if there are any active networks, regardless of whether or not any of those networks will actually add rules to the host firewall. The fix is to change the check for "any active networks" to instead check for "any active networks that add firewall rules". (NB: although the timing seems suspicious, this isn't a new regression caused by the recently pushed f5418b42 (which forces recreation of private chains when firewalld is restarted); it was an existing bug since iptables rules were first put into private chains, even after commit c6cbe187 delayed creation of the private chains. The implication is that any downstream based on v5.1.0 or later that cares about these extraneous (but harmless) private chains would want to backport this patch (along with the other two if they aren't already there)) Signed-off-by: NLaine Stump <laine@redhat.com> Reviewed-by: NDaniel Henrique Barboza <danielhb413@gmail.com>
-
- 05 6月, 2020 2 次提交
-
-
由 Daniel P. Berrangé 提交于
Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
-
由 Laine Stump 提交于
If virDomainUpdateDeviceFlags() was used to update an <interface>, and the interface type changed from type='network' where the network was an unmanaged bridge (so actualType == bridge) to type='bridge' (i.e. actualType *also* == bridge), the update would fail due to the perceived change in type. In practice it is okay to switch between any interface types that end up using a tap device, since libvirt just needs to attach the device to a new bridge. But in this case we were erroneously rejecting it due to a conditional that was too restrictive. This is what the code was doing: if (old->type != new->type) [allow update] else if ((oldActual == bridge and newActual == network) || (oldActual == network and newActual == bridge)) { [allow update] else [error] In the case described above though, old->type and new->type don't match, but oldActual and newActual are both 'bridge', so we get an error. This patch changes the inner conditional so that any combination of 'network' and 'bridge' for oldActual and newActual, since they both use a tap device connected to a bridge. Signed-off-by: NLaine Stump <laine@redhat.com> Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
-
- 04 6月, 2020 4 次提交
-
-
由 Daniel P. Berrangé 提交于
The previous fix accidentally picked up a debug change that put alignment back at 4, not 8, bytes as it claimed: commit 37ae0426 Author: Daniel P. Berrangé <berrange@redhat.com> Date: Wed Jun 3 11:18:23 2020 +0100 conf: force 8 byte alignment for virObjectEvent Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
-
由 Daniel P. Berrangé 提交于
We need to be able to cast from virObjectEventPtr to one of its many subclasses. Some of these subclasses have 8 byte alignment on 32-bit platforms, but virObjectEventPtr only has 4 byte alignment. Previously the virObject base class had 8 byte alignment but this dropped to 4 byte when converted to inherit from GObject. This introduces cast alignment warnings on 32-bit: ../../src/conf/domain_event.c: In function 'virDomainEventDispatchDefaultFunc': ../../src/conf/domain_event.c:1656:30: error: cast increases required alignment of target type [-Werror=cast-align] 1656 | rtcChangeEvent = (virDomainEventRTCChangePtr)event; | ^ ../../src/conf/domain_event.c:1785:34: error: cast increases required alignment of target type [-Werror=cast-align] 1785 | balloonChangeEvent = (virDomainEventBalloonChangePtr)event; | ^ ../../src/conf/domain_event.c:1896:35: error: cast increases required alignment of target type [-Werror=cast-align] 1896 | blockThresholdEvent = (virDomainEventBlockThresholdPtr)event; | ^ ../../src/conf/domain_event.c: In function 'virDomainQemuMonitorEventDispatchFunc': ../../src/conf/domain_event.c:1974:24: error: cast increases required alignment of target type [-Werror=cast-align] 1974 | qemuMonitorEvent = (virDomainQemuMonitorEventPtr)event; | ^ ../../src/conf/domain_event.c: In function 'virDomainQemuMonitorEventFilter': ../../src/conf/domain_event.c:2179:20: error: cast increases required alignment of target type [-Werror=cast-align] 2179 | monitorEvent = (virDomainQemuMonitorEventPtr) event; | ^ Forcing 8-byte alignment on virObjectEventPtr removes the alignment increase during casts to subclasses. Reviewed-by: NPavel Hrdina <phrdina@redhat.com> Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
-
由 Michal Privoznik 提交于
This is convenience macro, use it more. This commit was generated using the following spatch: @@ symbol node; identifier old; identifier ctxt; type xmlNodePtr; @@ - xmlNodePtr old; + VIR_XPATH_NODE_AUTORESTORE(ctxt); ... - old = ctxt->node; ... when != old - ctxt->node = old; @@ symbol node; identifier old; identifier ctxt; type xmlNodePtr; @@ - xmlNodePtr old = ctxt->node; + VIR_XPATH_NODE_AUTORESTORE(ctxt); ... when != old - ctxt->node = old; Signed-off-by: NMichal Privoznik <mprivozn@redhat.com> Reviewed-by: NJán Tomko <jtomko@redhat.com>
-
由 Michal Privoznik 提交于
This reverts b897973f Even though it may have been the case in the past, relative XPaths don't overwrite the ctxt->node. Thus, there's no need to save it. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com> Reviewed-by: NJán Tomko <jtomko@redhat.com>
-
- 03 6月, 2020 9 次提交
-
-
由 Jim Fehlig 提交于
Similar to commits 55ce6564 and 6c17606b in the qemu driver, make separate copies of persistent and live device config and normalize the MAC address between the two. This avoids having different MAC address for the persistent and live config, ensuring the device has the same address when the persistent config takes affect after a VM restart. Signed-off-by: NJim Fehlig <jfehlig@suse.com> Reviewed-by: NLaine Stump <laine@redhat.com>
-
由 Daniel P. Berrangé 提交于
To avoid bugs with mixing of g_object_(ref|unref) vs virObject(Ref|Unref), we want every virObject to be a GObject. Reviewed-by: NMichal Privoznik <mprivozn@redhat.com> Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
-
由 Daniel P. Berrangé 提交于
Memory allocated using g_object_new must never be released using VIR_FREE/g_free because g_object_new uses a special allocation strategy internally. Reviewed-by: NMichal Privoznik <mprivozn@redhat.com> Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
-
由 Daniel P. Berrangé 提交于
The ref count will be private to the GObject base class and we must not peek at it, even for debugging messages. Reviewed-by: NMichal Privoznik <mprivozn@redhat.com> Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
-
由 Daniel P. Berrangé 提交于
GObject has an arbitrary limit on the object struct size of 0xffff bytes. It is expected that any large fields be separately allocated. Reviewed-by: NMichal Privoznik <mprivozn@redhat.com> Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
-
由 Daniel P. Berrangé 提交于
To prepare for a conversion to GObject, we need virObjectUnref to have the same API design as g_object_unref, which means it needs to be void. A few places do actually care about the return value though, and in these cases a thread local flag is used to determine if the dispose method was invoked. Reviewed-by: NMichal Privoznik <mprivozn@redhat.com> Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
-
由 Daniel P. Berrangé 提交于
Some, but not all, of the monitor event handlers check the virObjectUnref return value to see if the domain was disposed. It should not be possible for this to happen, since the function already holds a lock on the domain and has only just acquired an extra reference on the domain a few lines earlier. Reviewed-by: NMichal Privoznik <mprivozn@redhat.com> Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
-
由 Daniel P. Berrangé 提交于
Reviewed-by: NLaine Stump <laine@redhat.com> Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
-
由 Daniel P. Berrangé 提交于
Reviewed-by: NLaine Stump <laine@redhat.com> Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
-
- 02 6月, 2020 1 次提交
-
-
由 Michal Privoznik 提交于
Upon migration with disks, libvirt determines if each disk exists on the destination and tries to pre-create missing ones. Well, NVMe disks can't be pre-created, but they can be checked for presence. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1823639Signed-off-by: NMichal Privoznik <mprivozn@redhat.com> Reviewed-by: NJán Tomko <jtomko@redhat.com>
-
- 01 6月, 2020 1 次提交
-
-
由 Liao Pingfang 提交于
According to the context, here we are checking net->downscript's validity, Signed-off-by: NLiao Pingfang <liao.pingfang@zte.com.cn> Signed-off-by: NMichal Privoznik <mprivozn@redhat.com> Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
-
- 27 5月, 2020 1 次提交
-
-
由 Christian Ehrhardt 提交于
If built without attr support removing any image will trigger qemuBlockRemoveImageMetadata (the one that emits the warning) -> qemuSecurityMoveImageMetadata -> virSecurityManagerMoveImageMetadata -> virSecurityDACMoveImageMetadata -> virSecurityDACMoveImageMetadataHelper -> virProcessRunInFork (spawns subprocess) -> virSecurityMoveRememberedLabel In there due to !HAVE_LIBATTR virFileGetXAttrQuiet will return ENOSYS and from there the chain will error out. That is wrong and looks like: libvirtd[6320]: internal error: child reported (status=125): libvirtd[6320]: Unable to remove disk metadata on vm testguest from /var/lib/uvtool/libvirt/images/testguest.qcow (disk target vda) This change makes virSecurityDACMoveImageMetadataHelper and virSecuritySELinuxMoveImageMetadataHelper accept that error code gracefully and in that sense it is an extension of: 5214b2f1 "security: Don't skip label restore on file systems lacking XATTRs" which does the same for other call chains into the virFile*XAttr functions. Signed-off-by: NChristian Ehrhardt <christian.ehrhardt@canonical.com> Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
-
- 26 5月, 2020 2 次提交
-
-
由 Chen Hanxiao 提交于
Support downscript for booting vm, and hotunplug interface device. Signed-off-by: NChen Hanxiao <chen_han_xiao@126.com> Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Chen Hanxiao 提交于
https://gitlab.com/libvirt/libvirt/-/issues/13 Add support for downscript: <interface type='ethernet'> <mac address='00:11:22:33:44:55'/> <script path='/etc/qemu-ifup'/> <downscript path='/path/to/my/downscript'/> </interface> Signed-off-by: NChen Hanxiao <chen_han_xiao@126.com> Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
-