diff options
Diffstat (limited to 'target/s390x/misc_helper.c')
-rw-r--r-- | target/s390x/misc_helper.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/target/s390x/misc_helper.c b/target/s390x/misc_helper.c index 556340756c..02654617b3 100644 --- a/target/s390x/misc_helper.c +++ b/target/s390x/misc_helper.c @@ -62,11 +62,10 @@ uint32_t HELPER(servc)(CPUS390XState *env, uint64_t r1, uint64_t r2) { qemu_mutex_lock_iothread(); int r = sclp_service_call(env, r1, r2); + qemu_mutex_unlock_iothread(); if (r < 0) { - program_interrupt(env, -r, 4); - r = 0; + s390_program_interrupt(env, -r, 4, GETPC()); } - qemu_mutex_unlock_iothread(); return r; } |