1. 18 12月, 2012 20 次提交
  2. 17 12月, 2012 6 次提交
    • P
      conf: cpu: Fix memory leak when specifying cpu vendor_id manually · fb49ffc3
      Peter Krempa 提交于
      The field was not freed from the cpu definition.
      fb49ffc3
    • K
      conf: cpu: Fix parsing of vendor_id · 1190a824
      Ken ICHIKAWA 提交于
      This patch fixes a problem that vendor_id attribute can not be defined
      when fallback attribute is not defined.
      
      If I define domain xml like below:
      <domain>
        <cpu>
          <model vendor_id='aaaabbbbcccc'>core2duo</model>
        </cpu>
      </domain>
      
      In dumpxml, vendor_id is not reflected:
      <domain>
        <cpu mode='custom' match='exact'>
          <model fallback='allow'>core2duo</model>
        </cpu>
      </domain>
      
      The expected output is:
      <domain>
        <cpu mode='custom' match='exact'>
          <model fallback='allow' vendor_id='aaaabbbbcccc'>core2duo</model>
        </cpu>
      </domain>
      
      If the fallback attribute and vendor_id attribute is defined at the same
      time, it's reflected as expected.
      Signed-off-by: NKen ICHIKAWA <ichikawa.ken@jp.fujitsu.com>
      1190a824
    • D
      Support custom 'svirt_tcg_t' context for TCG based guests · 77d3a809
      Daniel P. Berrange 提交于
      The current SELinux policy only works for KVM guests, since
      TCG requires the 'execmem' privilege. There is a 'virt_use_execmem'
      boolean to turn this on globally, but that is unpleasant for users.
      This changes libvirt to automatically use a new 'svirt_tcg_t'
      context for TCG based guests. This obsoletes the previous
      boolean tunable and makes things 'just work(tm)'
      
      Since we can't assume we run with new enough policy, I also
      make us log a warning message (once only) if we find the policy
      lacks support. In this case we fallback to the normal label and
      expect users to set the boolean tunable
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      77d3a809
    • G
      qemu: use newer -device video device in qemu commandline · aa51202b
      Guannan Ren 提交于
      '-device VGA' maps to '-vga std'
      '-device cirrus-vga' maps to '-vga cirrus'
      '-device qxl-vga' maps to '-vga qxl'
                   (there is also '-device qxl' for secondary devices)
      '-device vmware-svga' maps to '-vga vmware'
      
      For qemu(>=1.2), we can use -device to replace -vga for video
      device. For the primary video device, the patch tries to use 0x2
      slot for matching old qemu. If the 0x2 slot is allocated already,
      the addr property could help for using any available slot.
      For qemu(< 1.2), we keep using -vga for primary device.
      aa51202b
    • G
      conf: add optional attribte primary to video <model> element · 09938bb3
      Guannan Ren 提交于
      If there are multiple video devices
      primary = 'yes' marks this video device as the primary one.
      The rest are secondary video devices. No more than one could be
      mark as primary. If none of them has primary attribute, the first
      one will be the primary by default like what it was.
      The reason of this changing is that for qemu, only one primary video
      device is permitted which can be of any type. For secondary video
      devices, only qxl is allowd. Primary attribute removes the restriction
      that the first have to be the primary one.
      
      We always put the primary video device into the first position of
      video device structure array after parsing.
      09938bb3
    • G
      qemu: add qemu vga devices caps and one cap to mark them usable · 4c993d8a
      Guannan Ren 提交于
      QEMU_CAPS_DEVICE_QXL          -device qxl
      QEMU_CAPS_DEVICE_VGA          -device VGA
      QEMU_CAPS_DEVICE_CIRRUS_VGA   -device cirrus-vga
      QEMU_CAPS_DEVICE_VMWARE_SVGA  -device vmware-svga
      
      QEMU_CAPS_DEVICE_VIDEO_PRIMARY  /* safe to use -device XXX
                                       for primary video device */
      
      Fix a typo in qemuCapsObjectTypes, the string 'qxl' here
      should be -device qxl rather than -vga [...|qxl|..]
      4c993d8a
  3. 15 12月, 2012 3 次提交
    • E
      build: minor build fixes for BSD · 70743dae
      Eric Blake 提交于
      Noticed these while building on FreeBSD.
      
      * src/qemu/qemu_monitor.c (qemuMonitorBlockInfoLookup): Rename
      variable to avoid 'devname' collision.
      * src/qemu/qemu_driver.c (qemuDomainInterfaceStats): Mark unused
      variable.
      70743dae
    • R
      Socket identity support for FreeBSD. · 0c94357f
      Roman Bogorodskiy 提交于
      This adds an implementation of virNetSocketGetUNIXIdentity()
      using LOCAL_PEERCRED socket option and xucred struct, defined
      in <sys/ucred.h> on systems that have it.
      0c94357f
    • L
      network: fix (non)update of dnsmasq config during virDomainUpdateDeviceFlags · e3802e13
      Laine Stump 提交于
      A forgotten "!" in recently-modified code at the top of
      networkRefreshDaemon() meant an improper early return, which led to 1)
      dnsmasq config files not being updated from the newly modified config,
      and 2) dnsmasq not being sent a SIGHUP so that it could learn about
      the changes to the config.
      
      virNetworkDefGetIpByIndex() returns NULL if there are no ip objects of
      the requested type, and if there are no IP elements, then dnsmasq
      shouldn't be running, so we can return early. Otherwise we should
      rewrite the config files and send a SIGHUP.
      e3802e13
  4. 14 12月, 2012 10 次提交
    • M
      sanlock: Re-add lockspace unconditionally · 11cfa288
      Michal Privoznik 提交于
      Currently, if sanlock is already registering a lockspace other
      libvirtd instances (from other hosts) obtain -EINPROGRESS. On
      sufficiently new sanlock, sanlock_inq_lockspace() is called,
      which suspend execution until lockspace state is changed. With
      current libvirt implementation, we fail to retry adding the
      lockspace again but continue in error path. Therefore we produce
      meaningless error message:
      
      virLockManagerSanlockSetupLockspace:363 : Unable to add lockspace
      /var/lib/libvirt/sanlock/__LIBVIRT__DISKS__: Success
      qemudLoadDriverConfig:558 : Failed to load lock manager sanlock
      
      We should try to re-add the lockspace after its state change to
      be sure it was added successfully. In fact, with sufficiently new
      sanlock we can just avoid dummy usleep() which is used if there's
      no inquire API.
      11cfa288
    • E
      install: fix virtlockd installation · 8d59a025
      Eric Blake 提交于
      The virtlockd daemon scripts were lousy, when compared to their
      counterparts in daemon/Makefile.am.  In particular, when init
      scripts were selected, this resulted in 'make distcheck' failing
      due to failure to clean up src/virtlockd.init.
      
      * src/Makefile.am (install-systemd): Fix dependencies.  Use MKDIR_P.
      (uninstall-systemd): Remove empty directory.  Use fewer processes.
      (install-init, install-sysconfig): Use MKDIR_P.
      (uninstall-init): Remove correct file, and also empty directory.
      (uninstall-sysconfig): Remove empty directory.
      (DISTCLEANFILES): Clean up trivially built sources.
      8d59a025
    • L
      qemu: don't fail update netdev on bridge detach failure · 9cf8734e
      Laine Stump 提交于
      When a network device's bridge connection is changed by
      virDomainUpdateDevice, libvirt first removes the netdev's tap from its
      old bridge, then adds it to the new bridge. Sometimes, due to a
      network being destroyed while a guest device is still attached, the
      tap may already be "removed" from the old bridge (or the old bridge
      may not even exist any more); the existing code was needlessly failing
      the update when this happened, making it impossible to recover from
      the situation without completely detaching (i.e. removing) the netdev
      from the guest and re-attaching.
      
      Instead of failing the entire operation when removal of the tap from
      the old bridge fails, this patch changes qemuDomainChangeNetBridge to
      just log a warning and continue, allowing a reasonable recover from
      the situation.
      
      (you'll appreciate this change if you ever accidentally destroy a
      network while your guests are still using it).
      9cf8734e
    • J
      build: Install both qemu-lockd.conf and qemu-sanlock.conf · 2e59e120
      Jiri Denemark 提交于
      With sanlock enabled, only one of those files was installed.
      2e59e120
    • E
      build: use fewer cat processes · c0a8056e
      Eric Blake 提交于
      * src/Makefile.am (libvirt.syms): Let cat loop for us.
      c0a8056e
    • J
      selinux: fix NULL dereference in GetSecurityMountOptions · b28fb61f
      Ján Tomko 提交于
      In the case of an OOM error in virDomainDefGetSecurityLabelDef, secdef
      is set to NULL, then dereferenced while printing the debug message.
      b28fb61f
    • J
      build: Distribute more files · 912a4e9c
      Jiri Denemark 提交于
      912a4e9c
    • J
      809473ba
    • L
      network: prevent dnsmasq from listening on localhost · d66eb786
      Laine Stump 提交于
      This patch resolves the problem reported in:
      
         https://bugzilla.redhat.com/show_bug.cgi?id=886663
      
      The source of the problem was the fix for CVE 2011-3411:
      
         https://bugzilla.redhat.com/show_bug.cgi?id=833033
      
      which was originally committed upstream in commit
      753ff83a. That commit improperly
      removed the "--except-interface lo" from dnsmasq commandlines when
      --bind-dynamic was used (based on comments in the latter bug).
      
      It turns out that the problem reported in the CVE could be eliminated
      without removing "--except-interface lo", and removing it actually
      caused each instance of dnsmasq to listen on localhost on port 53,
      which created a new problem:
      
      If another instance of dnsmasq using "bind-interfaces" (instead of
      "bind-dynamic") had already been started (or if another instance
      started later used "bind-dynamic"), this wouldn't have any immediately
      visible ill effects, but if you tried to start another dnsmasq
      instance using "bind-interfaces" *after* starting any libvirt
      networks, the new dnsmasq would fail to start, because there was
      already another process listening on port 53.
      
      (Subsequent to the CVE fix, another patch changed the network driver
      to put dnsmasq options in a conf file rather than directly on the
      dnsmasq commandline, but preserved the same options.)
      
      This patch changes the network driver to *always* add
      "except-interface=lo" to dnsmasq conf files, regardless of whether we use
      bind-dynamic or bind-interfaces. This way no libvirt dnsmasq instances
      are listening on localhost (and the CVE is still fixed).
      
      The actual code change is miniscule, but must be propogated through all
      of the test files as well.
      d66eb786
    • J
      build: Fix VPATH build · d0d3e92d
      Jiri Denemark 提交于
      $(srcdir) is already part of $$file since commit f1f9a7ac.
      d0d3e92d
  5. 13 12月, 2012 1 次提交