priv.c (b3e5ced63e051e8f911b795ac5b06229a5328f7b) priv.c (53df84f8de312586e1c05a8f496f614ca814eeff)
1/*
2 * handling privileged instructions
3 *
4 * Copyright IBM Corp. 2008, 2013
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.

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

693
694 switch (vcpu->run->s.regs.gprs[reg1] & PFMF_FSC) {
695 case 0x00000000:
696 end = (start + (1UL << 12)) & ~((1UL << 12) - 1);
697 break;
698 case 0x00001000:
699 end = (start + (1UL << 20)) & ~((1UL << 20) - 1);
700 break;
1/*
2 * handling privileged instructions
3 *
4 * Copyright IBM Corp. 2008, 2013
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.

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

693
694 switch (vcpu->run->s.regs.gprs[reg1] & PFMF_FSC) {
695 case 0x00000000:
696 end = (start + (1UL << 12)) & ~((1UL << 12) - 1);
697 break;
698 case 0x00001000:
699 end = (start + (1UL << 20)) & ~((1UL << 20) - 1);
700 break;
701 /* We dont support EDAT2
702 case 0x00002000:
701 case 0x00002000:
702 /* only support 2G frame size if EDAT2 is available and we are
703 not in 24-bit addressing mode */
704 if (!test_kvm_facility(vcpu->kvm, 78) ||
705 psw_bits(vcpu->arch.sie_block->gpsw).eaba == PSW_AMODE_24BIT)
706 return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
703 end = (start + (1UL << 31)) & ~((1UL << 31) - 1);
707 end = (start + (1UL << 31)) & ~((1UL << 31) - 1);
704 break;*/
708 break;
705 default:
706 return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
707 }
708
709 if (vcpu->run->s.regs.gprs[reg1] & PFMF_CF) {
710 if (kvm_s390_check_low_addr_prot_real(vcpu, start))
711 return kvm_s390_inject_prog_irq(vcpu, &vcpu->arch.pgm);
712 }

--- 348 unchanged lines hidden ---
709 default:
710 return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
711 }
712
713 if (vcpu->run->s.regs.gprs[reg1] & PFMF_CF) {
714 if (kvm_s390_check_low_addr_prot_real(vcpu, start))
715 return kvm_s390_inject_prog_irq(vcpu, &vcpu->arch.pgm);
716 }

--- 348 unchanged lines hidden ---