mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 06:01:57 +00:00
Merge branch 'topic/ppc-kvm' into next
This commit is contained in:
commit
5af16d4bab
@ -1922,14 +1922,22 @@ static int kvmppc_handle_exit_hv(struct kvm_vcpu *vcpu,
|
||||
|
||||
r = EMULATE_FAIL;
|
||||
if (cpu_has_feature(CPU_FTR_ARCH_300)) {
|
||||
if (cause == FSCR_MSGP_LG)
|
||||
switch (cause) {
|
||||
case FSCR_MSGP_LG:
|
||||
r = kvmppc_emulate_doorbell_instr(vcpu);
|
||||
if (cause == FSCR_PM_LG)
|
||||
break;
|
||||
case FSCR_PM_LG:
|
||||
r = kvmppc_pmu_unavailable(vcpu);
|
||||
if (cause == FSCR_EBB_LG)
|
||||
break;
|
||||
case FSCR_EBB_LG:
|
||||
r = kvmppc_ebb_unavailable(vcpu);
|
||||
if (cause == FSCR_TM_LG)
|
||||
break;
|
||||
case FSCR_TM_LG:
|
||||
r = kvmppc_tm_unavailable(vcpu);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (r == EMULATE_FAIL) {
|
||||
kvmppc_core_queue_program(vcpu, SRR1_PROGILL |
|
||||
@ -4049,7 +4057,6 @@ static noinline void kvmppc_run_core(struct kvmppc_vcore *vc)
|
||||
/* Return to whole-core mode if we split the core earlier */
|
||||
if (cmd_bit) {
|
||||
unsigned long hid0 = mfspr(SPRN_HID0);
|
||||
unsigned long loops = 0;
|
||||
|
||||
hid0 &= ~HID0_POWER8_DYNLPARDIS;
|
||||
stat_bit = HID0_POWER8_2LPARMODE | HID0_POWER8_4LPARMODE;
|
||||
@ -4061,7 +4068,6 @@ static noinline void kvmppc_run_core(struct kvmppc_vcore *vc)
|
||||
if (!(hid0 & stat_bit))
|
||||
break;
|
||||
cpu_relax();
|
||||
++loops;
|
||||
}
|
||||
split_info.do_nap = 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user