1. 24 6月, 2019 1 次提交
  2. 04 10月, 2016 6 次提交
    • P
      build: add GCC 6.0 -Wlogical-op workaround · 69acd088
      Pavel Hrdina 提交于
      fdstream.c: In function 'virFDStreamWrite':
      fdstream.c:390:29: error: logical 'or' of equal expressions [-Werror=logical-op]
              if (errno == EAGAIN || errno == EWOULDBLOCK) {
                                  ^~
      
      Fedora rawhide now uses gcc 6.0 and there is a bug with -Wlogical-op
      producing false warnings.
      
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69602
      
      Use GCC pragma push/pop and ignore -Wlogical-op for GCC that supports
      push/pop pragma and also has this bug.
      Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
      (cherry picked from commit d713a6b1)
      69acd088
    • M
      Initialize couple of variables. · b1bae297
      Michal Privoznik 提交于
      While trying to build with -Os couple of compile errors showed
      up.
      
      conf/domain_conf.c: In function 'virDomainChrRemove':
      conf/domain_conf.c:13666:24: error: 'ret' may be used uninitialized in this function [-Werror=maybe-uninitialized]
           virDomainChrDefPtr ret, **arrPtr = NULL;
                              ^
      Compiler fails to see that @ret is used only if set in the loop,
      but whatever, there's no harm in initializing the variable.
      
      In vboxAttachDrivesNew and _vboxAttachDrivesOld compiler thinks
      that @rc may be used uninitialized. Well, not directly, but maybe
      after some optimization. Yet again, no harm in initializing a
      variable.
      
      In file included from ./util/virthread.h:26:0,
                       from ./datatypes.h:28,
                       from vbox/vbox_tmpl.c:43,
                       from vbox/vbox_V3_1.c:37:
      vbox/vbox_tmpl.c: In function '_vboxAttachDrivesOld':
      ./util/virerror.h:181:5: error: 'rc' may be used uninitialized in this function [-Werror=maybe-uninitialized]
           virReportErrorHelper(VIR_FROM_THIS, code, __FILE__,              \
           ^
      In file included from vbox/vbox_V3_1.c:37:0:
      vbox/vbox_tmpl.c:1041:14: note: 'rc' was declared here
           nsresult rc;
                    ^
      Yet again, one uninitialized variable:
      
      qemu/qemu_driver.c: In function 'qemuDomainBlockCommit':
      qemu/qemu_driver.c:17194:9: error: 'baseSource' may be used uninitialized in this function [-Werror=maybe-uninitialized]
               qemuDomainPrepareDiskChainElement(driver, vm, baseSource,
               ^
      
      And another one:
      
      storage/storage_backend_logical.c: In function 'virStorageBackendLogicalMatchPoolSource.isra.2':
      storage/storage_backend_logical.c:618:33: error: 'thisSource' may be used uninitialized in this function [-Werror=maybe-uninitialized]
                             thisSource->devices[j].path))
                                       ^
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      (cherry picked from commit bde6e002)
      b1bae297
    • P
      maint: fix syntax-check sc_prohibit_int_ijk exclude rule · 34807c1f
      Pavel Hrdina 提交于
      Fix the regex for excluding files for this syntax-rule.  The rule "include/"
      will not work, because we are matching the whole line like this
      "^(...|include/|...)$ so we need to use "include/libvirt/libvirt.+".  The second
      issue is that we are using only one '$' but there should be two of those at the
      end.  The last small adjustment is to escape dots '.' so it match only dot.
      Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
      (cherry picked from commit a94efa50)
      34807c1f
    • M
      util: bitmap: clarify virBitmapLastSetBit() behavior for empty bitmaps · b18d0b4e
      Marc Hartmayer 提交于
      Before the variable 'bits' was initialized with 0 (commit
      3470cd86), the following bug was
      possible.
      
      A function call with an empty bitmap leads to undefined
      behavior. Because if 'bitmap->map_len == 0' 'unusedBits' will be <= 0
      and 'sz == 1'. So the non global and non static variable 'bits' would
      have never been set. Consequently the check 'bits == 0' results in
      undefined behavior.
      
      This patch clarifies the current version of the function by handling the
      empty bitmap explicitly. Also, for an empty bitmap there is obviously no
      bit set so we can just return -1 (indicating no bit set) right away. The
      explicit check for 'bits == 0' after the loop is unnecessary because we
      only get to this point if no set bit was found.
      Reviewed-by: NBoris Fiuczynski <fiuczy@linux.vnet.ibm.com>
      Reviewed-by: NSascha Silbe <silbe@linux.vnet.ibm.com>
      Reviewed-by: NBjoern Walk <bwalk@linux.vnet.ibm.com>
      Signed-off-by: NMarc Hartmayer <mhartmay@linux.vnet.ibm.com>
      (cherry picked from commit 7cd01a24)
      b18d0b4e
    • M
      Fix building with -Og · 409362b0
      Martin Kletzander 提交于
      When building using -Og, gcc sees that some variables can be used
      uninitialized  It can be debatable whether it is possible with our
      codeflow, but functions should be self-contained and initializations are
      always good.  The return instead of goto is due to actualType being used
      in the cleanup.
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      (cherry picked from commit 3470cd86)
      409362b0
    • M
      qemu: Only use memory-backend-file with NUMA if needed · 756f5182
      Martin Kletzander 提交于
      If this reminds you of a commit message from around a year ago, it's
      41c2aa72 and yes, we're dealing with
      "the same thing" again.  Or f309db1f and
      it's similar.
      
      There is a logic in place that if there is no real need for
      memory-backend-file, qemuBuildMemoryBackendStr() returns 0.  However
      that wasn't the case with hugepage backing.  The reason for that was
      that we abused the 'pagesize' variable for storing that information, but
      we should rather have a separate one that specifies whether we really
      need the new object for hugepage backing.  And that variable should be
      set only if this particular NUMA cell needs special treatment WRT
      hugepages.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1372153Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      (cherry picked from commit 4372a7845acbc6974f6027ef68e7dd3eeb47f425)
      756f5182
  3. 04 7月, 2016 1 次提交
  4. 01 3月, 2016 1 次提交
  5. 27 2月, 2016 1 次提交
  6. 26 2月, 2016 15 次提交
  7. 25 2月, 2016 5 次提交
    • J
      util: Avoid calling closedir(NULL) · 04e10925
      Jiri Denemark 提交于
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      04e10925
    • M
      vircgroupmock: Mock access("/sys/devices/system/cpu/present") · 50129dcc
      Michal Privoznik 提交于
      There's been a report on the upstream list [1] describing we
      access /sys/devices/system/cpu/present directly on the host from
      within our test suite. This may end up in unpredictable results
      as no all linux systems are required to have that file. Mock
      access to the file.
      
      libvirt.git/tests $ ../run strace vircgrouptest
      ...
      access("/sys/devices/system/cpu/present", F_OK) = 0
      ...
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      50129dcc
    • O
      Fix bug of attaching redirdev device · c92547c3
      Osier Yang 提交于
      RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1298070
      
      The corresponding chardev must be attached first, otherwise the
      the qemu command line won't be complete (missing the host part),
      c92547c3
    • E
      build: accomodate selinux 2.5 header API change · 5ea3a690
      Eric Blake 提交于
      Yet again, selinux has been adding const-correctness; this change
      is ABI-compatible, but breaks API, which affects us when we try to
      override things in our testsuite:
      
      ../../tests/securityselinuxhelper.c:307:24: error: conflicting types for 'selabel_open'
       struct selabel_handle *selabel_open(unsigned int backend,
                              ^~~~~~~~~~~~
      In file included from ../../tests/securityselinuxhelper.c:32:0:
      /usr/include/selinux/label.h:73:24: note: previous declaration of 'selabel_open' was here
      
      The problem is a new 'const' prior to the second parameter.
      
      Fix it the same way we did in commit 292d3f2d: check for the new
      const at configure time.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      5ea3a690
    • J
      libxl: implement virDomainInterfaceStats · 77fdd82e
      Joao Martins 提交于
      Introduce support for domainInterfaceStats API call for querying
      network interface statistics. Consequently it also enables the use of
      `virsh domifstat <dom> <interface name>` command plus seeing the
      interfaces names instead of "-" when doing `virsh domiflist <dom>`.
      
      After successful guest creation we fill the network interfaces names
      based on domain, device id and append suffix if it's emulated in the
      following form: vif<domid>.<devid>[-emu].  We extract the network
      interfaces info from the libxl_domain_config object in
      libxlDomainCreateIfaceNames() to generate ifname. On domain cleanup we
      also clear ifname, in case it was set by libvirt (i.e. being prefixed
      with "vif"). We also skip these two steps in case the name of the
      interface was manually inserted by the administrator. Since the
      introduction of netprefix (commit a040ba9e), ifnames with a registered
      prefix will be freed on virDomain{Obj,Def}Format*, thus eliminating
      the migration issues observed with the reverted commit d2e5538b whereas
      source and destination would have the same ifname.
      
      For getting the interface statistics we resort to virNetInterfaceStats
      and let libvirt handle the platform specific nits. Note that the
      latter is not yet supported in FreeBSD.
      Signed-off-by: NJoao Martins <joao.m.martins@oracle.com>
      77fdd82e
  8. 24 2月, 2016 3 次提交
    • C
      libxl: small fix in parsing network · 5c79c445
      Chunyan Liu 提交于
      Signed-off-by: NChunyan Liu <cyliu@suse.com>
      5c79c445
    • E
      rbd: fix 32-bit build · 5a5c2837
      Eric Blake 提交于
      %zu is not always synonymous with uint64_t; on 32-bit machines,
      size_t is only 32 bits.  Prefer "%lld"/'unsigned long long' when
      the variable is under our control, and "%"PRIu64 when we are
      stuck with 'uint64_t' from RBD.
      
      Fixes errors such as:
      
      ../../src/storage/storage_backend_rbd.c: In function 'virStorageBackendRBDVolWipe':
      ../../src/storage/storage_backend_rbd.c:1281:15: error: format '%zu' expects argument of type 'size_t', but argument 8 has type 'uint64_t {aka long long unsigned int}' [-Werror=format=]
           VIR_DEBUG("Need to wipe %zu bytes from RBD image %s/%s",
                     ^
      ../../src/util/virlog.h:90:73: note: in definition of macro 'VIR_DEBUG_INT'
           virLogMessage(src, VIR_LOG_DEBUG, filename, linenr, funcname, NULL, __VA_ARGS__)
                                                                               ^
      ../../src/storage/storage_backend_rbd.c:1281:5: note: in expansion of macro 'VIR_DEBUG'
           VIR_DEBUG("Need to wipe %zu bytes from RBD image %s/%s",
           ^
      Signed-off-by: NEric Blake <eblake@redhat.com>
      5a5c2837
    • J
      libxl: fix bogus indentation from commit fb2bd208 · c23bbfad
      Jim Fehlig 提交于
      c23bbfad
  9. 23 2月, 2016 7 次提交
    • M
      qemuBuildCommandLine: Change the condition for -nographics · 01c31852
      Michal Privoznik 提交于
      There's this check when building command line that whenever
      domain has no graphics card configured we put -nographics onto
      qemu command line. The check is 'if (!def->graphics)'. This
      makes coverity think that def->graphics can be NULL, which is
      true. But later in the code every access to def->graphics is
      guarded by check for def->ngraphics, so no crash occurs. But this
      is something that coverity fails to deduct.
      In order to shut coverity up lets change the condition to
      'if (!def->ngraphics)'.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      01c31852
    • M
      xen: Check return value of virStringReplace · e0392f5a
      Michal Privoznik 提交于
      After 6604a3dd in which new helper function has been
      introduced, the code calls virStringReplace and dereference the
      result immediately. The string function can, however, return NULL
      so this would SIGSEGV right away. Check for the return value of
      the string function.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      e0392f5a
    • M
      vbox: Avoid signed and unsigned comparison · a0e5faaf
      Michal Privoznik 提交于
      After 457ff97f there are two defects in our code. In both of
      them we use a signed variable to hold up a number of snapshots
      that domain has. We use a helper function to count the number.
      However, the helper function may fail in which case it returns
      a negative one and control jumps to cleanup label where an
      unsigned variable is used to iterate over array of snapshots. The
      loop condition thus compare signed and unsigned variables which
      in this specific case ends up badly for us.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      a0e5faaf
    • M
      docs: Try harder to uninstall · 0f396a41
      Michal Privoznik 提交于
      Imagine you have partially installed libvirt, or maybe you're
      just running 'make uninstall' from a different version than 'make
      install' has been ran. One way or another, we are doing plain
      'rm' instead of 'rm -f' and thus not trying hard enough when
      uninstalling. In the rest of our code we stick with -f switch. Do
      that for docs too.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      0f396a41
    • A
      tests: Fix typo oaque -> opaque · 73fc4651
      Andrea Bolognani 提交于
      No functional changes.
      73fc4651
    • J
      libxl: add support for rbd qdisk · fb2bd208
      Jim Fehlig 提交于
      xl/libxl already supports qemu's network-based block backends
      such as nbd and rbd. libvirt has supported configuring such
      <disk>s for long time too. This patch adds support for rbd
      disks in the libxl driver by generating a rbd device URL from
      the virDomainDiskDef object. The URL is passed to libxl via the
      pdev_path field of libxl_device_disk struct. libxl then passes
      the URL to qemu for cosumption by the rbd backend.
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      fb2bd208
    • J
      xenconfig: support xl<->xml conversion of rbd disk devices · 6604a3dd
      Jim Fehlig 提交于
      The target= setting in xl disk configuration can be used to encode
      meta info that is meaningful to a backend. Leverage this fact to
      support qdisk network disk types such as rbd. E.g. <disk> config
      such as
      
         <disk type='network' device='disk'>
           <driver name='qemu' type='raw'/>
           <source protocol='rbd' name='pool/image'>
             <host name='mon1.example.org' port='6321'/>
             <host name='mon2.example.org' port='6322'/>
             <host name='mon3.example.org' port='6322'/>
           </source>
           <target dev='hdb' bus='ide'/>
           <address type='drive' controller='0' bus='0' target='0' unit='1'/>
         </disk>
      
      can be converted to the following xl config (and vice versa)
      
        disk = [ "format=raw,vdev=hdb,access=rw,backendtype=qdisk,
                  target=rbd:pool/image:auth_supported=none:mon_host=mon1.example.org\\:6321\\;mon2.example.org\\:6322\\;mon3.example.org\\:6322"
               ]
      
      Note that in xl disk config, a literal backslash in target= must
      be escaped with a backslash. Conversion of <auth> config is not
      handled in this patch, but can be done in a follow-up patch.
      
      Also add a test for the conversions.
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      6604a3dd