Re: [Qemu-devel] [PATCH v1 for-2.12 1/2] s390x/mmu: don't overwrite pending exception in mmu translate
On 09.04.2018 13:30, David Hildenbrand wrote: > If we already triggered another exception, don't overwrite it with a > protection exception. > > Signed-off-by: David Hildenbrand> --- > target/s390x/mmu_helper.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target/s390x/mmu_helper.c b/target/s390x/mmu_helper.c > index 1deeb6e6e4..a25deef5dd 100644 > --- a/target/s390x/mmu_helper.c > +++ b/target/s390x/mmu_helper.c > @@ -325,7 +325,7 @@ static int mmu_translate_asce(CPUS390XState *env, > target_ulong vaddr, > > r = mmu_translate_region(env, vaddr, asc, asce, level, raddr, flags, rw, > exc); > -if (rw == MMU_DATA_STORE && !(*flags & PAGE_WRITE)) { > +if (!r && rw == MMU_DATA_STORE && !(*flags & PAGE_WRITE)) { > trigger_prot_fault(env, vaddr, asc, rw, exc); > return -1; > } Looks right. Reviewed-by: Thomas Huth
[Qemu-devel] [PATCH v1 for-2.12 1/2] s390x/mmu: don't overwrite pending exception in mmu translate
If we already triggered another exception, don't overwrite it with a protection exception. Signed-off-by: David Hildenbrand--- target/s390x/mmu_helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/s390x/mmu_helper.c b/target/s390x/mmu_helper.c index 1deeb6e6e4..a25deef5dd 100644 --- a/target/s390x/mmu_helper.c +++ b/target/s390x/mmu_helper.c @@ -325,7 +325,7 @@ static int mmu_translate_asce(CPUS390XState *env, target_ulong vaddr, r = mmu_translate_region(env, vaddr, asc, asce, level, raddr, flags, rw, exc); -if (rw == MMU_DATA_STORE && !(*flags & PAGE_WRITE)) { +if (!r && rw == MMU_DATA_STORE && !(*flags & PAGE_WRITE)) { trigger_prot_fault(env, vaddr, asc, rw, exc); return -1; } -- 2.14.3