If we detect that the internally manged state of the subchannel is broken beyond repair while in do_subchannel_work in case of virtual we just abort the operation and pretend all went well, while in case of pass-through we honor the situation with -ENODEV which results in cc 3 for the instruction whose handler triggered the call.
Let's be consistent on this and do the -ENODEV also for virtual subchannels. Signed-off-by: Halil Pasic <pa...@linux.vnet.ibm.com> Acked-by: Pierre Morel<pmo...@linux.vnet.ibm.com> --- hw/s390x/css.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/s390x/css.c b/hw/s390x/css.c index 0822538cde..bc47bf5b20 100644 --- a/hw/s390x/css.c +++ b/hw/s390x/css.c @@ -1078,7 +1078,7 @@ int do_subchannel_work_virtual(SubchDev *sch) sch_handle_start_func_virtual(sch); } else { /* Cannot happen. */ - return 0; + return -ENODEV; } css_inject_io_interrupt(sch); return 0; -- 2.13.5