If we already triggered another exception, don't overwrite it with a
protection exception.
Signed-off-by: David Hildenbrand <david@redhat.com>
---
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
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 <david@redhat.com>
> ---
> 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 <thuth@redhat.com>
On 04/09/2018 01:30 PM, David Hildenbrand wrote:
> If we already triggered another exception, don't overwrite it with a
> protection exception.
>
> Signed-off-by: David Hildenbrand <david@redhat.com>
Can you add your description from the cover letter regarding
"only applies to old KVM instances without the virtual memory access
IOCTL in KVM."
with that
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
> ---
> 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;
> }
>
On Mon, 9 Apr 2018 13:50:03 +0200
Christian Borntraeger <borntraeger@de.ibm.com> wrote:
> On 04/09/2018 01:30 PM, David Hildenbrand wrote:
> > If we already triggered another exception, don't overwrite it with a
> > protection exception.
> >
> > Signed-off-by: David Hildenbrand <david@redhat.com>
>
>
> Can you add your description from the cover letter regarding
> "only applies to old KVM instances without the virtual memory access
> IOCTL in KVM."
Will add that.
>
> with that
> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
> > ---
> > 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;
> > }
> >
>
© 2016 - 2026 Red Hat, Inc.