qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 7/7] s390x: refactor error handling for MSCH


From: Cornelia Huck
Subject: Re: [Qemu-devel] [PATCH v3 7/7] s390x: refactor error handling for MSCH handler
Date: Wed, 18 Oct 2017 12:02:23 +0200

On Wed, 18 Oct 2017 12:00:05 +0200
Thomas Huth <address@hidden> wrote:

> On 17.10.2017 16:04, Halil Pasic wrote:
> > Simplify the error handling of the MSCH.  Let the code detecting the
> > condition tell (in a less ambiguous way) how it's to be handled. No
> > changes in behavior.  
> 
> ok, so you claim no changes in behavior ...
> 
> > Signed-off-by: Halil Pasic <address@hidden>
> > ---
> >  hw/s390x/css.c         | 18 +++++-------------
> >  include/hw/s390x/css.h |  2 +-
> >  target/s390x/ioinst.c  | 23 ++++-------------------
> >  3 files changed, 10 insertions(+), 33 deletions(-)
> > 
> > diff --git a/hw/s390x/css.c b/hw/s390x/css.c
> > index b9e0329825..30fc236946 100644
> > --- a/hw/s390x/css.c
> > +++ b/hw/s390x/css.c
> > @@ -1347,28 +1347,24 @@ static void copy_schib_from_guest(SCHIB *dest, 
> > const SCHIB *src)
> >      }
> >  }
> >  
> > -int css_do_msch(SubchDev *sch, const SCHIB *orig_schib)
> > +IOInstEnding css_do_msch(SubchDev *sch, const SCHIB *orig_schib)
> >  {
> >      SCSW *s = &sch->curr_status.scsw;
> >      PMCW *p = &sch->curr_status.pmcw;
> >      uint16_t oldflags;
> > -    int ret;
> >      SCHIB schib;
> >  
> >      if (!(sch->curr_status.pmcw.flags & PMCW_FLAGS_MASK_DNV)) {
> > -        ret = 0;
> > -        goto out;
> > +        return IOINST_CC_EXPECTED;
> >      }
> >  
> >      if (s->ctrl & SCSW_STCTL_STATUS_PEND) {
> > -        ret = -EINPROGRESS;
> > -        goto out;
> > +        return IOINST_CC_STATUS_PRESENT;
> >      }
> >  
> >      if (s->ctrl &
> >          (SCSW_FCTL_START_FUNC|SCSW_FCTL_HALT_FUNC|SCSW_FCTL_CLEAR_FUNC)) {
> > -        ret = -EBUSY;
> > -        goto out;
> > +        return IOINST_CC_STATUS_PRESENT;
> >      }  
> 
> ... but here you change -EBUSY (which got mapped to CC=2) to
> CC_STATUS_PRESENT which means CC=1. So that's a change in behavior. i.e.
> this is either a bug, or you should update the patch description with a
> justification for this change in behavior.

Indeed, that's a bug. We still want cc 2.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]