Branch: refs/heads/staging-7.2
  Home:   https://github.com/qemu/qemu
  Commit: 861fca8ce0c0837a3244d29be2cb15565852bf86
      
https://github.com/qemu/qemu/commit/861fca8ce0c0837a3244d29be2cb15565852bf86
  Author: Philippe Mathieu-Daudé <phi...@linaro.org>
  Date:   2024-04-24 (Wed, 24 Apr 2024)

  Changed paths:
    R .gitlab-ci.d/edk2.yml
    R .gitlab-ci.d/edk2/Dockerfile
    M .gitlab-ci.d/qemu-project.yml
    M MAINTAINERS

  Log Message:
  -----------
  gitlab-ci: Remove job building EDK2 firmware binaries

When we introduced this Gitlab-CI job in commit 71920809ce
("gitlab-ci.yml: Add jobs to build EDK2 firmware binaries"),
the naive plan was to have reproducible binaries by downloading
what this job would build, testing it and eventually committing
it. With retrospective, nothing happened 3 years later and this
job is just bitrotting:

  Step 1/3 : FROM ubuntu:18.04
  18.04: Pulling from library/ubuntu
  mediaType in manifest should be
  'application/vnd.docker.distribution.manifest.v2+json' not
  'application/vnd.oci.image.manifest.v1+json'

Remove this job to avoid wasting maintenance and CI ressources.

Reported-by: Palmer Dabbelt <pal...@rivosinc.com>
Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Message-Id: <20230310133247.39268-1-phi...@linaro.org>
Signed-off-by: Thomas Huth <th...@redhat.com>
(cherry picked from commit 690ceb71936f9037f6e11580709e26b62d83c17c)
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>


  Commit: 6ea6863f215c7f1f3cf7756dc5876a67ba2b90fc
      
https://github.com/qemu/qemu/commit/6ea6863f215c7f1f3cf7756dc5876a67ba2b90fc
  Author: Palmer Dabbelt <pal...@rivosinc.com>
  Date:   2024-04-24 (Wed, 24 Apr 2024)

  Changed paths:
    M .gitlab-ci.d/opensbi.yml
    M .gitlab-ci.d/opensbi/Dockerfile

  Log Message:
  -----------
  gitlab/opensbi: Move to docker:stable

The OpenSBI build has been using docker:19.03.1, which appears to be old
enough that v2 of the manifest is no longer supported.  Something has
started serving us those manifests, resulting in errors along the lines
of

    $ docker build --cache-from $IMAGE_TAG --tag 
$CI_REGISTRY_IMAGE:$CI_COMMIT_SHA --tag $IMAGE_TAG .gitlab-ci.d/opensbi
    Step 1/7 : FROM ubuntu:18.04
    18.04: Pulling from library/ubuntu
    mediaType in manifest should be 
'application/vnd.docker.distribution.manifest.v2+json' not 
'application/vnd.oci.image.manifest.v1+json'

This moves to docker:stable, as was suggested by the template.  It also
adds the python3 package via apt, as OpenSBI requires that to build.

Reviewed-by: Bin Meng <bm...@tinylab.org>
Message-ID: <20230303202448.11911-2-pal...@rivosinc.com>
Signed-off-by: Palmer Dabbelt <pal...@rivosinc.com>
(cherry picked from commit 7bc1286b81d4e8380b3083beed1771c67ce87af3)
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>


  Commit: 51cc8762a0c2f8b08d1fc4957c0c309c73241812
      
https://github.com/qemu/qemu/commit/51cc8762a0c2f8b08d1fc4957c0c309c73241812
  Author: Michael Tokarev <m...@tls.msk.ru>
  Date:   2024-04-25 (Thu, 25 Apr 2024)

  Changed paths:
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: do_setsockopt: fix SOL_ALG.ALG_SET_KEY

This setsockopt accepts zero-lengh optlen (current qemu implementation
does not allow this).  Also, there's no need to make a copy of the key,
it is enough to use lock_user() (which accepts zero length already).

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2197
Fixes: f31dddd2fc "linux-user: Add support for setsockopt() option SOL_ALG"
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>
Message-Id: <20240331100737.2724186-2-...@tls.msk.ru>
Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
(cherry picked from commit 04f6fb897a5aeb3e356a7b889869c9962f9c16c7)
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>


  Commit: a0823c276671b0253f77cf5a1550995c3d06050f
      
https://github.com/qemu/qemu/commit/a0823c276671b0253f77cf5a1550995c3d06050f
  Author: Zhu Yangyang <zhuyangyan...@huawei.com>
  Date:   2024-04-28 (Sun, 28 Apr 2024)

  Changed paths:
    M nbd/client.c
    M nbd/common.c
    M nbd/nbd-internal.h
    M nbd/server.c

  Log Message:
  -----------
  nbd/server: do not poll within a coroutine context

Coroutines are not supposed to block. Instead, they should yield.

The client performs TLS upgrade outside of an AIOContext, during
synchronous handshake; this still requires g_main_loop.  But the
server responds to TLS upgrade inside a coroutine, so a nested
g_main_loop is wrong.  Since the two callbacks no longer share more
than the setting of data.complete and data.error, it's just as easy to
use static helpers instead of trying to share a common code path.  It
is also possible to add assertions that no other code is interfering
with the eventual path to qio reaching the callback, whether or not it
required a yield or main loop.

Fixes: f95910f ("nbd: implement TLS support in the protocol negotiation")
Signed-off-by: Zhu Yangyang <zhuyangyan...@huawei.com>
[eblake: move callbacks to their use point, add assertions]
Signed-off-by: Eric Blake <ebl...@redhat.com>
Message-ID: <20240408160214.1200629-5-ebl...@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
(cherry picked from commit ae6d91a7e9b77abb029ed3fa9fad461422286942)
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>


  Commit: f7b46e82cec023597da0e2cc65d911626bae9d6c
      
https://github.com/qemu/qemu/commit/f7b46e82cec023597da0e2cc65d911626bae9d6c
  Author: Eric Blake <ebl...@redhat.com>
  Date:   2024-04-28 (Sun, 28 Apr 2024)

  Changed paths:
    M nbd/server.c

  Log Message:
  -----------
  nbd/server: Mark negotiation functions as coroutine_fn

nbd_negotiate() is already marked coroutine_fn.  And given the fix in
the previous patch to have nbd_negotiate_handle_starttls not create
and wait on a g_main_loop (as that would violate coroutine
constraints), it is worth marking the rest of the related static
functions reachable only during option negotiation as also being
coroutine_fn.

Suggested-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
Signed-off-by: Eric Blake <ebl...@redhat.com>
Message-ID: <20240408160214.1200629-6-ebl...@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
[eblake: drop one spurious coroutine_fn marking]
Signed-off-by: Eric Blake <ebl...@redhat.com>
(cherry picked from commit 4fa333e08dd96395a99ea8dd9e4c73a29dd23344)
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>
(Mjt: fixups in nbd/server.c for v8.1.0-1366-gfd358d83901d
 "nbd/server: Refactor list of negotiated meta contexts")


  Commit: 39a0961d0a202a8b436b273c89ba8ad8f61dff57
      
https://github.com/qemu/qemu/commit/39a0961d0a202a8b436b273c89ba8ad8f61dff57
  Author: Li Zhijian <lizhij...@fujitsu.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M backends/cryptodev-builtin.c

  Log Message:
  -----------
  backends/cryptodev-builtin: Fix local_error leaks

It seems that this error does not need to be propagated to the upper,
directly output the error to avoid the leaks

Closes: https://gitlab.com/qemu-project/qemu/-/issues/2283
Fixes: 2fda101de07 ("virtio-crypto: Support asynchronous mode")
Signed-off-by: Li Zhijian <lizhij...@fujitsu.com>
Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Reviewed-by: zhenwei pi <pizhen...@bytedance.com>
Reviewed-by: Michael Tokarev <m...@tls.msk.ru>
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>
(cherry picked from commit 06479dbf3d7d245572c4b3016e5a1d923ff04d66)
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>


  Commit: e00c9b475839959adf147610e796648cf6d4525f
      
https://github.com/qemu/qemu/commit/e00c9b475839959adf147610e796648cf6d4525f
  Author: Peter Maydell <peter.mayd...@linaro.org>
  Date:   2024-05-01 (Wed, 01 May 2024)

  Changed paths:
    M tests/avocado/boot_linux_console.py
    M tests/avocado/replay_kernel.py

  Log Message:
  -----------
  tests/avocado: update sunxi kernel from armbian to 6.6.16

The Linux kernel 5.10.16 binary for sunxi has been removed from
apt.armbian.com. This means that the avocado tests for these machines
will be skipped (status CANCEL) if the old binary isn't present in
the avocado cache.

Update to 6.6.16, in the same way we did in commit e384db41d8661
when we moved to 5.10.16 in 2021.

Cc: qemu-sta...@nongnu.org
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2284
Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>
Reviewed-by: Strahinja Jankovic <strahinja.p.janko...@gmail.com>
Reviewed-by: Niek Linnenbank <nieklinnenb...@gmail.com>
Tested-by: Niek Linnenbank <nieklinnenb...@gmail.com>
Message-id: 20240415151845.1564201-1-peter.mayd...@linaro.org
(cherry picked from commit dcc5c018c7e6acddf81951bcbdf1019b9ab45f56)
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>
(Mjt: drop changes for tests which does not exists in 7.2)


  Commit: 9a005e30f5596d1903d531e243b986a2fd5c162e
      
https://github.com/qemu/qemu/commit/9a005e30f5596d1903d531e243b986a2fd5c162e
  Author: Thomas Huth <th...@redhat.com>
  Date:   2024-05-01 (Wed, 01 May 2024)

  Changed paths:
    M .gitlab-ci.d/cirrus.yml

  Log Message:
  -----------
  .gitlab-ci.d/cirrus.yml: Shorten the runtime of the macOS and FreeBSD jobs

Cirrus-CI introduced limitations to the free CI minutes. To avoid that
we are consuming them too fast, let's drop the usual targets that are
not that important since they are either a subset of another target
(like i386 or ppc being a subset of x86_64 or ppc64 respectively), or
since there is still a similar target with the opposite endianness
(like xtensa/xtensael, microblaze/microblazeel etc.).

Message-ID: <20240429100113.53357-1-th...@redhat.com>
Signed-off-by: Thomas Huth <th...@redhat.com>
(cherry picked from commit a88a04906b966ffdcda23a5a456abe10aa8c826e)
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>


  Commit: a004dfabeaf6b3c3b400f7e263d2e9995f9a2d37
      
https://github.com/qemu/qemu/commit/a004dfabeaf6b3c3b400f7e263d2e9995f9a2d37
  Author: Alexandra Diupina <adiup...@astralinux.ru>
  Date:   2024-05-02 (Thu, 02 May 2024)

  Changed paths:
    M hw/dma/xlnx_dpdma.c

  Log Message:
  -----------
  hw/dmax/xlnx_dpdma: fix handling of address_extension descriptor fields

The DMA descriptor structures for this device have
a set of "address extension" fields which extend the 32
bit source addresses with an extra 16 bits to give a
48 bit address:
 https://docs.amd.com/r/en-US/ug1085-zynq-ultrascale-trm/ADDR_EXT-Field

However, we misimplemented this address extension in several ways:
 * we only extracted 12 bits of the extension fields, not 16
 * we didn't shift the extension field up far enough
 * we accidentally did the shift as 32-bit arithmetic, which
   meant that we would have an overflow instead of setting
   bits [47:32] of the resulting 64-bit address

Add a type cast and use extract64() instead of extract32()
to avoid integer overflow on addition. Fix bit fields
extraction according to documentation.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Cc: qemu-sta...@nongnu.org
Fixes: d3c6369a96 ("introduce xlnx-dpdma")
Signed-off-by: Alexandra Diupina <adiup...@astralinux.ru>
Message-id: 20240428181131.23801-1-adiup...@astralinux.ru
[PMM: adjusted commit message]
Reviewed-by: Peter Maydell <peter.mayd...@linaro.org>
Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>
(cherry picked from commit 4b00855f0ee2e2eee8fd2500ffef27c108be6dc3)
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>


  Commit: 2e3e5138d60e8d43a8554e9b1728163f87569e1a
      
https://github.com/qemu/qemu/commit/2e3e5138d60e8d43a8554e9b1728163f87569e1a
  Author: Philippe Mathieu-Daudé <phi...@linaro.org>
  Date:   2024-05-02 (Thu, 02 May 2024)

  Changed paths:
    M hw/arm/npcm7xx.c

  Log Message:
  -----------
  hw/arm/npcm7xx: Store derivative OTP fuse key in little endian

Use little endian for derivative OTP fuse key.

Cc: qemu-sta...@nongnu.org
Fixes: c752bb079b ("hw/nvram: NPCM7xx OTP device model")
Suggested-by: Avi Fishman <avi.fish...@nuvoton.com>
Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Message-id: 20240422125813.1403-1-phi...@linaro.org
Reviewed-by: Peter Maydell <peter.mayd...@linaro.org>
Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>
(cherry picked from commit eb656a60fd93262b1e519b3162888bf261df7f68)
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>


  Commit: 41e052fc05d20c171edf8ba16894871a4d1720f3
      
https://github.com/qemu/qemu/commit/41e052fc05d20c171edf8ba16894871a4d1720f3
  Author: Ruihan Li <lrh2...@pku.edu.cn>
  Date:   2024-05-09 (Thu, 09 May 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: Give IRQs a chance when resetting HF_INHIBIT_IRQ_MASK

When emulated with QEMU, interrupts will never come in the following
loop. However, if the NOP instruction is uncommented, interrupts will
fire as normal.

        loop:
                cli
                call do_sti
                jmp loop

        do_sti:
                sti
                # nop
                ret

This behavior is different from that of a real processor. For example,
if KVM is enabled, interrupts will always fire regardless of whether the
NOP instruction is commented or not. Also, the Intel Software Developer
Manual states that after the STI instruction is executed, the interrupt
inhibit should end as soon as the next instruction (e.g., the RET
instruction if the NOP instruction is commented) is executed.

This problem is caused because the previous code may choose not to end
the TB even if the HF_INHIBIT_IRQ_MASK has just been reset (e.g., in the
case where the STI instruction is immediately followed by the RET
instruction), so that IRQs may not have a change to trigger. This commit
fixes the problem by always terminating the current TB to give IRQs a
chance to trigger when HF_INHIBIT_IRQ_MASK is reset.

Reviewed-by: Richard Henderson <richard.hender...@linaro.org>
Signed-off-by: Ruihan Li <lrh2...@pku.edu.cn>
Message-ID: <20240415064518.4951-4-lrh2...@pku.edu.cn>
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
(cherry picked from commit 6a5a63f74ba5c5355b7a8468d3d814bfffe928fb)
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>
(Mjt: context fixup due to missing-in-7.2
 v8.1.0-1189-gad75a51e84 "tcg: Rename cpu_env to tcg_env")


  Commit: 2b8be9cffb8caaa8377cdc30fe9c406e57d4ba82
      
https://github.com/qemu/qemu/commit/2b8be9cffb8caaa8377cdc30fe9c406e57d4ba82
  Author: Mattias Nissler <mniss...@rivosinc.com>
  Date:   2024-05-10 (Fri, 10 May 2024)

  Changed paths:
    M hw/remote/vfio-user-obj.c

  Log Message:
  -----------
  hw/remote/vfio-user: Fix config space access byte order

PCI config space is little-endian, so on a big-endian host we need to
perform byte swaps for values as they are passed to and received from
the generic PCI config space access machinery.

Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Jagannathan Raman <jag.ra...@oracle.com>
Signed-off-by: Mattias Nissler <mniss...@rivosinc.com>
Message-ID: <20240507094210.300566-6-mniss...@rivosinc.com>
Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org>
(cherry picked from commit e6578f1f68a0e90789a841ada532c3e494c9a04c)
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>


  Commit: 76b96c053fe2c683aab8811449dd9b6aace1d94c
      
https://github.com/qemu/qemu/commit/76b96c053fe2c683aab8811449dd9b6aace1d94c
  Author: Paolo Bonzini <pbonz...@redhat.com>
  Date:   2024-05-27 (Mon, 27 May 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: fix operand size for DATA16 REX.W POPCNT

According to the manual, 32-bit vs 64-bit is governed by REX.W
and REX ignores the 0x66 prefix.  This can be confirmed with this
program:

    #include <stdio.h>
    int main()
    {
       int x = 0x12340000;
       int y;
       asm("popcntl %1, %0" : "=r" (y) : "r" (x)); printf("%x\n", y);
       asm("mov $-1, %0; .byte 0x66; popcntl %1, %0" : "+r" (y) : "r" (x)); 
printf("%x\n", y);
       asm("mov $-1, %0; .byte 0x66; popcntq %q1, %q0" : "+r" (y) : "r" (x)); 
printf("%x\n", y);
    }

which prints 5/ffff0000/5 on real hardware and 5/ffff0000/ffff0000
on QEMU.

Cc: qemu-sta...@nongnu.org
Reviewed-by: Zhao Liu <zhao1....@intel.com>
Reviewed-by: Richard Henderson <richard.hender...@linaro.org>
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
(cherry picked from commit 41c685dc59bb611096f3bb6a663cfa82e4cba97b)
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>
(Mjt: drop removal of mo_64_32() helper function in target/i386/tcg/translate.c
 due to missing-in-7.2 v9.0.0-542-gaef4f4affde2
 "target/i386: remove now-converted opcodes from old decoder"
 which removed other user of it)


  Commit: e6000bd7c7cfdd0fc224531e2971e482bbecd1ad
      
https://github.com/qemu/qemu/commit/e6000bd7c7cfdd0fc224531e2971e482bbecd1ad
  Author: Paolo Bonzini <pbonz...@redhat.com>
  Date:   2024-05-27 (Mon, 27 May 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: rdpkru/wrpkru are no-prefix instructions

Reject 0x66/0xf3/0xf2 in front of them.

Cc: qemu-sta...@nongnu.org
Reviewed-by: Richard Henderson <richard.hender...@linaro.org>
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
(cherry picked from commit 40a3ec7b5ffde500789d016660a171057d6b467c)
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>


  Commit: 659835d24baf6ceeb0d96a61cd86483f719ab093
      
https://github.com/qemu/qemu/commit/659835d24baf6ceeb0d96a61cd86483f719ab093
  Author: hikalium <hikal...@hikalium.com>
  Date:   2024-05-27 (Mon, 27 May 2024)

  Changed paths:
    M ui/gtk.c

  Log Message:
  -----------
  ui/gtk: Fix mouse/motion event scaling issue with GTK display backend

Remove gtk_widget_get_scale_factor() usage from the calculation of
the motion events in the GTK backend to make it work correctly on
environments that have `gtk_widget_get_scale_factor() != 1`.

This scale factor usage had been introduced in the commit f14aab420c and
at that time the window size was used for calculating the things and it
was working correctly. However, in the commit 2f31663ed4 the logic
switched to use the widget size instead of window size and because of
the change the usage of scale factor becomes invalid (since widgets use
`vc->gfx.scale_{x, y}` for scaling).

Tested on Crostini on ChromeOS (15823.51.0) with an external display.

Fixes: 2f31663ed4 ("ui/gtk: use widget size for cursor motion event")
Fixes: f14aab420c ("ui: fix incorrect pointer position on highdpi with
gtk")
(f14aab420c is 95c9059e66 in stable-7.2)

Signed-off-by: hikalium <hikal...@hikalium.com>
Acked-by: Marc-André Lureau <marcandre.lur...@redhat.com>
Message-Id: <20240512111435.30121-3-hikal...@hikalium.com>
(cherry picked from commit 37e91415018db3656b46cdea8f9e4d47b3ff130d)
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>


  Commit: 5ec422a9584db3782b3cb884522b3542c1abd7d4
      
https://github.com/qemu/qemu/commit/5ec422a9584db3782b3cb884522b3542c1abd7d4
  Author: Dongwon Kim <dongwon....@intel.com>
  Date:   2024-05-27 (Mon, 27 May 2024)

  Changed paths:
    M ui/gtk-egl.c
    M ui/gtk-gl-area.c
    M ui/gtk.c

  Log Message:
  -----------
  ui/gtk: Check if fence_fd is equal to or greater than 0

'fence_fd' needs to be validated always before being referenced
And the passing condition should include '== 0' as 0 is a valid
value for the file descriptor.

Suggested-by: Marc-André Lureau <marcandre.lur...@redhat.com>
Reviewed-by: Daniel P. Berrangé <berra...@redhat.com>
Cc: Philippe Mathieu-Daudé <phi...@linaro.org>
Cc: Daniel P. Berrangé <berra...@redhat.com>
Cc: Vivek Kasireddy <vivek.kasire...@intel.com>
Signed-off-by: Dongwon Kim <dongwon....@intel.com>
Message-Id: <20240508175403.3399895-2-dongwon....@intel.com>
(cherry picked from commit e4e62514e3cc2fc9dbae44af8b80f61c730beab4)
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>


  Commit: ddc13a3c422533d5736c4e5f66e2263a496991e5
      
https://github.com/qemu/qemu/commit/ddc13a3c422533d5736c4e5f66e2263a496991e5
  Author: donsheng <dongsheng.x.zh...@intel.com>
  Date:   2024-05-27 (Mon, 27 May 2024)

  Changed paths:
    M target/i386/kvm/hyperv.c

  Log Message:
  -----------
  target-i386: hyper-v: Correct kvm_hv_handle_exit return value

This bug fix addresses the incorrect return value of kvm_hv_handle_exit for
KVM_EXIT_HYPERV_SYNIC, which should be EXCP_INTERRUPT.

Handling of KVM_EXIT_HYPERV_SYNIC in QEMU needs to be synchronous.
This means that async_synic_update should run in the current QEMU vCPU
thread before returning to KVM, returning EXCP_INTERRUPT to guarantee this.
Returning 0 can cause async_synic_update to run asynchronously.

One problem (kvm-unit-tests's hyperv_synic test fails with timeout error)
caused by this bug:

When a guest VM writes to the HV_X64_MSR_SCONTROL MSR to enable Hyper-V SynIC,
a VM exit is triggered and processed by the kvm_hv_handle_exit function of the
QEMU vCPU. This function then calls the async_synic_update function to set
synic->sctl_enabled to true. A true value of synic->sctl_enabled is required
before creating SINT routes using the hyperv_sint_route_new() function.

If kvm_hv_handle_exit returns 0 for KVM_EXIT_HYPERV_SYNIC, the current QEMU
vCPU thread may return to KVM and enter the guest VM before running
async_synic_update. In such case, the hyperv_synic test’s subsequent call to
synic_ctl(HV_TEST_DEV_SINT_ROUTE_CREATE, ...) immediately after writing to
HV_X64_MSR_SCONTROL can cause QEMU’s hyperv_sint_route_new() function to return
prematurely (because synic->sctl_enabled is false).

If the SINT route is not created successfully, the SINT interrupt will not be
fired, resulting in a timeout error in the hyperv_synic test.

Fixes: 267e071bd6d6 (“hyperv: make overlay pages for SynIC”)
Suggested-by: Chao Gao <chao....@intel.com>
Signed-off-by: Dongsheng Zhang <dongsheng.x.zh...@intel.com>
Message-ID: <20240521200114.11588-1-dongsheng.x.zh...@intel.com>
Cc: qemu-sta...@nongnu.org
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
(cherry picked from commit 84d4b72854869821eb89813c195927fdd3078c12)
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>


  Commit: 9abcd968e77f257abedb327eb3109ec30a0ba9a7
      
https://github.com/qemu/qemu/commit/9abcd968e77f257abedb327eb3109ec30a0ba9a7
  Author: Paolo Bonzini <pbonz...@redhat.com>
  Date:   2024-05-27 (Mon, 27 May 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: disable jmp_opt if EFLAGS.RF is 1

If EFLAGS.RF is 1, special processing in gen_eob_worker() is needed and
therefore goto_tb cannot be used.

Suggested-by: Richard Henderson <richard.hender...@linaro.org>
Reviewed-by: Richard Henderson <richard.hender...@linaro.org>
Cc: qemu-sta...@nongnu.org
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
(cherry picked from commit 8225bff7c5db504f50e54ef66b079854635dba70)
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>


  Commit: f417712ef156235b96c2c15a1ad7e3dfe5542695
      
https://github.com/qemu/qemu/commit/f417712ef156235b96c2c15a1ad7e3dfe5542695
  Author: Paolo Bonzini <pbonz...@redhat.com>
  Date:   2024-05-27 (Mon, 27 May 2024)

  Changed paths:
    M target/i386/tcg/translate.c

  Log Message:
  -----------
  target/i386: no single-step exception after MOV or POP SS

Intel SDM 18.3.1.4 "If an occurrence of the MOV or POP instruction
loads the SS register executes with EFLAGS.TF = 1, no single-step debug
exception occurs following the MOV or POP instruction."

Cc: qemu-sta...@nongnu.org
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
(cherry picked from commit f0f0136abba688a6516647a79cc91e03fad6d5d7)
Signed-off-by: Michael Tokarev <m...@tls.msk.ru>
(Mjt: context fixup for v8.1.0-1189-gad75a51e84af "tcg: Rename cpu_env to 
tcg_env")


Compare: https://github.com/qemu/qemu/compare/c6fe0f315cfa...f417712ef156

To unsubscribe from these emails, change your notification settings at 
https://github.com/qemu/qemu/settings/notifications

Reply via email to