From: Dong Jia Shi Date: Thu, 22 Sep 2016 08:36:39 +0000 (+0200) Subject: pc-bios/s390-ccw: enable subchannel for IPL I/O devices X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=9c9f5f311a4b391c2dba57cf06b63d62b790e891;p=qemu.git 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 Signed-off-by: Dong Jia Shi Reviewed-by: Cornelia Huck Reviewed-by: Sascha Silbe Signed-off-by: Halil Pasic [remove superfluous flag] Signed-off-by: Christian Borntraeger --- 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 */