vsie.c (f26e8817b235d8764363bffcc9cbfc61867371f2) vsie.c (0b92515916799ca2711c7c46abccb96c275cc88a)
1/*
2 * kvm nested virtualization support for s390x
3 *
4 * Copyright IBM Corp. 2016
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License (version 2 only)
8 * as published by the Free Software Foundation.

--- 885 unchanged lines hidden (view full) ---

894 }
895 atomic_andnot(PROG_BLOCK_SIE, &scb_s->prog20);
896
897 if (rc == -EAGAIN)
898 rc = 0;
899 if (rc || scb_s->icptcode || signal_pending(current) ||
900 kvm_s390_vcpu_has_irq(vcpu, 0))
901 break;
1/*
2 * kvm nested virtualization support for s390x
3 *
4 * Copyright IBM Corp. 2016
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License (version 2 only)
8 * as published by the Free Software Foundation.

--- 885 unchanged lines hidden (view full) ---

894 }
895 atomic_andnot(PROG_BLOCK_SIE, &scb_s->prog20);
896
897 if (rc == -EAGAIN)
898 rc = 0;
899 if (rc || scb_s->icptcode || signal_pending(current) ||
900 kvm_s390_vcpu_has_irq(vcpu, 0))
901 break;
902 };
902 }
903
904 if (rc == -EFAULT) {
905 /*
906 * Addressing exceptions are always presentes as intercepts.
907 * As addressing exceptions are suppressing and our guest 3 PSW
908 * points at the responsible instruction, we have to
909 * forward the PSW and set the ilc. If we can't read guest 3
910 * instruction, we can use an arbitrary ilc. Let's always use

--- 181 unchanged lines hidden ---
903
904 if (rc == -EFAULT) {
905 /*
906 * Addressing exceptions are always presentes as intercepts.
907 * As addressing exceptions are suppressing and our guest 3 PSW
908 * points at the responsible instruction, we have to
909 * forward the PSW and set the ilc. If we can't read guest 3
910 * instruction, we can use an arbitrary ilc. Let's always use

--- 181 unchanged lines hidden ---