From 9c9f5f311a4b391c2dba57cf06b63d62b790e891 Mon Sep 17 00:00:00 2001 From: Dong Jia Shi Date: Thu, 22 Sep 2016 10:36:39 +0200 Subject: [PATCH] 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 --- pc-bios/s390-ccw/virtio.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pc-bios/s390-ccw/virtio.c b/pc-bios/s390-ccw/virtio.c index 1d34e8c1aad..b3337349558 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 */ -- 2.39.5