All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: Thomas Huth <thuth@redhat.com>, Alexander Graf <agraf@suse.com>,
	Paul Mackerras <paulus@samba.org>,
	kvm-ppc@vger.kernel.org
Cc: kvm@vger.kernel.org, lvivier@redhat.com
Subject: Re: [PATCH] KVM: PPC: Fix contents of SRR1 when injecting a program exception in kvm-pr
Date: Thu, 19 May 2016 09:04:13 +0000	[thread overview]
Message-ID: <573D818D.4000802@suse.de> (raw)
In-Reply-To: <1463647483-12148-1-git-send-email-thuth@redhat.com>

On 05/19/2016 10:44 AM, Thomas Huth wrote:
> vcpu->arch.shadow_srr1 only contains usable values for injecting
> a program exception into the guest if we entered the function
> kvmppc_handle_exit_pr() with exit_nr = BOOK3S_INTERRUPT_PROGRAM.
> In other cases, the shadow_srr1 bits are zero. Since we want to
> pass an illegal-instruction program check to the guest, set
> "flags" to SRR1_PROGILL for these other cases.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>

Looks good, but please add a comment that H_EMUL_ASSIST doesn't provide 
the flags inside the code ;)


Alex

> ---
>   arch/powerpc/kvm/book3s_pr.c | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
> index 95bceca..b12e80a 100644
> --- a/arch/powerpc/kvm/book3s_pr.c
> +++ b/arch/powerpc/kvm/book3s_pr.c
> @@ -1031,7 +1031,10 @@ int kvmppc_handle_exit_pr(struct kvm_run *run, struct kvm_vcpu *vcpu,
>   		int emul;
>   
>   program_interrupt:
> -		flags = vcpu->arch.shadow_srr1 & 0x1f0000ull;
> +		if (exit_nr = BOOK3S_INTERRUPT_PROGRAM)
> +			flags = vcpu->arch.shadow_srr1 & 0x1f0000ull;
> +		else
> +			flags = SRR1_PROGILL;
>   
>   		emul = kvmppc_get_last_inst(vcpu, INST_GENERIC, &last_inst);
>   		if (emul != EMULATE_DONE) {


WARNING: multiple messages have this Message-ID (diff)
From: Alexander Graf <agraf@suse.de>
To: Thomas Huth <thuth@redhat.com>, Alexander Graf <agraf@suse.com>,
	Paul Mackerras <paulus@samba.org>,
	kvm-ppc@vger.kernel.org
Cc: kvm@vger.kernel.org, lvivier@redhat.com
Subject: Re: [PATCH] KVM: PPC: Fix contents of SRR1 when injecting a program exception in kvm-pr
Date: Thu, 19 May 2016 11:04:13 +0200	[thread overview]
Message-ID: <573D818D.4000802@suse.de> (raw)
In-Reply-To: <1463647483-12148-1-git-send-email-thuth@redhat.com>

On 05/19/2016 10:44 AM, Thomas Huth wrote:
> vcpu->arch.shadow_srr1 only contains usable values for injecting
> a program exception into the guest if we entered the function
> kvmppc_handle_exit_pr() with exit_nr == BOOK3S_INTERRUPT_PROGRAM.
> In other cases, the shadow_srr1 bits are zero. Since we want to
> pass an illegal-instruction program check to the guest, set
> "flags" to SRR1_PROGILL for these other cases.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>

Looks good, but please add a comment that H_EMUL_ASSIST doesn't provide 
the flags inside the code ;)


Alex

> ---
>   arch/powerpc/kvm/book3s_pr.c | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
> index 95bceca..b12e80a 100644
> --- a/arch/powerpc/kvm/book3s_pr.c
> +++ b/arch/powerpc/kvm/book3s_pr.c
> @@ -1031,7 +1031,10 @@ int kvmppc_handle_exit_pr(struct kvm_run *run, struct kvm_vcpu *vcpu,
>   		int emul;
>   
>   program_interrupt:
> -		flags = vcpu->arch.shadow_srr1 & 0x1f0000ull;
> +		if (exit_nr == BOOK3S_INTERRUPT_PROGRAM)
> +			flags = vcpu->arch.shadow_srr1 & 0x1f0000ull;
> +		else
> +			flags = SRR1_PROGILL;
>   
>   		emul = kvmppc_get_last_inst(vcpu, INST_GENERIC, &last_inst);
>   		if (emul != EMULATE_DONE) {


  reply	other threads:[~2016-05-19  9:04 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-19  8:44 [PATCH] KVM: PPC: Fix contents of SRR1 when injecting a program exception in kvm-pr Thomas Huth
2016-05-19  8:44 ` Thomas Huth
2016-05-19  9:04 ` Alexander Graf [this message]
2016-05-19  9:04   ` Alexander Graf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=573D818D.4000802@suse.de \
    --to=agraf@suse.de \
    --cc=agraf@suse.com \
    --cc=kvm-ppc@vger.kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=lvivier@redhat.com \
    --cc=paulus@samba.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.