Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: qemu/qemu
base: 5980189e960e^
Choose a base ref
...
head repository: qemu/qemu
compare: 01f6417f1550
Choose a head ref
  • 5 commits
  • 4 files changed
  • 2 contributors

Commits on Aug 23, 2023

  1. target/s390x: Fix the "ignored match" case in VSTRS

    Currently the emulation of VSTRS recognizes partial matches in presence
    of \0 in the haystack, which, according to PoP, is not correct:
    
        If the ZS flag is one and a zero byte was detected
        in the second operand, then there can not be a
        partial match ...
    
    Add a check for this. While at it, fold a number of explicitly handled
    special cases into the generic logic.
    
    Cc: qemu-stable@nongnu.org
    Reported-by: Claudio Fontana <cfontana@suse.de>
    Closes: https://lists.gnu.org/archive/html/qemu-devel/2023-08/msg00633.html
    Fixes: 1d706f3 ("target/s390x: vxeh2: vector string search")
    Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
    Message-Id: <20230804233748.218935-3-iii@linux.ibm.com>
    Tested-by: Claudio Fontana <cfontana@suse.de>
    Acked-by: David Hildenbrand <david@redhat.com>
    Signed-off-by: Thomas Huth <thuth@redhat.com>
    (cherry picked from commit 791b2b6)
    Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
    iii-i authored and Michael Tokarev committed Aug 23, 2023
    Copy the full SHA
    5980189 View commit details
    Browse the repository at this point in the history
  2. target/s390x: Use a 16-bit immediate in VREP

    Unlike most other instructions that contain an immediate element index,
    VREP's one is 16-bit, and not 4-bit. The code uses only 8 bits, so
    using, e.g., 0x101 does not lead to a specification exception.
    
    Fix by checking all 16 bits.
    
    Cc: qemu-stable@nongnu.org
    Fixes: 28d0873 ("s390x/tcg: Implement VECTOR REPLICATE")
    Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
    Message-Id: <20230807163459.849766-1-iii@linux.ibm.com>
    Reviewed-by: David Hildenbrand <david@redhat.com>
    Signed-off-by: Thomas Huth <thuth@redhat.com>
    (cherry picked from commit 23e87d4)
    Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
    iii-i authored and Michael Tokarev committed Aug 23, 2023
    Copy the full SHA
    880e82e View commit details
    Browse the repository at this point in the history
  3. target/s390x: Fix VSTL with a large length

    The length is always truncated to 16 bytes. Do not probe more than
    that.
    
    Cc: qemu-stable@nongnu.org
    Fixes: 0e0a5b4 ("s390x/tcg: Implement VECTOR STORE WITH LENGTH")
    Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
    Message-Id: <20230804235624.263260-1-iii@linux.ibm.com>
    Reviewed-by: David Hildenbrand <david@redhat.com>
    Signed-off-by: Thomas Huth <thuth@redhat.com>
    (cherry picked from commit 6db3518)
    Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
    iii-i authored and Michael Tokarev committed Aug 23, 2023
    Copy the full SHA
    c12eddb View commit details
    Browse the repository at this point in the history
  4. target/s390x: Check reserved bits of VFMIN/VFMAX's M5

    VFMIN and VFMAX should raise a specification exceptions when bits 1-3
    of M5 are set.
    
    Cc: qemu-stable@nongnu.org
    Fixes: da48075 ("s390x/tcg: Implement VECTOR FP (MAXIMUM|MINIMUM)")
    Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
    Message-Id: <20230804234621.252522-1-iii@linux.ibm.com>
    Reviewed-by: David Hildenbrand <david@redhat.com>
    Signed-off-by: Thomas Huth <thuth@redhat.com>
    (cherry picked from commit 6a2ea61)
    Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
    iii-i authored and Michael Tokarev committed Aug 23, 2023
    Copy the full SHA
    14a8213 View commit details
    Browse the repository at this point in the history
  5. include/hw/virtio/virtio-gpu: Fix virtio-gpu with blob on big endian …

    …hosts
    
    Using "-device virtio-gpu,blob=true" currently does not work on big
    endian hosts (like s390x). The guest kernel prints an error message
    like:
    
     [drm:virtio_gpu_dequeue_ctrl_func [virtio_gpu]] *ERROR* response 0x1200 (command 0x10c)
    
    and the display stays black. When running QEMU with "-d guest_errors",
    it shows an error message like this:
    
     virtio_gpu_create_mapping_iov: nr_entries is too big (83886080 > 16384)
    
    which indicates that this value has not been properly byte-swapped.
    And indeed, the virtio_gpu_create_blob_bswap() function (that should
    swap the fields in the related structure) fails to swap some of the
    entries. After correctly swapping all missing values here, too, the
    virtio-gpu device is now also working with blob=true on s390x hosts.
    
    Fixes: e0933d9 ("virtio-gpu: Add virtio_gpu_resource_create_blob")
    Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=2230469
    Message-Id: <20230815122007.928049-1-thuth@redhat.com>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Signed-off-by: Thomas Huth <thuth@redhat.com>
    (cherry picked from commit d194362)
    Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
    huth authored and Michael Tokarev committed Aug 23, 2023
    Copy the full SHA
    01f6417 View commit details
    Browse the repository at this point in the history