1. 06 10月, 2018 3 次提交
  2. 05 10月, 2018 3 次提交
    • P
      Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20181004' into staging · ae7a4c0a
      Peter Maydell 提交于
      Various s390x updates:
      - fix several struct definitions so that sparc hosts do not trip over
        unaligned accesses
      - fence enabling huge pages for pre-3.1 machines
      - sysbus init -> realize conversion
      - fixes and improvements in tcg (instruction flags and AFP registers)
      
      # gpg: Signature made Thu 04 Oct 2018 16:22:20 BST
      # gpg:                using RSA key DECF6B93C6F02FAF
      # 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-20181004:
        hw/s390x/s390-pci-bus: Convert sysbus init function to realize function
        s390x/tcg: refactor specification checking
        s390x/tcg: fix FP register pair checks
        s390x/tcg: handle privileged instructions via flags
        s390x/tcg: check for AFP-register, BFP and DFP data exceptions
        s390x/tcg: add instruction flags for floating point instructions
        s390x/tcg: support flags for instructions
        s390x/tcg: store in the TB flags if AFP is enabled
        s390x/tcg: factor out and fix DATA exception injection
        s390x: move tcg_s390_program_interrupt() into TCG code and mark it noreturn
        target/s390x: exception on non-aligned LPSW(E)
        s390x: Fence huge pages prior to 3.1
        hw/s390x/ioinst: Fix alignment problem in struct SubchDev
        hw/s390x/css: Remove QEMU_PACKED from struct SenseId
        hw/s390x/ipl: Fix alignment problems of S390IPLState members
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      ae7a4c0a
    • P
      Merge remote-tracking branch 'remotes/ericb/tags/pull-nbd-2018-10-03-v2' into staging · d21ee59a
      Peter Maydell 提交于
      nbd patches for 2018-10-03
      
      Fix bugs in NBD_CMD_CACHE, drop support for oldstyle NBD server,
      minor build and doc fixes
      
      - Denis V. Lunev: nbd: fix NBD_CMD_CACHE negitiation... [retitled]
      - Vladimir Sementsov-Ogievskiy: 0/2 server: drop old-style negotiation
      - Eric Blake: qemu-nbd: Document --tls-creds
      - Vladimir Sementsov-Ogievskiy: nbd/server: fix NBD_CMD_CACHE
      - Peter Maydell: nbd: Don't take address of fields in packed structs
      
      # gpg: Signature made Thu 04 Oct 2018 15:19:32 BST
      # gpg:                using RSA key A7A16B4A2527436A
      # gpg: Good signature from "Eric Blake <eblake@redhat.com>"
      # gpg:                 aka "Eric Blake (Free Software Programmer) <ebb9@byu.net>"
      # gpg:                 aka "[jpeg image of size 6874]"
      # Primary key fingerprint: 71C2 CC22 B1C4 6029 27D2  F3AA A7A1 6B4A 2527 436A
      
      * remotes/ericb/tags/pull-nbd-2018-10-03-v2:
        nbd: fix NBD_FLAG_SEND_CACHE value
        nbd/server: drop old-style negotiation
        qemu-nbd: drop old-style negotiation
        qemu-nbd: Document --tls-creds
        nbd/server: fix NBD_CMD_CACHE
        nbd: Don't take address of fields in packed structs
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      d21ee59a
    • P
      Merge remote-tracking branch 'remotes/ehabkost/tags/python-next-pull-request' into staging · 638ad4ad
      Peter Maydell 提交于
      Python queue, 2018-10-03
      
      * Remove fixed serial device errors from device-crash-test
      * Remove unnecessary Python 2.6 compatibility code
      
      # gpg: Signature made Thu 04 Oct 2018 03:17:34 BST
      # gpg:                using RSA key 2807936F984DC5A6
      # gpg: Good signature from "Eduardo Habkost <ehabkost@redhat.com>"
      # Primary key fingerprint: 5A32 2FD5 ABC4 D3DB ACCF  D1AA 2807 936F 984D C5A6
      
      * remotes/ehabkost/tags/python-next-pull-request:
        scripts/device-crash-test: Remove entries for serial devices
        Revert "tests: migration/guestperf Python 2.6 argparse compatibility"
        Revert "docker.py: Python 2.6 argparse compatibility"
        device-crash-test: No need for sys.path hack
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      638ad4ad
  3. 04 10月, 2018 23 次提交
  4. 03 10月, 2018 11 次提交
    • V
      nbd/server: fix NBD_CMD_CACHE · 2f454def
      Vladimir Sementsov-Ogievskiy 提交于
      We should not go to structured-read branch on CACHE command, fix that.
      
      Bug introduced in bc37b06a "nbd/server: introduce NBD_CMD_CACHE"
      with the whole feature and affects 3.0.0 release.
      Signed-off-by: NVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
      CC: qemu-stable@nongnu.org
      Message-Id: <20181003144738.70670-1-vsementsov@virtuozzo.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      [eblake: commit message typo fix]
      Signed-off-by: NEric Blake <eblake@redhat.com>
      2f454def
    • P
      nbd: Don't take address of fields in packed structs · 80c7c2b0
      Peter Maydell 提交于
      Taking the address of a field in a packed struct is a bad idea, because
      it might not be actually aligned enough for that pointer type (and
      thus cause a crash on dereference on some host architectures). Newer
      versions of clang warn about this. Avoid the bug by not using the
      "modify in place" byte swapping functions.
      
      This patch was produced with the following spatch script:
      @@
      expression E;
      @@
      -be16_to_cpus(&E);
      +E = be16_to_cpu(E);
      @@
      expression E;
      @@
      -be32_to_cpus(&E);
      +E = be32_to_cpu(E);
      @@
      expression E;
      @@
      -be64_to_cpus(&E);
      +E = be64_to_cpu(E);
      @@
      expression E;
      @@
      -cpu_to_be16s(&E);
      +E = cpu_to_be16(E);
      @@
      expression E;
      @@
      -cpu_to_be32s(&E);
      +E = cpu_to_be32(E);
      @@
      expression E;
      @@
      -cpu_to_be64s(&E);
      +E = cpu_to_be64(E);
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-Id: <20180927164200.15097-1-peter.maydell@linaro.org>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      [eblake: rebase, and squash in missed changes]
      Signed-off-by: NEric Blake <eblake@redhat.com>
      80c7c2b0
    • P
      Merge remote-tracking branch 'remotes/elmarco/tags/chardev-pull-request' into staging · b8e5671a
      Peter Maydell 提交于
      chardev patches
      
      # gpg: Signature made Wed 03 Oct 2018 11:57:34 BST
      # gpg:                using RSA key DAE8E10975969CE5
      # gpg: Good signature from "Marc-André Lureau <marcandre.lureau@redhat.com>"
      # gpg:                 aka "Marc-André Lureau <marcandre.lureau@gmail.com>"
      # Primary key fingerprint: 87A9 BD93 3F87 C606 D276  F62D DAE8 E109 7596 9CE5
      
      * remotes/elmarco/tags/chardev-pull-request:
        chardev: use a child source for qio input source
        chardev: mark the calls that allow an implicit mux monitor
        char.h: fix gtk-doc comment style
        chardev: unref if underlying chardev has no parent
        chardev: remove qemu_chr_fe_read_all() counter
        chardev: avoid crash if no associated address
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      b8e5671a
    • M
      chardev: use a child source for qio input source · a7077b8e
      Marc-André Lureau 提交于
      GLib child source were added with version 2.28. We can use them now
      that we bumped our requirement to 2.40.
      Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
      Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
      a7077b8e
    • M
      chardev: mark the calls that allow an implicit mux monitor · 95e30b2a
      Marc-André Lureau 提交于
      This is mostly for readability of the code. Let's make it clear which
      callers can create an implicit monitor when the chardev is muxed.
      
      This will also enforce a safer behaviour, as we don't really support
      creating monitor anywhere/anytime at the moment. Add an assert() to
      make sure the programmer explicitely wanted that behaviour.
      
      There are documented cases, such as: -serial/-parallel/-virtioconsole
      and to less extent -debugcon.
      
      Less obvious and questionable ones are -gdb, SLIRP -guestfwd and Xen
      console. Add a FIXME note for those, but keep the support for now.
      
      Other qemu_chr_new() callers either have a fixed parameter/filename
      string or do not need it, such as -qtest:
      
      * qtest.c: qtest_init()
        Afaik, only used by tests/libqtest.c, without mux. I don't think we
        support it outside of qemu testing: drop support for implicit mux
        monitor (qemu_chr_new() call: no implicit mux now).
      
      * hw/
        All with literal @filename argument that doesn't enable mux monitor.
      
      * tests/
        All with @filename argument that doesn't enable mux monitor.
      
      On a related note, the list of monitor creation places:
      
      - the chardev creators listed above: all from command line (except
        perhaps Xen console?)
      
      - -gdb & hmp gdbserver will create a "GDB monitor command" chardev
        that is wired to an HMP monitor.
      
      - -mon command line option
      
      From this short study, I would like to think that a monitor may only
      be created in the main thread today, though I remain skeptical :)
      Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
      Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
      95e30b2a
    • M
      char.h: fix gtk-doc comment style · 5662576a
      Marc-André Lureau 提交于
      Fix up conformance to GTK-Doc function comment style, as documented in
      https://developer.gnome.org/gtk-doc-manual/stable/documenting_symbols.html.enSigned-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
      Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
      Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
      5662576a
    • M
      chardev: unref if underlying chardev has no parent · 425d8a4e
      Marc-André Lureau 提交于
      It's possible to write code creating a chardev backend that is not
      registered. When it is not user-created, it makes sense to keep it
      hidden. Let the associated frontend destroy it also in this case.
      Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
      Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
      425d8a4e
    • M
      chardev: remove qemu_chr_fe_read_all() counter · 43182856
      Marc-André Lureau 提交于
      There is no obvious reason to have a loop counter. This limits from
      reading several megabytes large buffers in one go, since socket
      read/write usually have a limit.
      Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      43182856
    • M
      chardev: avoid crash if no associated address · 90a6d17b
      Marc-André Lureau 提交于
      A socket chardev may not have associated address (when adding client
      fd manually for example). But on disconnect, updating socket filename
      expects an address and may lead to this crash:
      
        Thread 1 "qemu-system-x86" received signal SIGSEGV, Segmentation fault.
        0x0000555555d8c70c in SocketAddress_to_str (prefix=0x555556043062 "disconnected:", addr=0x0, is_listen=false, is_telnet=false) at /home/elmarco/src/qq/chardev/char-socket.c:388
        388	    switch (addr->type) {
        (gdb) bt
        #0  0x0000555555d8c70c in SocketAddress_to_str (prefix=0x555556043062 "disconnected:", addr=0x0, is_listen=false, is_telnet=false) at /home/elmarco/src/qq/chardev/char-socket.c:388
        #1  0x0000555555d8c8aa in update_disconnected_filename (s=0x555556b1ed00) at /home/elmarco/src/qq/chardev/char-socket.c:419
        #2  0x0000555555d8c959 in tcp_chr_disconnect (chr=0x555556b1ed00) at /home/elmarco/src/qq/chardev/char-socket.c:438
        #3  0x0000555555d8cba1 in tcp_chr_hup (channel=0x555556b75690, cond=G_IO_HUP, opaque=0x555556b1ed00) at /home/elmarco/src/qq/chardev/char-socket.c:482
        #4  0x0000555555da596e in qio_channel_fd_source_dispatch (source=0x555556bb68b0, callback=0x555555d8cb58 <tcp_chr_hup>, user_data=0x555556b1ed00) at /home/elmarco/src/qq/io/channel-watch.c:84
      
      Replace filename with a generic "disconnected:socket" in this case.
      Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
      Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
      90a6d17b
    • P
      Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging · dafd9505
      Peter Maydell 提交于
      * configure fix for environment variables (Daniel)
      * fix memory leaks (Alex)
      * x86_64 MTTCG fixes (Emilio)
      * introduce atomic64 (Emilio)
      * Fix for virtio hang (Fam, myself)
      * SH serial port fix (Geert)
      * Deprecate rotation_rate for scsi-block (Fam)
      * Extend memory-backend-file availability to all POSIX hosts (Hikaru)
      * Memory API cleanups and fixes (Igor, Li Qiang, Peter, Philippe)
      * MSI/IOMMU fix (Jan)
      * Socket reconnection fixes (Marc-André)
      * icount fixes (Emilio, myself)
      * QSP fixes for Coverity (myself)
      * Some record/replay improovements (Pavel)
      * Packed struct fixes (Peter)
      * Windows dump fixes and elf2dmp (Viktor)
      * kbmclock fix (Yongji)
      
      # gpg: Signature made Tue 02 Oct 2018 18:13:12 BST
      # gpg:                using RSA key BFFBD25F78C7AE83
      # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>"
      # gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>"
      # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
      #      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83
      
      * remotes/bonzini/tags/for-upstream: (80 commits)
        hw/scsi/mptendian: Avoid taking address of fields in packed structs
        cpus: fix TCG kick timer leak
        docs/devel/memory.txt: Document _with_attrs accessors
        hw/nvram/fw_cfg: Use memberwise copy of MemoryRegionOps struct
        memory: Remove old_mmio accessors
        memory: Fix access_with_adjusted_size(small size) on big-endian memory regions
        memory: Refactor common shifting code from accessors
        memory: Use MAKE_64BIT_MASK()
        virtio: do not take address of packed members
        replay: replay BH for IDE trim operation
        hostmem-file: make available memory-backend-file on POSIX-based hosts
        target/i386: fix translation for icount mode
        hvf: drop unused variable
        qom/object: add some interface asserts
        accel/tcg: Remove dead code
        lsi53c895a: convert to trace-events
        scsi-block: Deprecate rotation_rate
        kvmclock: run KVM_KVMCLOCK_CTRL ioctl in vcpu thread
        MAINTAINERS: add myself as elf2dmp maintainer
        contrib: add elf2dmp tool
        ...
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      dafd9505
    • P
      hw/scsi/mptendian: Avoid taking address of fields in packed structs · 97866508
      Peter Maydell 提交于
      Taking the address of a field in a packed struct is a bad idea, because
      it might not be actually aligned enough for that pointer type (and
      thus cause a crash on dereference on some host architectures). Newer
      versions of clang warn about this. Avoid the bug by not using the
      "modify in place" byte swapping functions.
      
      This patch was produced with the following simple spatch script:
      @@
      expression E;
      @@
      -le16_to_cpus(&E);
      +E = le16_to_cpu(E);
      @@
      expression E;
      @@
      -le32_to_cpus(&E);
      +E = le32_to_cpu(E);
      @@
      expression E;
      @@
      -le64_to_cpus(&E);
      +E = le64_to_cpu(E);
      @@
      expression E;
      @@
      -cpu_to_le16s(&E);
      +E = cpu_to_le16(E);
      @@
      expression E;
      @@
      -cpu_to_le32s(&E);
      +E = cpu_to_le32(E);
      @@
      expression E;
      @@
      -cpu_to_le64s(&E);
      +E = cpu_to_le64(E);
      
      followed by some minor tidying of overlong lines and bad indent.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-Id: <20180927134852.21490-1-peter.maydell@linaro.org>
      Reviewed-by: NFam Zheng <famz@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      97866508