Background: s390x implements Low-Address Protection (LAP). If LAP is enabled, writing to effective addresses (before any translation) 0-511 and 4096-4607 triggers a protection exception. So we have subpage protection on the first two pages of every address space (where the lowcore - the CPU private data resides). By immediately invalidating the write entry but allowing the caller to continue, we force every write access onto these first two pages into the slow path. we will get a tlb fault with the specific accessed addresses and can then evaluate if protection applies or not. We have to make sure to ignore the invalid bit if tlb_fill() succeeds. Signed-off-by: David Hildenbrand <david@redhat.com> Message-Id: <20171016202358.3633-2-david@redhat.com> Signed-off-by: Cornelia Huck <cohuck@redhat.com> |
||
---|---|---|
.. | ||
atomic_template.h | ||
cpu-exec-common.c | ||
cpu-exec.c | ||
cputlb.c | ||
Makefile.objs | ||
softmmu_template.h | ||
tcg-all.c | ||
tcg-runtime.c | ||
tcg-runtime.h | ||
trace-events | ||
translate-all.c | ||
translate-all.h | ||
translator.c | ||
user-exec-stub.c | ||
user-exec.c |