summaryrefslogtreecommitdiff
path: root/pc-bios
diff options
context:
space:
mode:
authorDong Jia Shi <bjsdjshi@linux.vnet.ibm.com>2016-09-22 10:36:39 +0200
committerChristian Borntraeger <borntraeger@de.ibm.com>2016-09-28 13:24:51 +0200
commit9c9f5f311a4b391c2dba57cf06b63d62b790e891 (patch)
treecec0f393587b48495c3ee30e0bae230ca2ba9d78 /pc-bios
parentf9530c32420fff941b7bc8bb5d90310eecab5a96 (diff)
downloadqemu-9c9f5f311a4b391c2dba57cf06b63d62b790e891.tar.gz
qemu-9c9f5f311a4b391c2dba57cf06b63d62b790e891.tar.bz2
qemu-9c9f5f311a4b391c2dba57cf06b63d62b790e891.zip
pc-bios/s390-ccw: enable subchannel for IPL I/O devices
IPL should cause the IPL I/O device to become enabled. So when handling the IPL program, we should set the E (Enable) bit. However, virtio-ccw does not know whether it's dealing with an IPL device or not. Since trying to perform I/O on a disabled device doesn't make any sense, let's just always enable it. At the same time we can remove the SCSW_FCTL_START_FUNC flag as it is ignored for msch anyway and did not enable the device as intended. Reported-by: Farhan Ali <alifm@linux.vnet.ibm.com> Signed-off-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Reviewed-by: Sascha Silbe <silbe@linux.vnet.ibm.com> Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com> [remove superfluous flag] Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'pc-bios')
-rw-r--r--pc-bios/s390-ccw/virtio.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/pc-bios/s390-ccw/virtio.c b/pc-bios/s390-ccw/virtio.c
index 1d34e8c1aa..b333734955 100644
--- a/pc-bios/s390-ccw/virtio.c
+++ b/pc-bios/s390-ccw/virtio.c
@@ -97,7 +97,8 @@ static int run_ccw(VDev *vdev, int cmd, void *ptr, int len)
/* start command processing */
stsch_err(vdev->schid, &schib);
- schib.scsw.ctrl = SCSW_FCTL_START_FUNC;
+ /* enable the subchannel for IPL device */
+ schib.pmcw.ena = 1;
msch(vdev->schid, &schib);
/* start subchannel command */