aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCornelia Huck <cohuck@redhat.com>2021-07-05 18:39:52 +0200
committerThomas Huth <thuth@redhat.com>2021-09-06 16:23:08 +0200
commit89c6722da24761d14db1b19250919c8004758ba5 (patch)
tree9fed7625c72834222dadf2afb49c5492cecc797a
parent759a5d3be0ca447514bc774f97218d3a0a8ed654 (diff)
downloadqemu-89c6722da24761d14db1b19250919c8004758ba5.zip
qemu-89c6722da24761d14db1b19250919c8004758ba5.tar.gz
qemu-89c6722da24761d14db1b19250919c8004758ba5.tar.bz2
css: fix actl handling for unit exceptions
When a subchannel becomes pending with unit exception, start pending (and for that matter, halt or clear pending) are not removed in the actl. Device active and subchannel active, however, are (due to the subchannel becoming status pending with primary respectively secondary status). The other conditions in the actl are only cleared when the guest executes tsch on the subchannel. Signed-off-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Matthew Rosato <mjrosato@linux.ibm.com> Tested-by: Jared Rossi <jrossi@linux.ibm.com> Message-Id: <20210705163952.736020-3-cohuck@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
-rw-r--r--include/hw/s390x/css.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/hw/s390x/css.h b/include/hw/s390x/css.h
index 10ed1df..75e5381 100644
--- a/include/hw/s390x/css.h
+++ b/include/hw/s390x/css.h
@@ -146,7 +146,8 @@ struct SubchDev {
static inline void sch_gen_unit_exception(SubchDev *sch)
{
- sch->curr_status.scsw.ctrl &= ~SCSW_ACTL_START_PEND;
+ sch->curr_status.scsw.ctrl &= ~(SCSW_ACTL_DEVICE_ACTIVE |
+ SCSW_ACTL_SUBCH_ACTIVE);
sch->curr_status.scsw.ctrl |= SCSW_STCTL_PRIMARY |
SCSW_STCTL_SECONDARY |
SCSW_STCTL_ALERT |