Revision 1c90ef26 target-i386/kvm.c

b/target-i386/kvm.c
1230 1230
                              env->msr_global_ctrl);
1231 1231
        }
1232 1232
        if (has_msr_hv_hypercall) {
1233
            kvm_msr_entry_set(&msrs[n++], HV_X64_MSR_GUEST_OS_ID, 0);
1234
            kvm_msr_entry_set(&msrs[n++], HV_X64_MSR_HYPERCALL, 0);
1233
            kvm_msr_entry_set(&msrs[n++], HV_X64_MSR_GUEST_OS_ID,
1234
                              env->msr_hv_guest_os_id);
1235
            kvm_msr_entry_set(&msrs[n++], HV_X64_MSR_HYPERCALL,
1236
                              env->msr_hv_hypercall);
1235 1237
        }
1236 1238
        if (has_msr_hv_vapic) {
1237 1239
            kvm_msr_entry_set(&msrs[n++], HV_X64_MSR_APIC_ASSIST_PAGE, 0);
......
1520 1522
        }
1521 1523
    }
1522 1524

  
1525
    if (has_msr_hv_hypercall) {
1526
        msrs[n++].index = HV_X64_MSR_HYPERCALL;
1527
        msrs[n++].index = HV_X64_MSR_GUEST_OS_ID;
1528
    }
1523 1529
    msr_data.info.nmsrs = n;
1524 1530
    ret = kvm_vcpu_ioctl(CPU(cpu), KVM_GET_MSRS, &msr_data);
1525 1531
    if (ret < 0) {
......
1627 1633
        case MSR_P6_EVNTSEL0 ... MSR_P6_EVNTSEL0 + MAX_GP_COUNTERS - 1:
1628 1634
            env->msr_gp_evtsel[index - MSR_P6_EVNTSEL0] = msrs[i].data;
1629 1635
            break;
1636
        case HV_X64_MSR_HYPERCALL:
1637
            env->msr_hv_hypercall = msrs[i].data;
1638
            break;
1639
        case HV_X64_MSR_GUEST_OS_ID:
1640
            env->msr_hv_guest_os_id = msrs[i].data;
1641
            break;
1630 1642
        }
1631 1643
    }
1632 1644

  

Also available in: Unified diff