Fix and refactore some things around probe_write() in s390x code. Introduce probe_write() for CONFIG_USER_ONLY. Finally, prepare the watchpoint logic for being called from probe_write() and add the call.
This is the first step of some changes necessary to handle fault-safe access accross multiple pages on s390x. The next step is making probe_write() return an address, similar to tlb_vaddr_to_host(), and introduing probe_read(). Cc: Richard Henderson <r...@twiddle.net> Cc: Paolo Bonzini <pbonz...@redhat.com> Cc: Riku Voipio <riku.voi...@iki.fi> Cc: Eduardo Habkost <ehabk...@redhat.com> Cc: Marcel Apfelbaum <marcel.apfelb...@gmail.com> Cc: Aurelien Jarno <aurel...@aurel32.net> Cc: Aleksandar Markovic <amarko...@wavecomp.com> Cc: Aleksandar Rikalo <arik...@wavecomp.com> Cc: Cornelia Huck <coh...@redhat.com> David Hildenbrand (9): s390x/tcg: Use guest_addr_valid() instead of h2g_valid() in probe_write_access() s390x/tcg: Fix length calculation in probe_write_access() tcg: Factor out CONFIG_USER_ONLY probe_write() from s390x code tcg: Enforce single page access in probe_write() for !CONFIG_USER_ONLY mips/tcg: Call probe_write() for CONFIG_USER_ONLY as well hppa/tcg: Call probe_write() also for CONFIG_USER_ONLY s390x/tcg: Pass a size to probe_write() in do_csst() exec.c: Factor out core logic of check_watchpoint() tcg: Check for watchpoints in probe_write() accel/tcg/cputlb.c | 18 ++++++++++++++++++ accel/tcg/user-exec.c | 16 ++++++++++++++++ exec.c | 23 +++++++++++++++++------ include/exec/exec-all.h | 4 ++-- include/hw/core/cpu.h | 2 ++ target/hppa/op_helper.c | 2 -- target/mips/op_helper.c | 8 +++----- target/s390x/mem_helper.c | 13 ++----------- 8 files changed, 60 insertions(+), 26 deletions(-) -- 2.21.0