1. 16 9月, 2016 1 次提交
    • D
      vfio/pci: Fix regression in MSI routing configuration · 6d17a018
      David Gibson 提交于
      d1f6af6a "kvm-irqchip: simplify kvm_irqchip_add_msi_route" was a cleanup
      of kvmchip routing configuration, that was mostly intended for x86.
      However, it also contains a subtle change in behaviour which breaks EEH[1]
      error recovery on certain VFIO passthrough devices on spapr guests.  So far
      it's only been seen on a BCM5719 NIC on a POWER8 server, but there may be
      other hardware with the same problem.  It's also possible there could be
      circumstances where it causes a bug on x86 as well, though I don't know of
      any obvious candidates.
      
      Prior to d1f6af6a, both vfio_msix_vector_do_use() and
      vfio_add_kvm_msi_virq() used msg == NULL as a special flag to mark this
      as the "dummy" vector used to make the host hardware state sync with the
      guest expected hardware state in terms of MSI configuration.
      
      Specifically that flag caused vfio_add_kvm_msi_virq() to become a no-op,
      meaning the dummy irq would always be delivered via qemu. d1f6af6a changed
      vfio_add_kvm_msi_virq() so it takes a vector number instead of the msg
      parameter, and determines the correct message itself.  The test for !msg
      was removed, and not replaced with anything there or in the caller.
      
      With an spapr guest which has a VFIO device, if an EEH error occurs on the
      host hardware, then the device will be isolated then reset.  This is a
      combination of host and guest action, mediated by some EEH related
      hypercalls.  I haven't fully traced the mechanics, but somehow installing
      the kvm irqchip route for the dummy irq on the BCM5719 means that after EEH
      reset and recovery, at least some irqs are no longer delivered to the
      guest.
      
      In particular, the guest never gets the link up event, and so the NIC is
      effectively dead.
      
      [1] EEH (Enhanced Error Handling) is an IBM POWER server specific PCI-*
          error reporting and recovery mechanism.  The concept is somewhat
          similar to PCI-E AER, but the details are different.
      
      Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1373802
      
      Cc: Alex Williamson <alex.williamson@redhat.com>
      Cc: Peter Xu <peterx@redhat.com>
      Cc: Gavin Shan <gwshan@au1.ibm.com>
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Cc: qemu-stable@nongnu.org
      Fixes: d1f6af6a ("kvm-irqchip: simplify kvm_irqchip_add_msi_route")
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      6d17a018
  2. 15 9月, 2016 4 次提交
    • P
      Merge remote-tracking branch 'remotes/kraxel/tags/pull-usb-20160914-1' into staging · 9f16390c
      Peter Maydell 提交于
      usb-mtp: add support for files larger than 4g (gsoc)
      xhci & usb-host: bugfixes.
      
      # gpg: Signature made Wed 14 Sep 2016 10:30:38 BST
      # gpg:                using RSA key 0x4CB6D8EED3E87138
      # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>"
      # gpg:                 aka "Gerd Hoffmann <gerd@kraxel.org>"
      # gpg:                 aka "Gerd Hoffmann (private) <kraxel@gmail.com>"
      # Primary key fingerprint: A032 8CFF B93A 17A7 9901  FE7D 4CB6 D8EE D3E8 7138
      
      * remotes/kraxel/tags/pull-usb-20160914-1:
        usb-mtp: added object properties
        usb-mtp: fix sending files larger than 4gb
        usb:xhci:fix memory leak in usb_xhci_exit
        usb-host: fix streams detection in usb_host_speed_compat
        xhci: Fix remainder field for TR_SETUP completion event.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      9f16390c
    • A
      fpu: add mechanism to check for invalid long double formats · d1eb8f2a
      Andrew Dutcher 提交于
      All operations that take a floatx80 as an operand need to have their
      inputs checked for malformed encodings. In all of these cases, use the
      function floatx80_invalid_encoding to perform the check. If an invalid
      operand is found, raise an invalid operation exception, and then return
      either NaN (for fp-typed results) or the integer indefinite value (the
      minimum representable signed integer value, for int-typed results).
      
      For the non-quiet comparison operations, this touches adjacent code in
      order to pass style checks.
      Signed-off-by: NAndrew Dutcher <andrew@andrewdutcher.com>
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1471392895-17324-1-git-send-email-andrew@andrewdutcher.com
      [PMM: changed "1 << 63" to "1ULL << 63" to fix compile errors]
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      d1eb8f2a
    • P
      ui/cocoa.m: Make a better about dialog · 9e8204b1
      Programmingkid 提交于
      The about dialog in QEMU on Mac OS X is very plain and unhelpful. This patch
      makes the about dialog look a lot better and have some descriptive information
      on what version of QEMU the user is running.
      Signed-off-by: NJohn Arbuckle <programmingkidx@gmail.com>
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: ED59936E-3EB2-46AB-9E33-AB26E382B884@gmail.com
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      9e8204b1
    • P
      Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging · 8212ff86
      Peter Maydell 提交于
      * minor patches here and there
      * MTTCG: lock-free TB lookup
      * SCSI: bugfixes for MPTSAS, MegaSAS, LSI53c, vmw_pvscsi
      * buffer_is_zero rewrite (except for one patch)
      * chardev: qemu_chr_fe_write checks
      * checkpatch improvement for markdown preformatted text
      * default-configs cleanups
      * atomics cleanups
      
      # gpg: Signature made Tue 13 Sep 2016 18:14:30 BST
      # gpg:                using RSA key 0xBFFBD25F78C7AE83
      # 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: (58 commits)
        cutils: Add generic prefetch
        cutils: Add SSE4 version
        cutils: Add test for buffer_is_zero
        cutils: Remove ppc buffer zero checking
        cutils: Remove aarch64 buffer zero checking
        cutils: Rearrange buffer_is_zero acceleration
        cutils: Export only buffer_is_zero
        cutils: Remove SPLAT macro
        cutils: Move buffer_is_zero and subroutines to a new file
        ppc: do not redefine CPUPPCState
        x86/lapic: Load LAPIC state at post_load
        optionrom: do not rely on compiler's bswap optimization
        checkpatch: Fix whitespace checks for documentation code blocks
        atomics: Use __atomic_*_n() variant primitives
        atomics: Remove redundant barrier()'s
        kvm-all: drop kvm_setup_guest_memory
        i8257: Make device "i8257" unavailable with -device
        Revert "megasas: remove useless check for cmd->frame"
        char: convert qemu_chr_fe_write to qemu_chr_fe_write_all
        hw: replace most use of qemu_chr_fe_write with qemu_chr_fe_write_all
        ...
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      
       Conflicts:
      	cpus.c
      	tests/Makefile.include
      8212ff86
  3. 14 9月, 2016 35 次提交