1. 26 5月, 2015 9 次提交
    • J
      qemu: Add libvirt version check to refresh capabilities algorithm · a14eff38
      John Ferlan 提交于
      Rather than an algorithm based solely on libvirtd ctime to refresh the
      capabilities add the element of the libvirt build version into the equation.
      Since that version wouldn't be there prior to this code being run - don't
      fail on reading the capabilities if not found. In this case, the cache
      will always be rebuilt when a new libvirt version is installed.
      a14eff38
    • J
      qemu: Force capabilities cache refresh if libvirtd date is different · 0b4211f9
      John Ferlan 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1195882
      
      Original commit id 'cbde3589' indicates that the cache file would be
      discarded if either the QEMU binary or libvirtd 'ctime' changes; however,
      the code only discarded if the QEMU binary time didn't match or if the
      new libvirtd ctime was later than what created the cache file.
      
      Since many factors come into play with 'ctime' adjustments (including
      perhaps turning back the hands of time), change the logic to also force
      a refresh if the ctime of libvirt is different than what's in the cache.
      0b4211f9
    • J
      qemu: Resolve Coverity RESOURCE_LEAK · 2f9f7b5f
      John Ferlan 提交于
      Recent changes to the -M/--machine processing code in qemuParseCommandLine
      caused Coverity to determine there was a possible resource leak with how
      the 'list' is managed. Rather than try to add virStringFreeList calls
      everywhere - just promote list to the top of the variables and free it
      within the error processing code. Also required a couple of other tweaks
      in order to avoid double free's.
      2f9f7b5f
    • J
      conf: Resolve Coverity NEGATIVE_RETURNS · c214f56a
      John Ferlan 提交于
      Commit id '73eda710' added virDomainKeyWrapDefParseXML which uses
      virXPathNodeSet, but does not handle a -1 return thus causing a possible
      loop condition exit problem later when the return value is used.
      
      Change the logic to return the value from virXPathNodeSet if <= 0
      c214f56a
    • C
      storage: fs: Only force directory permissions if required · db1140f1
      Cole Robinson 提交于
      Only set directory permissions at pool build time, if:
      
      - User explicitly requested a mode via the XML
      - The directory needs to be created
      - We need to do the crazy NFS root-squash workaround
      
      This allows qemu:///session to call build on an existing directory
      like /tmp.
      db1140f1
    • C
      conf: storage: Don't emit empty <permissions> block · 42dd6a99
      Cole Robinson 提交于
      42dd6a99
    • C
      storage: conf: Don't set any default <mode> in the XML · 7c2d65dd
      Cole Robinson 提交于
      The XML parser sets a default <mode> if none is explicitly passed in.
      This is then used at pool/vol creation time, and unconditionally reported
      in the XML.
      
      The problem with this approach is that it's impossible for other code
      to determine if the user explicitly requested a storage mode. There
      are some cases where we want to make this distinction, but we currently
      can't.
      
      Handle <mode> parsing like we handle <owner>/<group>: if no value is
      passed in, set it to -1, and adjust the internal consumers to handle
      it.
      7c2d65dd
    • M
      parallels: fix possible crash in case of errors in prlsdkLoadDomain · 55714f78
      Maxim Nestratov 提交于
      Cleanup code in prlsdkLoadDomain doesn't take into account the fact
      if private domain structure along with freeing function is assigned
      or not. In case it is, we shouldn't call it manually because
      virDomainObjListRemove calls it and frees pdom.
      Also, allocated def structure should be freed only if it's not
      assigned to domain. Otherwise it will be called twice: one time by
      virDomainObjListRemove and the second by prlsdkLoadDomain itself.
      Signed-off-by: NMaxim Nestratov <mnestratov@parallels.com>
      55714f78
    • M
      parallels: move up updating parameter in prlsdkLoadDomain · dc58e742
      Maxim Nestratov 提交于
      It is better to get all necessary parameters and check them on newly
      created configuration before actually creating a domain with them or
      applying them to an existing domain.
      Signed-off-by: NMaxim Nestratov <mnestratov@parallels.com>
      dc58e742
  2. 24 5月, 2015 5 次提交
    • J
      network: Resolve Coverity FORWARD_NULL · 38f0fc19
      John Ferlan 提交于
      To silence Coverity just add a 'p &&' in front of the check in
      networkFindUnusedBridgeName after the strchr() call.  Even though
      we know it's not possible to have strchr return NULL since the only
      way into the function is if there is a '%' in def->bridge or it's NULL.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      38f0fc19
    • J
      conf: Resolve Coverity FORWARD_NULL · 264965d9
      John Ferlan 提交于
      Even though it's been pointed out they are false positives:
      
      http://www.redhat.com/archives/libvir-list/2015-May/msg00301.html
      
      and
      
      http://www.redhat.com/archives/libvir-list/2015-May/msg00302.html
      
      these still show up as Coverity issues. In order to silence Coverity
      add an 'sa_assert' prior to check failure.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      264965d9
    • J
      storage: Resolve Coverity FORWARD_NULL · 2d0243f4
      John Ferlan 提交于
      Coverity points out it's possible for one of the virCommand{Output|Error}*
      API's to have not allocated 'output' and/or 'error' in which case the
      strstr comparison will cause a NULL deref
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      2d0243f4
    • R
      bhyve: fix build with gcc48 · fcac0cf7
      Roman Bogorodskiy 提交于
      Build with gcc 4.8 fails with:
      
      bhyve/bhyve_monitor.c: In function 'bhyveMonitorIO':
      bhyve/bhyve_monitor.c:51:18: error: missing initializer for field 'tv_sec' of 'const struct timespec' [-Werror=missing-field-initializers]
           const struct timespec zerowait = {};
      
      Explicitly initialize zerowait to fix the build.
      fcac0cf7
    • P
      Add missing XDR_FLAGS · dd42ff07
      Pavel Fedin 提交于
      Fixes build problems on x86_64-cygwin host for aarch64 target:
        CC       lxc/libvirt_driver_lxc_impl_la-lxc_monitor_protocol.lo
      In file included from lxc/lxc_monitor_protocol.c:7:0:
      lxc/lxc_monitor_protocol.h:9:21: fatal error: rpc/rpc.h: No such file or directory
      
        CC       rpc/libvirt_setuid_rpc_client_la-virnetmessage.lo
      In file included from rpc/virnetmessage.h:24:0,
                       from rpc/virnetmessage.c:26:
      rpc/virnetprotocol.h:9:21: fatal error: rpc/rpc.h: No such file or directory
      
        CC       lxc/libvirt_lxc-lxc_monitor_protocol.o
      In file included from lxc/lxc_monitor_protocol.c:7:0:
      lxc/lxc_monitor_protocol.h:9:21: fatal error: rpc/rpc.h: No such file or directory
      Signed-off-by: NPavel Fedin <p.fedin@samsung.com>
      dd42ff07
  3. 22 5月, 2015 5 次提交
    • L
      util: better error message after failure to initialize firewall backend · a9c53462
      Laine Stump 提交于
      If the firewalld backend wasn't available and libvirt decides to try
      setting up a "direct" backend, it checks for the presence of iptables,
      ip6tables, and ebtables. If they are not found, a message like this is logged:
      
        error : virFirewallValidateBackend:193 : direct firewall backend
                requested, but /usr/sbin/ip6tables is not available:
                No such file or directory
      
      But then at a later time if an attempt is made to use the virFirewall
      API, failure will be indicated with:
      
        error : virFirewallApply:936 : out of memory
      
      This patch changes virFirewallApply to first check if a firewall
      backend hadn't been successfully setup, and logs a slightly more
      informative message in that case:
      
        error : virFirewallApply:940 : internal error:
                Failed to initialize a valid firewall backend
      
      This resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1223876
      a9c53462
    • L
      netdev: fail when setting up an SRIOV VF if PF is offline · 474523fa
      Laine Stump 提交于
      If an SRIOV PF is offline, the kernel won't complain if you set the
      mac address and vlan tag for a VF via this PF, and it will even let
      you assign the VF to a guest using PCI device assignment or macvtap
      passthrough. But in this case (the PF isn't online), the device won't
      be usable in the guest.
      
      Silently setting the PF online would solve the connectivity problem,
      but as pointed out by Dan Berrange, when an interface is set online
      with no associated config, the kernel will by default turn on IPv6
      autoconf, which could create unexpected security problems for the
      host. For this reason, this patch instead logs an error and fails the
      operation.
      
      This resolves: https://bugzilla.redhat.com/show_bug.cgi?id=893738
      
      Originally filed against RHEL6, but present in every version of
      libvirt until today.
      474523fa
    • C
      storage: conf: Don't output owner/group -1 · c4d27bdd
      Cole Robinson 提交于
      -1 is just an internal placeholder and is meaningless to output in the XML.
      c4d27bdd
    • M
      node_device: fix libvirt build if WITH_HAL is defined · b903b3b0
      Maxim Nestratov 提交于
      commit ffc40b63 changed uniond _virNodeDevCapData into a typedef
      named virNodeDevCapData with a struct that contains the union as well
      as a type enum. This change necessitated changing every reference to
      "caps->type" into "caps->data.type", but the author of that patch
      failed to test a build "WITH_HAL". This patch fixes the one place in
      the hal backend that needed changing.
      b903b3b0
    • M
      sysinfo: Fix reports on ARM · 85128e29
      Michal Privoznik 提交于
      Due to a kernel commit (b4b8f770e), cpuinfo format has changed on
      ARMs. Firstly, 'Processor: ...' may not be reported, it's
      replaced by 'model name: ...'. Secondly, the "Processor" string
      may occur in CPU name, e.g. 'ARMv7 Processor rev 5 (v7l)'.
      Therefore, we must firstly look for 'model name' and then for
      'Processor' if not found.
      Moreover, lines in the cpuinfo file are shuffled, so we better
      not manipulate the pointer to start of internal buffer as we may
      lost some info.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      85128e29
  4. 21 5月, 2015 12 次提交
  5. 20 5月, 2015 5 次提交
  6. 19 5月, 2015 4 次提交
    • M
      qemu: Fix numatune nodeset reporting · 9deb96f9
      Martin Kletzander 提交于
      Since af2a1f05,
      qemuDomainGetNumaParameters() returns invalid value for a running
      guest.  The problem is that it is getting the information from cgroups,
      but the parent cgroup is being left alone since the mentioned commit.
      Since the running guest's XML is in sync with cgroups, there is no need
      to look into cgroups (unless someone changes the configuration behind
      libvirt's back).  Returning the info from the definition fixes a bug and
      is also a cleanup.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1221047Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      9deb96f9
    • J
      xenconfig: fix spice mousemode and copypaste · a5b55bd9
      Jim Fehlig 提交于
      From xl.cfg950 man page:
      
      spiceagent_mouse=BOOLEAN
      Whether SPICE agent is used for client mouse mode. The default is
      true (1) (turn on)
      
      spicevdagent=BOOLEAN
      Enables spice vdagent. The Spice vdagent is an optional component for
      enhancing user experience and performing guest-oriented management
      tasks. Its features includes: client mouse mode (no need to grab
      mouse by client, no mouse lag), automatic adjustment of screen
      resolution, copy and paste (text and image) between client and domU.
      It also requires vdagent service installed on domU o.s. to work.
      The default is 0.
      
      spice_clipboard_sharing=BOOLEAN
      Enables Spice clipboard sharing (copy/paste). It requires spicevdagent
      enabled. The default is false (0).
      
      So if spiceagent_mouse is enabled (client mouse mode) or
      spice_clipboard_sharing is enabled, spicevdagent must be enabled.
      Along with this change, s/spicedvagent/spicevdagent, set
      spiceagent_mouse correctly, and add a test for these spice
      features.
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      a5b55bd9
    • J
      xenconfig: fix spicepasswd handling · a460295f
      Jim Fehlig 提交于
      The logic related to spicedisable_ticketing and spicepasswd was
      inverted.  As per man xl.cfg(5), 'spicedisable_ticketing = 1'
      means no passwd is required.  On the other hand, a passwd is
      required if 'spicedisable_ticketing = 0'.  Fix the logic and
      produce and error if 'spicedisable_ticketing = 0' but spicepasswd
      is not provided.  Also fix the spice cfg test file.
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      a460295f
    • J
      xenconfig: format spice listenAddr when formating ports · e21b1180
      Jim Fehlig 提交于
      Move formating of spice listenAddr to the section of code
      where spice ports are formatted.  It is more logical to
      format address and ports together.  Account for the change
      in spice cfg test file by moving 'spicehost'.
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      e21b1180