qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] bed04a: s390x/tcg: Reset exception_index to -


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] bed04a: s390x/tcg: Reset exception_index to -1 instead of 0
Date: Mon, 23 Sep 2019 15:04:02 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: bed04a2b9caec96cf339980b64d2939ee9541328
      
https://github.com/qemu/qemu/commit/bed04a2b9caec96cf339980b64d2939ee9541328
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: Reset exception_index to -1 instead of 0

We use the marker "-1" for "no exception". s390_cpu_do_interrupt() might
get confused by that.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: d292671ade5408197e36887dc554427a91edc498
      
https://github.com/qemu/qemu/commit/d292671ade5408197e36887dc554427a91edc498
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVCL: Zero out unused bits of address

We have to zero out unused bits in 24 and 31-bit addressing mode.
Provide a new helper.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: fbc17598d509be10d5d2349090bbb889ccb4f055
      
https://github.com/qemu/qemu/commit/fbc17598d509be10d5d2349090bbb889ccb4f055
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVCL: Detect destructive overlaps

We'll have to zero-out unused bit positions, so make sure to write the
addresses back.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: f1c2e27cb5140b385e87f0d8be7606fb79aaa1f2
      
https://github.com/qemu/qemu/commit/f1c2e27cb5140b385e87f0d8be7606fb79aaa1f2
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVCL: Process max 4k bytes at a time

Process max 4k bytes at a time, writing back registers between the
accesses. The instruction is interruptible.
    "For operands longer than 2K bytes, access exceptions are not
    recognized for locations more than 2K bytes beyond the current location
    being processed."
Note that on z/Architecture, 2k vs. 4k access cannot get differentiated as
long as pages are not crossed. This seems to be a leftover from ESA/390.
Simply stay within single pages.

MVCL handling is quite different than MVCLE/MVCLU handling, so split up
the handlers.

Defer interrupt handling, as that will require more thought, add a TODO
for that.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: d573ffde0ced387b90283a20e45471f38b9605f8
      
https://github.com/qemu/qemu/commit/d573ffde0ced387b90283a20e45471f38b9605f8
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVC: Increment the length once

Let's increment the length once.

While at it, cleanup the comment. The memset() example is given as a
programming note in the PoP, so drop the description.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: b7dd1f7fd4568326027e8fdf6dcca656e1ce95b9
      
https://github.com/qemu/qemu/commit/b7dd1f7fd4568326027e8fdf6dcca656e1ce95b9
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVC: Use is_destructive_overlap()

Let's use the new helper, that also detects destructive overlaps when
wrapping.

We'll make the remaining code (e.g., fast_memmove()) aware of wrapping
later.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: bf349f1a0daf86481ad62df405f84ad70eaa7e68
      
https://github.com/qemu/qemu/commit/bf349f1a0daf86481ad62df405f84ad70eaa7e68
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVPG: Check for specification exceptions

Perform the checks documented in the PoP.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: a3910396baaf2baa569e361e1a4fdcc487abf032
      
https://github.com/qemu/qemu/commit/a3910396baaf2baa569e361e1a4fdcc487abf032
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVPG: Properly wrap the addresses

We have to mask of any unused bits. While at it, document what exactly is
missing.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: 86678418b266efcf2a8539e625a98d3ffc5018c4
      
https://github.com/qemu/qemu/commit/86678418b266efcf2a8539e625a98d3ffc5018c4
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVCLU/MVCLE: Process max 4k bytes at a time

Let's stay within single pages.

... and indicate cc=3 in case there is work remaining. Keep unicode
padding simple.

While reworking, properly wrap the addresses.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: 43df3e71e3c3cc53d294b3c3bed0e860df91ea13
      
https://github.com/qemu/qemu/commit/43df3e71e3c3cc53d294b3c3bed0e860df91ea13
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVCS/MVCP: Check for special operation exceptions

Let's perform the documented checks.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: a7627565ae52a6806640906c6e9872443899fca8
      
https://github.com/qemu/qemu/commit/a7627565ae52a6806640906c6e9872443899fca8
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVCOS: Lengths are 32 bit in 24/31-bit mode

Triggered by a review comment from Richard, also MVCOS has a 32-bit
length in 24/31-bit addressing mode. Add a new helper.

Rename wrap_length() to wrap_length31().

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: 373290d8a8bd9457c40cb2ddcc8a87dd7f03bfe6
      
https://github.com/qemu/qemu/commit/373290d8a8bd9457c40cb2ddcc8a87dd7f03bfe6
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVCS/MVCP: Properly wrap the length

... and don't perform any move in case the length is zero.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: 087b8193edea9ba74401f9f27ad9ab79598a113a
      
https://github.com/qemu/qemu/commit/087b8193edea9ba74401f9f27ad9ab79598a113a
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVST: Check for specification exceptions

Bit position 32-55 of general register 0 must be zero.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: 2bb525e20d72386f49a3b0aacb88a65d5446baac
      
https://github.com/qemu/qemu/commit/2bb525e20d72386f49a3b0aacb88a65d5446baac
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/helper.h
    M target/s390x/insn-data.def
    M target/s390x/mem_helper.c
    M target/s390x/translate.c

  Log Message:
  -----------
  s390x/tcg: MVST: Fix storing back the addresses to registers

24 and 31-bit address space handling is wrong when it comes to storing
back the addresses to the register.

While at it, read gprs 0 implicitly.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: 817791e83994deee2e5a59e3847f16673c8941bc
      
https://github.com/qemu/qemu/commit/817791e83994deee2e5a59e3847f16673c8941bc
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/cpu.h
    M target/s390x/translate.c

  Log Message:
  -----------
  s390x/tcg: Always use MMU_USER_IDX for CONFIG_USER_ONLY

Although we basically ignore the index all the time for CONFIG_USER_ONLY,
let's simply skip all the checks and always return MMU_USER_IDX in
cpu_mmu_index() and get_mem_index().

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: 70ebd9ce1cb08ffb0ec0d7185f16520998545a7a
      
https://github.com/qemu/qemu/commit/70ebd9ce1cb08ffb0ec0d7185f16520998545a7a
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: Fault-safe memset

Replace fast_memset() by access_memset(), that first tries to probe
access to all affected pages (maximum is two). We'll use the same
mechanism for other types of accesses soon.

Only in very rare cases (especially TLB_NOTDIRTY), we'll have to
fallback to ld/st helpers. Try to speed up that case as suggested by
Richard.

We'll rework most involved handlers soon to do all accesses via new
fault-safe helpers, especially MVC.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: b6c636f2cd6c50cdc558e3c02fbc7f2d102955b2
      
https://github.com/qemu/qemu/commit/b6c636f2cd6c50cdc558e3c02fbc7f2d102955b2
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: Fault-safe memmove

Replace fast_memmove() variants by access_memmove() variants, that
first try to probe access to all affected pages (maximum is two pages).

Introduce access_get_byte()/access_set_byte(). We might be able to speed
up memmove in special cases even further (do single-byte access, use
memmove() for remaining bytes in page), however, we'll skip that for now.

In MVCOS, simply always call access_memmove_as() and drop the TODO
about LAP. LAP is already handled in the MMU.

Get rid of adj_len_to_page(), which is now unused.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: efb1a76ef9e39b4a5628a27f0f1df74336f8d240
      
https://github.com/qemu/qemu/commit/efb1a76ef9e39b4a5628a27f0f1df74336f8d240
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVCS/MVCP: Use access_memmove()

As we are moving between address spaces, we can use access_memmove()
without checking for destructive overlaps (especially of real storage
locations):
    "Each storage operand is processed left to right. The
    storage-operand-consistency rules are the same as
    for MOVE (MVC), except that when the operands
    overlap in real storage, the use of the common real-
    storage locations is not necessarily recognized."

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: b7809f369266d6cc1a253688f80a66bfbce9e6dd
      
https://github.com/qemu/qemu/commit/b7809f369266d6cc1a253688f80a66bfbce9e6dd
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVC: Fault-safe handling on destructive overlaps

The last remaining bit for MVC is handling destructive overlaps in a
fault-safe way.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: b8e7b2fe1d8125cf1283ab4076203f1363c91226
      
https://github.com/qemu/qemu/commit/b8e7b2fe1d8125cf1283ab4076203f1363c91226
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVCLU: Fault-safe handling

The last remaining bit is padding with two bytes.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: 8c4a732076b2002916777ce1502d9ceb66da9c04
      
https://github.com/qemu/qemu/commit/8c4a732076b2002916777ce1502d9ceb66da9c04
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: OC: Fault-safe handling

We can process a maximum of 256 bytes, crossing two pages.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: a8821dd56ea65f73858df0b400702da79608cfeb
      
https://github.com/qemu/qemu/commit/a8821dd56ea65f73858df0b400702da79608cfeb
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: XC: Fault-safe handling

We can process a maximum of 256 bytes, crossing two pages. While at it,
increment the length once.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: 4d78c68bafe4c12d8185a4c33932a1aea35c4921
      
https://github.com/qemu/qemu/commit/4d78c68bafe4c12d8185a4c33932a1aea35c4921
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: NC: Fault-safe handling

We can process a maximum of 256 bytes, crossing two pages.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: 65a27df92779207c3005e7f0462f4bcc9b6545f7
      
https://github.com/qemu/qemu/commit/65a27df92779207c3005e7f0462f4bcc9b6545f7
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVCIN: Fault-safe handling

We can process a maximum of 256 bytes, crossing two pages. Calculate the
accessed range upfront - src is accessed right-to-left.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: ab8bab68bba3e0c58428249f8b467b93adf98c07
      
https://github.com/qemu/qemu/commit/ab8bab68bba3e0c58428249f8b467b93adf98c07
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVN: Fault-safe handling

We can process a maximum of 256 bytes, crossing two pages.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: 6514f42bf8fd03b2d227ae2d0e6bada9b7304573
      
https://github.com/qemu/qemu/commit/6514f42bf8fd03b2d227ae2d0e6bada9b7304573
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVZ: Fault-safe handling

We can process a maximum of 256 bytes, crossing two pages.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: bb36ed88e91252c8315c151d12df227999604e62
      
https://github.com/qemu/qemu/commit/bb36ed88e91252c8315c151d12df227999604e62
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVST: Fault-safe handling

Access at most single pages and document why. Using the access helpers
might over-indicate watchpoints within the same page, I guess we can
live with that.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: ab89acd0b77355888dcbd68725fdcba03b08e466
      
https://github.com/qemu/qemu/commit/ab89acd0b77355888dcbd68725fdcba03b08e466
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/mem_helper.c

  Log Message:
  -----------
  s390x/tcg: MVO: Fault-safe handling

Each operand can have a maximum length of 16. Make sure to prepare all
reads/writes before writing.

Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: d9e13c341995537cf6bd18c0c163ce5f93d4c0a2
      
https://github.com/qemu/qemu/commit/d9e13c341995537cf6bd18c0c163ce5f93d4c0a2
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M tests/tcg/s390x/Makefile.target
    A tests/tcg/s390x/mvo.c

  Log Message:
  -----------
  tests/tcg: target/s390x: Test MVO

Let's add the simple test based on the example from the PoP.

Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: 5d69cbdfdd5cd6dadc9f0c986899844a0e4de703
      
https://github.com/qemu/qemu/commit/5d69cbdfdd5cd6dadc9f0c986899844a0e4de703
  Author: David Hildenbrand <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M tests/tcg/s390x/Makefile.target
    A tests/tcg/s390x/mvc.c

  Log Message:
  -----------
  tests/tcg: target/s390x: Test MVC

Let's add a test that especially verifies that no data will be touched
in case we cross page boundaries and one page access triggers a fault.

Before the fault-safe handling fixes, the test failes with:
      TEST    mvc on s390x
    data modified during a fault
    make[2]: *** [../Makefile.target:116: run-mvc] Error 1

Acked-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>


  Commit: 2f93a3ecdd3bb060bd04f698ccafe66efd98563a
      
https://github.com/qemu/qemu/commit/2f93a3ecdd3bb060bd04f698ccafe66efd98563a
  Author: Peter Maydell <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M target/s390x/cpu.h
    M target/s390x/helper.h
    M target/s390x/insn-data.def
    M target/s390x/mem_helper.c
    M target/s390x/translate.c
    M tests/tcg/s390x/Makefile.target
    A tests/tcg/s390x/mvc.c
    A tests/tcg/s390x/mvo.c

  Log Message:
  -----------
  Merge remote-tracking branch 
'remotes/davidhildenbrand/tags/s390x-tcg-2019-09-23' into staging

Fix a bunch of BUGs in the mem-helpers (including the MVC instruction),
especially, to make them behave correctly on faults.

# gpg: Signature made Mon 23 Sep 2019 09:01:21 BST
# gpg:                using RSA key 1BD9CAAD735C4C3A460DFCCA4DDE10F700FF835A
# gpg:                issuer "address@hidden"
# gpg: Good signature from "David Hildenbrand <address@hidden>" [unknown]
# gpg:                 aka "David Hildenbrand <address@hidden>" [full]
# Primary key fingerprint: 1BD9 CAAD 735C 4C3A 460D  FCCA 4DDE 10F7 00FF 835A

* remotes/davidhildenbrand/tags/s390x-tcg-2019-09-23: (30 commits)
  tests/tcg: target/s390x: Test MVC
  tests/tcg: target/s390x: Test MVO
  s390x/tcg: MVO: Fault-safe handling
  s390x/tcg: MVST: Fault-safe handling
  s390x/tcg: MVZ: Fault-safe handling
  s390x/tcg: MVN: Fault-safe handling
  s390x/tcg: MVCIN: Fault-safe handling
  s390x/tcg: NC: Fault-safe handling
  s390x/tcg: XC: Fault-safe handling
  s390x/tcg: OC: Fault-safe handling
  s390x/tcg: MVCLU: Fault-safe handling
  s390x/tcg: MVC: Fault-safe handling on destructive overlaps
  s390x/tcg: MVCS/MVCP: Use access_memmove()
  s390x/tcg: Fault-safe memmove
  s390x/tcg: Fault-safe memset
  s390x/tcg: Always use MMU_USER_IDX for CONFIG_USER_ONLY
  s390x/tcg: MVST: Fix storing back the addresses to registers
  s390x/tcg: MVST: Check for specification exceptions
  s390x/tcg: MVCS/MVCP: Properly wrap the length
  s390x/tcg: MVCOS: Lengths are 32 bit in 24/31-bit mode
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/8400efa51aa0...2f93a3ecdd3b



reply via email to

[Prev in Thread] Current Thread [Next in Thread]