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 <pa...@linux.vnet.ibm.com> > --- > 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. Thomas