Skip to content

s390x/tcg: fix some accesses using low address

David Hildenbrand qemu-devel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest6 patches 4 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/6s390x/tcg: fix checking for invalid memory checktarget/s390x/excp_helper.c+3 -10 replies
2/6s390x/tcg: add MMU for real addressestarget/s390x/cpu.h target/s390x/excp_helper.c target/s390x/internal.h +1 more+40 -101 reply
3/6s390x/tcg: make lura(g) use the new _real mmu.target/s390x/mem_helper.c target/s390x/translate.c+2 -70 replies
4/6s390x/tcg: make stora(g) use the new _real mmutarget/s390x/mem_helper.c target/s390x/translate.c+2 -80 replies
5/6s390x/tcg: make testblock use the new _real mmutarget/s390x/mem_helper.c+2 -100 replies
6/6s390x/tcg: make idte/ipte use the new _real mmutarget/s390x/mem_helper.c+5 -40 replies

Reviews trailers per patch

None of the 6 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchRichard HendersonThomas Huth
SeriesR-b R-b
1/6
2/6
3/6
4/6
5/6
6/6

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [Qemu-devel] [PATCH v1 0/6] s390x/tcg: fix some accesses using low address

Conny reported that a guest Linux currently spits out:
"The s390-virtio transport is deprecated. Please switch to a modern host providing virtio-ccw."

This is strange, because we have no legacy virtio transport in QEMU :)

Main problem is, that a page is tested for acccess, and the test does not fail. All memory access variants like stb_phys() will never fail. On invalid memory, they simply do nothing.

Linux uses lura for this check. Let's introduce a _real MMU that handles prefixing and can later be used for things like low address protection.

The other BUG is that a check for invalid memory is wrong. Therefore, Patch 1 alone makes the guest crash when trying to initialize the virtio transport. Crazy stuff.

David Hildenbrand (6):
s390x/tcg: fix checking for invalid memory check s390x/tcg: add MMU for real addresses s390x/tcg: make lura(g) use the new _real mmu. s390x/tcg: make stora(g) use the new _real mmu s390x/tcg: make testblock use the new _real mmu s390x/tcg: make idte/ipte use the new _real mmu

 target/s390x/cpu.h         |  4 +++-
 target/s390x/excp_helper.c | 29 +++++++++++++++++++----------
 target/s390x/internal.h    |  2 ++
 target/s390x/mem_helper.c  | 36 +++++++++++-------------------------
 target/s390x/mmu_helper.c  | 19 +++++++++++++++++++
 target/s390x/translate.c   |  4 ----
 6 files changed, 54 insertions(+), 40 deletions(-)
Signature · 1 line
2.13.5