qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: Janosch Frank <frankja@linux.ibm.com>, qemu-devel@nongnu.org
Cc: thuth@redhat.com, pmorel@linux.ibm.com, cohuck@redhat.com,
	borntraeger@de.ibm.com, qemu-s390x@nongnu.org,
	mihajlov@linux.ibm.com
Subject: Re: [PATCH v4 6/6] s390x: kvm: Make kvm_sclp_service_call void
Date: Wed, 27 Nov 2019 19:07:45 +0100	[thread overview]
Message-ID: <c3b81ef7-860d-8cee-df34-0c6f103a1757@redhat.com> (raw)
In-Reply-To: <20191127175046.4911-7-frankja@linux.ibm.com>

On 27.11.19 18:50, Janosch Frank wrote:
> It defaults to returning 0 anyway and that return value is not
> necessary, as 0 is also the default rc that the caller would return.
> 
> While doing that we can simplify the logic a bit and return early if
> we inject a PGM exception. Also we always set a 0 cc, so let's not
> base it on the rc of the sclp emulation functions.
> 
> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
> ---
>  target/s390x/kvm.c | 12 +++++-------
>  1 file changed, 5 insertions(+), 7 deletions(-)
> 
> diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c
> index 0c9d14b4b1..08bb1edca0 100644
> --- a/target/s390x/kvm.c
> +++ b/target/s390x/kvm.c
> @@ -1159,13 +1159,13 @@ void kvm_s390_access_exception(S390CPU *cpu, uint16_t code, uint64_t te_code)
>      kvm_s390_vcpu_interrupt(cpu, &irq);
>  }
>  
> -static int kvm_sclp_service_call(S390CPU *cpu, struct kvm_run *run,
> +static void kvm_sclp_service_call(S390CPU *cpu, struct kvm_run *run,
>                                   uint16_t ipbh0)
>  {
>      CPUS390XState *env = &cpu->env;
>      uint64_t sccb;
>      uint32_t code;
> -    int r = 0;
> +    int r;
>  
>      sccb = env->regs[ipbh0 & 0xf];
>      code = env->regs[(ipbh0 & 0xf0) >> 4];
> @@ -1173,11 +1173,9 @@ static int kvm_sclp_service_call(S390CPU *cpu, struct kvm_run *run,
>      r = sclp_service_call(env, sccb, code);
>      if (r < 0) {
>          kvm_s390_program_interrupt(cpu, -r);
> -    } else {
> -        setcc(cpu, r);
> +        return;
>      }
> -
> -    return 0;
> +    setcc(cpu, 0);

For now, sclp_service_call will return <= 0 ... but don't we actually
have the option to return a cc? What does the spec say? Always set to 0?

At least also the TCG implementation sets the CC to whatever is returned
here .... and Claudio's unit tests have code to handle cc != 0 ... and
the kernel as well (drivers/s390/char/sclp.h:sclp_service_call())



-- 
Thanks,

David / dhildenb



  reply	other threads:[~2019-11-27 18:28 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-27 17:50 [PATCH v4 0/6] s390x: Cleanup Janosch Frank
2019-11-27 17:50 ` [PATCH v4 1/6] s390x: Don't do a normal reset on the initial cpu Janosch Frank
2019-11-27 17:50 ` [PATCH v4 2/6] s390x: Move reset normal to shared reset handler Janosch Frank
2019-11-28  6:32   ` Thomas Huth
2019-11-28 17:27     ` Cornelia Huck
2019-11-27 17:50 ` [PATCH v4 3/6] s390x: Move initial reset Janosch Frank
2019-11-28  7:00   ` Thomas Huth
2019-11-28  7:22     ` Janosch Frank
2019-11-28  8:37   ` [PATCH v5] " Janosch Frank
2019-11-28  9:13     ` Thomas Huth
2019-11-27 17:50 ` [PATCH v4 4/6] s390x: Move clear reset Janosch Frank
2019-11-27 18:15   ` David Hildenbrand
2019-11-27 18:28     ` Janosch Frank
2019-11-28  7:09   ` Thomas Huth
2019-11-28  8:35     ` Janosch Frank
2019-11-28  8:38       ` David Hildenbrand
2019-11-27 17:50 ` [PATCH v4 5/6] s390x: Beautify diag308 handling Janosch Frank
2019-11-27 17:50 ` [PATCH v4 6/6] s390x: kvm: Make kvm_sclp_service_call void Janosch Frank
2019-11-27 18:07   ` David Hildenbrand [this message]
2019-11-27 18:17     ` David Hildenbrand
2019-11-27 18:25     ` Janosch Frank
2019-11-27 18:38       ` Janosch Frank
2019-11-28 17:34         ` Cornelia Huck
2019-11-29  8:16           ` Janosch Frank
2019-11-29  9:01             ` Cornelia Huck
2019-11-29  9:17               ` [PATCH v5] " Janosch Frank
2019-11-29  9:18                 ` David Hildenbrand
2019-11-28  7:48   ` [PATCH v4 6/6] " Thomas Huth
2019-11-29 10:03 ` [PATCH v4 0/6] s390x: Cleanup Cornelia Huck

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=c3b81ef7-860d-8cee-df34-0c6f103a1757@redhat.com \
    --to=david@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=frankja@linux.ibm.com \
    --cc=mihajlov@linux.ibm.com \
    --cc=pmorel@linux.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).