From: Dong Jia Shi <bjsdj...@linux.vnet.ibm.com> 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 <al...@linux.vnet.ibm.com> Signed-off-by: Dong Jia Shi <bjsdj...@linux.vnet.ibm.com> Reviewed-by: Cornelia Huck <cornelia.h...@de.ibm.com> Reviewed-by: Sascha Silbe <si...@linux.vnet.ibm.com> Signed-off-by: Halil Pasic <pa...@linux.vnet.ibm.com> [remove superfluous flag] Signed-off-by: Christian Borntraeger <borntrae...@de.ibm.com> --- 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 1d34e8c..b333734 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.5.5