kvm-s390.c (a4a4f1916abbbc3148d79a37cf3fe4f3f6c604d9) kvm-s390.c (53df84f8de312586e1c05a8f496f614ca814eeff)
1/*
2 * hosting zSeries kernel virtual machines
3 *
4 * Copyright IBM Corp. 2008, 2009
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.

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

105 { "diagnose_44", VCPU_STAT(diagnose_44) },
106 { "diagnose_9c", VCPU_STAT(diagnose_9c) },
107 { NULL }
108};
109
110/* upper facilities limit for kvm */
111unsigned long kvm_s390_fac_list_mask[] = {
112 0xffe6fffbfcfdfc40UL,
1/*
2 * hosting zSeries kernel virtual machines
3 *
4 * Copyright IBM Corp. 2008, 2009
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.

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

105 { "diagnose_44", VCPU_STAT(diagnose_44) },
106 { "diagnose_9c", VCPU_STAT(diagnose_9c) },
107 { NULL }
108};
109
110/* upper facilities limit for kvm */
111unsigned long kvm_s390_fac_list_mask[] = {
112 0xffe6fffbfcfdfc40UL,
113 0x005c800000000000UL,
113 0x005e800000000000UL,
114};
115
116unsigned long kvm_s390_fac_list_mask_size(void)
117{
118 BUILD_BUG_ON(ARRAY_SIZE(kvm_s390_fac_list_mask) > S390_ARCH_FAC_MASK_SIZE_U64);
119 return ARRAY_SIZE(kvm_s390_fac_list_mask);
120}
121

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

1308int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
1309{
1310 int rc = 0;
1311
1312 atomic_set(&vcpu->arch.sie_block->cpuflags, CPUSTAT_ZARCH |
1313 CPUSTAT_SM |
1314 CPUSTAT_STOPPED);
1315
114};
115
116unsigned long kvm_s390_fac_list_mask_size(void)
117{
118 BUILD_BUG_ON(ARRAY_SIZE(kvm_s390_fac_list_mask) > S390_ARCH_FAC_MASK_SIZE_U64);
119 return ARRAY_SIZE(kvm_s390_fac_list_mask);
120}
121

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

1308int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
1309{
1310 int rc = 0;
1311
1312 atomic_set(&vcpu->arch.sie_block->cpuflags, CPUSTAT_ZARCH |
1313 CPUSTAT_SM |
1314 CPUSTAT_STOPPED);
1315
1316 if (test_kvm_facility(vcpu->kvm, 8))
1316 if (test_kvm_facility(vcpu->kvm, 78))
1317 atomic_set_mask(CPUSTAT_GED2, &vcpu->arch.sie_block->cpuflags);
1318 else if (test_kvm_facility(vcpu->kvm, 8))
1317 atomic_set_mask(CPUSTAT_GED, &vcpu->arch.sie_block->cpuflags);
1318
1319 kvm_s390_vcpu_setup_model(vcpu);
1320
1321 vcpu->arch.sie_block->ecb = 6;
1322 if (test_kvm_facility(vcpu->kvm, 50) && test_kvm_facility(vcpu->kvm, 73))
1323 vcpu->arch.sie_block->ecb |= 0x10;
1324

--- 1309 unchanged lines hidden ---
1319 atomic_set_mask(CPUSTAT_GED, &vcpu->arch.sie_block->cpuflags);
1320
1321 kvm_s390_vcpu_setup_model(vcpu);
1322
1323 vcpu->arch.sie_block->ecb = 6;
1324 if (test_kvm_facility(vcpu->kvm, 50) && test_kvm_facility(vcpu->kvm, 73))
1325 vcpu->arch.sie_block->ecb |= 0x10;
1326

--- 1309 unchanged lines hidden ---