1. 21 11月, 2017 11 次提交
    • S
      Use HTTPS for qemu.org and other domains · 70b7fba9
      Stefan Hajnoczi 提交于
      qemu.org enabled HTTPS in 2017 and it should be used instead of HTTP.
      There are also URLs to json.org, openvpn.net, and other domains that
      support HTTPS.
      
      This patch updates the qemu.org domains everywhere and also third-party
      domains that I have checked.
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      Message-id: 20171121120435.28728-3-stefanha@redhat.com
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      70b7fba9
    • S
      Use qemu.org domain name · 1b3bbc68
      Stefan Hajnoczi 提交于
      The owner of qemu.org has delegated authority to modify DNS records to
      the QEMU Project.  This has allowed us to use the domain name without
      worries about IP address changes or technical issues disrupting service.
      The issues described in commit 85938981
      ("Use qemu-project.org domain name") have therefore been mitigated.
      
      This patch switches back to consistently using qemu.org instead of
      qemu-project.org in documentation, version.rc, and the Windows installer
      script.
      
      The git submodules and SeaBIOS still use qemu-project.org for the time
      being.  This will be fixed in the QEMU 2.12 release cycle.
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      Message-id: 20171121120435.28728-2-stefanha@redhat.com
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      1b3bbc68
    • M
      scripts/make-release: ship u-boot source as a tarball · d0dead3b
      Michael Roth 提交于
      The u-boot sources we ship currently cause problems with unpacking on
      a case-insensitive filesystem due to path conflicts. This has been
      fixed in upstream u-boot via commit 610eec7f, but since it is not
      yet included in an official release we implement this approach as a
      temporary workaround.
      
      Once we move to a u-boot containing commit 610eec7f we should revert
      this patch.
      
      Cc: qemu-stable@nongnu.org
      Cc: Alexander Graf <agraf@suse.de>
      Cc: Richard Henderson <richard.henderson@linaro.org>
      Cc: Thomas Huth <thuth@redhat.com>
      Cc: Peter Maydell <peter.maydell@linaro.org>
      Suggested-by: NRichard Henderson <richard.henderson@linaro.org>
      Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      Reviewed-by: NThomas Huth <thuth@redhat.com>
      Message-id: 20171107205201.10207-1-mdroth@linux.vnet.ibm.com
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      d0dead3b
    • P
      accel/tcg: Handle atomic accesses to notdirty memory correctly · 34d49937
      Peter Maydell 提交于
      To do a write to memory that is marked as notdirty, we need
      to invalidate any TBs we have cached for that memory, and
      update the cpu physical memory dirty flags for VGA and migration.
      The slowpath code in notdirty_mem_write() does all this correctly,
      but the new atomic handling code in atomic_mmu_lookup() doesn't
      do anything at all, it just clears the dirty bit in the TLB.
      
      The effect of this bug is that if the first write to a notdirty
      page for which we have cached TBs is by a guest atomic access,
      we fail to invalidate the TBs and subsequently will execute
      incorrect code. This can be seen by trying to run 'javac' on AArch64.
      
      Use the new notdirty_call_before() and notdirty_call_after()
      functions to correctly handle the update to notdirty memory
      in the atomic codepath.
      
      Cc: qemu-stable@nongnu.org
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Message-id: 1511201308-23580-3-git-send-email-peter.maydell@linaro.org
      34d49937
    • P
      exec.c: Factor out before/after actions for notdirty memory writes · 27266271
      Peter Maydell 提交于
      The function notdirty_mem_write() has a sequence of actions
      it has to do before and after the actual business of writing
      data to host RAM to ensure that dirty flags are correctly
      updated and we flush any TCG translations for the region.
      We need to do this also in other places that write directly
      to host RAM, most notably the TCG atomic helper functions.
      Pull out the before and after pieces into their own functions.
      
      We use an API where the prepare function stashes the various
      bits of information about the write into a struct for the
      complete function to use, because in the calls for the atomic
      helpers the place where the complete function will be called
      doesn't have the information to hand.
      
      Cc: qemu-stable@nongnu.org
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      Message-id: 1511201308-23580-2-git-send-email-peter.maydell@linaro.org
      27266271
    • P
      Merge remote-tracking branch 'remotes/mdroth/tags/qga-pull-2017-11-20-tag' into staging · a61d3439
      Peter Maydell 提交于
      qemu-ga patch queue for 2.11
      
      * fix potential overflow in network interface stats reporting
      
      # gpg: Signature made Mon 20 Nov 2017 20:56:05 GMT
      # gpg:                using RSA key 0x3353C9CEF108B584
      # gpg: Good signature from "Michael Roth <flukshun@gmail.com>"
      # gpg:                 aka "Michael Roth <mdroth@utexas.edu>"
      # gpg:                 aka "Michael Roth <mdroth@linux.vnet.ibm.com>"
      # Primary key fingerprint: CEAC C9E1 5534 EBAB B82D  3FA0 3353 C9CE F108 B584
      
      * remotes/mdroth/tags/qga-pull-2017-11-20-tag:
        qga: replace GetIfEntry with GetIfEntry2 for interface stats
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      a61d3439
    • P
      Merge remote-tracking branch 'remotes/riku/tags/pull-linux-user-20171120' into staging · 1b4e6e8c
      Peter Maydell 提交于
      late linux-user fixes for Qemu 2.11
      
      # gpg: Signature made Mon 20 Nov 2017 21:19:00 GMT
      # gpg:                using RSA key 0xB44890DEDE3C9BC0
      # gpg: Good signature from "Riku Voipio <riku.voipio@iki.fi>"
      # gpg:                 aka "Riku Voipio <riku.voipio@linaro.org>"
      # Primary key fingerprint: FF82 03C8 C391 98AE 0581  41EF B448 90DE DE3C 9BC0
      
      * remotes/riku/tags/pull-linux-user-20171120:
        linux-user: Fix calculation of auxv length
        linux-user: Handle rt_sigaction correctly for SPARC
        linux-user/sparc: Put address for data faults where linux-user expects it
        linux-user/ppc: Report correct fault address for data faults
        linux-user/s390x: Mask si_addr for SIGSEGV
        linux-user: return EINVAL from prctl(PR_*_SECCOMP)
        linux-user: fix 'finshed' typo in comment
        linux-user/syscall.c: Handle SH4's exceptional alignment for p{read, write}64
        linux-user: Handle TARGET_MAP_STACK and TARGET_MAP_HUGETLB
        linux-user/hppa: Fix TARGET_F_RDLCK, TARGET_F_WRLCK, TARGET_F_UNLCK
        linux-user/hppa: Fix TARGET_MAP_TYPE
        linux-user/hppa: Fix typo for TARGET_NR_epoll_wait
        linux-user/hppa: Fix cpu_clone_regs
        linux-user/hppa: Fix TARGET_SA_* defines
        linux-user: Restrict usage of sa_restorer
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      1b4e6e8c
    • P
      Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20171120' into staging · 5f49d73c
      Peter Maydell 提交于
      target-arm queue:
       * hw/arm: Silence xlnx-ep108 deprecation warning during tests
       * hw/arm/aspeed: Unlock SCU when running kernel
       * arm: check regime, not current state, for ATS write PAR format
       * nvic: Fix ARMv7M MPU_RBAR reads
       * target/arm: Report GICv3 sysregs present in ID registers if needed
      
      # gpg: Signature made Mon 20 Nov 2017 17:35:25 GMT
      # gpg:                using RSA key 0x3C2525ED14360CDE
      # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>"
      # gpg:                 aka "Peter Maydell <pmaydell@gmail.com>"
      # gpg:                 aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>"
      # Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE
      
      * remotes/pmaydell/tags/pull-target-arm-20171120:
        hw/arm: Silence xlnx-ep108 deprecation warning during tests
        hw/arm/aspeed: Unlock SCU when running kernel
        arm: check regime, not current state, for ATS write PAR format
        nvic: Fix ARMv7M MPU_RBAR reads
        target/arm: Report GICv3 sysregs present in ID registers if needed
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      5f49d73c
    • Z
      qga: replace GetIfEntry with GetIfEntry2 for interface stats · df83eabd
      ZhiPeng Lu 提交于
      The data obtained by GetIfEntry is 32 bits, and it may overflow. Thus
      using GetIfEntry2 instead of GetIfEntry.
      Signed-off-by: NZhiPeng Lu <lu.zhipeng@zte.com.cn>
      *avoid CamelCase variable names
      *update field names for MIB_IFROW -> MIB_IF_ROW2
      *dynamically probe for GetIfIndex2 to deal with older OSs
      *check return value from get_interface_index
      Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      df83eabd
    • P
      Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20171120-v1' into staging · 3da87f77
      Peter Maydell 提交于
      Fix storing cpu status (both kvm and tcg), locking around diag 308
      (tcg only) and a non-zero variable in the s390-ccw bios.
      
      # gpg: Signature made Mon 20 Nov 2017 15:18:05 GMT
      # gpg:                using RSA key 0xDECF6B93C6F02FAF
      # gpg: Good signature from "Cornelia Huck <conny@cornelia-huck.de>"
      # gpg:                 aka "Cornelia Huck <huckc@linux.vnet.ibm.com>"
      # gpg:                 aka "Cornelia Huck <cornelia.huck@de.ibm.com>"
      # gpg:                 aka "Cornelia Huck <cohuck@kernel.org>"
      # gpg:                 aka "Cornelia Huck <cohuck@redhat.com>"
      # Primary key fingerprint: C3D0 D66D C362 4FF6 A8C0  18CE DECF 6B93 C6F0 2FAF
      
      * remotes/cohuck/tags/s390x-20171120-v1:
        pc-bios/s390-ccw.img: update image
        pc-bios/s390-ccw: Fix problem with invalid virtio-scsi LUN when rebooting
        s390x/tcg: fix DIAG 308 with > 1 VCPU (MTTCG)
        s390x: fix storing CPU status (again)
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      3da87f77
    • P
      Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.11-20171120' into staging · b2996bb4
      Peter Maydell 提交于
      ppc patch queue 2017-11-20
      
      Here's the current queue of ppc patches.  These 2 patches are both
      more complex than I'd ideally like this late in the 2.11 cycle.
      However, they do fix important bugs, so I think it's worth it on
      balance.
      
      # gpg: Signature made Mon 20 Nov 2017 03:27:19 GMT
      # gpg:                using RSA key 0x6C38CACA20D9B392
      # gpg: Good signature from "David Gibson <david@gibson.dropbear.id.au>"
      # gpg:                 aka "David Gibson (Red Hat) <dgibson@redhat.com>"
      # gpg:                 aka "David Gibson (ozlabs.org) <dgibson@ozlabs.org>"
      # gpg:                 aka "David Gibson (kernel.org) <dwg@kernel.org>"
      # Primary key fingerprint: 75F4 6586 AE61 A66C C44E  87DC 6C38 CACA 20D9 B392
      
      * remotes/dgibson/tags/ppc-for-2.11-20171120:
        spapr: reset DRCs after devices
        target/ppc: Update setting of cpu features to account for compat modes
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      b2996bb4
  2. 20 11月, 2017 20 次提交
  3. 18 11月, 2017 9 次提交
    • P
      Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging · 2e020834
      Peter Maydell 提交于
      Block layer patches for 2.11.0-rc2
      
      # gpg: Signature made Fri 17 Nov 2017 17:58:36 GMT
      # gpg:                using RSA key 0x7F09B272C88F2FD6
      # gpg: Good signature from "Kevin Wolf <kwolf@redhat.com>"
      # Primary key fingerprint: DC3D EB15 9A9A F95D 3D74  56FE 7F09 B272 C88F 2FD6
      
      * remotes/kevin/tags/for-upstream: (25 commits)
        iotests: Make 087 pass without AIO enabled
        block: Make bdrv_next() keep strong references
        qcow2: Fix overly broad madvise()
        qcow2: Refuse to get unaligned offsets from cache
        qcow2: Add bounds check to get_refblock_offset()
        block: Guard against NULL bs->drv
        qcow2: Unaligned zero cluster in handle_alloc()
        qcow2: check_errors are fatal
        qcow2: reject unaligned offsets in write compressed
        iotests: Add test for failing qemu-img commit
        tests: Add check-qobject for equality tests
        iotests: Add test for non-string option reopening
        block: qobject_is_equal() in bdrv_reopen_prepare()
        qapi: Add qobject_is_equal()
        qapi/qlist: Add qlist_append_null() macro
        qapi/qnull: Add own header
        qcow2: fix image corruption on commit with persistent bitmap
        iotests: test clearing unknown autoclear_features by qcow2
        block: Fix permissions in image activation
        qcow2: fix image corruption after committing qcow2 image into base
        ...
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      2e020834
    • K
      Merge remote-tracking branch 'mreitz/tags/pull-block-2017-11-17' into queue-block · d5a49c6e
      Kevin Wolf 提交于
      Block patches for 2.11.0-rc2
      
      # gpg: Signature made Fri Nov 17 18:22:07 2017 CET
      # gpg:                using RSA key F407DB0061D5CF40
      # gpg: Good signature from "Max Reitz <mreitz@redhat.com>"
      # Primary key fingerprint: 91BE B60A 30DB 3E88 57D1  1829 F407 DB00 61D5 CF40
      
      * mreitz/tags/pull-block-2017-11-17:
        iotests: Make 087 pass without AIO enabled
        block: Make bdrv_next() keep strong references
        qcow2: Fix overly broad madvise()
        qcow2: Refuse to get unaligned offsets from cache
        qcow2: Add bounds check to get_refblock_offset()
        block: Guard against NULL bs->drv
        qcow2: Unaligned zero cluster in handle_alloc()
        qcow2: check_errors are fatal
        qcow2: reject unaligned offsets in write compressed
        iotests: Add test for failing qemu-img commit
        tests: Add check-qobject for equality tests
        iotests: Add test for non-string option reopening
        block: qobject_is_equal() in bdrv_reopen_prepare()
        qapi: Add qobject_is_equal()
        qapi/qlist: Add qlist_append_null() macro
        qapi/qnull: Add own header
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      d5a49c6e
    • M
      iotests: Make 087 pass without AIO enabled · c0012e9a
      Max Reitz 提交于
      If AIO has not been enabled in the qemu build that is to be tested, we
      should skip the "aio=native without O_DIRECT" test instead of failing.
      Signed-off-by: NMax Reitz <mreitz@redhat.com>
      Message-id: 20171115180732.31753-1-mreitz@redhat.com
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NMax Reitz <mreitz@redhat.com>
      c0012e9a
    • M
      block: Make bdrv_next() keep strong references · 5e003f17
      Max Reitz 提交于
      On one hand, it is a good idea for bdrv_next() to return a strong
      reference because ideally nearly every pointer should be refcounted.
      This fixes intermittent failure of iotest 194.
      
      On the other, it is absolutely necessary for bdrv_next() itself to keep
      a strong reference to both the BB (in its first phase) and the BDS (at
      least in the second phase) because when called the next time, it will
      dereference those objects to get a link to the next one.  Therefore, it
      needs these objects to stay around until then.  Just storing the pointer
      to the next in the iterator is not really viable because that pointer
      might become invalid as well.
      
      Both arguments taken together means we should probably just invoke
      bdrv_ref() and blk_ref() in bdrv_next().  This means we have to assert
      that bdrv_next() is always called from the main loop, but that was
      probably necessary already before this patch and judging from the
      callers, it also looks to actually be the case.
      
      Keeping these strong references means however that callers need to give
      them up if they decide to abort the iteration early.  They can do so
      through the new bdrv_next_cleanup() function.
      Suggested-by: NKevin Wolf <kwolf@redhat.com>
      Signed-off-by: NMax Reitz <mreitz@redhat.com>
      Message-id: 20171110172545.32609-1-mreitz@redhat.com
      Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com>
      Signed-off-by: NMax Reitz <mreitz@redhat.com>
      5e003f17
    • M
      qcow2: Fix overly broad madvise() · 08546bcf
      Max Reitz 提交于
      @mem_size and @offset are both size_t, thus subtracting them from one
      another will just return a big size_t if mem_size < offset -- even more
      obvious here because the result is stored in another size_t.
      
      Checking that result to be positive is therefore not sufficient to
      exclude the case that offset > mem_size.  Thus, we currently sometimes
      issue an madvise() over a very large address range.
      
      This is triggered by iotest 163, but with -m64, this does not result in
      tangible problems.  But with -m32, this test produces three segfaults,
      all of which are fixed by this patch.
      Signed-off-by: NMax Reitz <mreitz@redhat.com>
      Message-id: 20171114184127.24238-1-mreitz@redhat.com
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Reviewed-by: NAlberto Garcia <berto@igalia.com>
      Reviewed-by: NDarren Kenny <darren.kenny@oracle.com>
      Signed-off-by: NMax Reitz <mreitz@redhat.com>
      08546bcf
    • M
      qcow2: Refuse to get unaligned offsets from cache · 4efb1f7c
      Max Reitz 提交于
      Instead of using an assertion, it is better to emit a corruption event
      here.  Checking all offsets for correct alignment can be tedious and it
      is easily possible to forget to do so.  qcow2_cache_do_get() is a
      function every L2 and refblock access has to go through, so this is a
      good central point to add such a check.
      
      And for good measure, let us also add an assertion that the offset is
      non-zero.  Making this a corruption event is not feasible, because a
      zero offset usually means something special (such as the cluster is
      unused), so all callers should be checking this anyway.  If they do not,
      it is their fault, hence the assertion here.
      Signed-off-by: NMax Reitz <mreitz@redhat.com>
      Message-id: 20171110203111.7666-6-mreitz@redhat.com
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Reviewed-by: NAlberto Garcia <berto@igalia.com>
      Signed-off-by: NMax Reitz <mreitz@redhat.com>
      4efb1f7c
    • M
      qcow2: Add bounds check to get_refblock_offset() · 23482f8a
      Max Reitz 提交于
      Reported-by: NR. Nageswara Sastry <nasastry@in.ibm.com>
      Buglink: https://bugs.launchpad.net/qemu/+bug/1728661Signed-off-by: NMax Reitz <mreitz@redhat.com>
      Message-id: 20171110203111.7666-5-mreitz@redhat.com
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Reviewed-by: NAlberto Garcia <berto@igalia.com>
      Signed-off-by: NMax Reitz <mreitz@redhat.com>
      23482f8a
    • M
      block: Guard against NULL bs->drv · d470ad42
      Max Reitz 提交于
      We currently do not guard everywhere against a NULL bs->drv where we
      should be doing so.  Most of the places fixed here just do not care
      about that case at all.
      
      Some care implicitly, e.g. through a prior function call to
      bdrv_getlength() which would always fail for an ejected BDS.  Add an
      assert there to make it more obvious.
      
      Other places seem to care, but do so insufficiently: Freeing clusters in
      a qcow2 image is an error-free operation, but it may leave the image in
      an unusable state anyway.  Giving qcow2_free_clusters() an error code is
      not really viable, it is much easier to note that bs->drv may be NULL
      even after a successful driver call.  This concerns bdrv_co_flush(), and
      the way the check is added to bdrv_co_pdiscard() (in every iteration
      instead of only once).
      
      Finally, some places employ at least an assert(bs->drv); somewhere, that
      may be reasonable (such as in the reopen code), but in
      bdrv_has_zero_init(), it is definitely not.  Returning 0 there in case
      of an ejected BDS saves us much headache instead.
      Reported-by: NR. Nageswara Sastry <nasastry@in.ibm.com>
      Buglink: https://bugs.launchpad.net/qemu/+bug/1728660Signed-off-by: NMax Reitz <mreitz@redhat.com>
      Message-id: 20171110203111.7666-4-mreitz@redhat.com
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NMax Reitz <mreitz@redhat.com>
      d470ad42
    • M
      qcow2: Unaligned zero cluster in handle_alloc() · 93bbaf03
      Max Reitz 提交于
      We should check whether the cluster offset we are about to use is
      actually valid; that is, whether it is aligned to cluster boundaries.
      Reported-by: NR. Nageswara Sastry <nasastry@in.ibm.com>
      Buglink: https://bugs.launchpad.net/qemu/+bug/1728643
      Buglink: https://bugs.launchpad.net/qemu/+bug/1728657Signed-off-by: NMax Reitz <mreitz@redhat.com>
      Message-id: 20171110203111.7666-3-mreitz@redhat.com
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Reviewed-by: NAlberto Garcia <berto@igalia.com>
      Signed-off-by: NMax Reitz <mreitz@redhat.com>
      93bbaf03