Re: [Qemu-devel] [PATCH v1 for-2.12 1/2] s390x/mmu: don't overwrite pending exception in mmu translate

2018-04-09 Thread Thomas Huth
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

2018-04-09 Thread David Hildenbrand
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