x86.c (d17ed982e4497070e4575ecd8c5afcfcb7210b8b) x86.c (34a83deac31cd9fdecef331578422095af2db4b0)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Kernel-based Virtual Machine driver for Linux
4 *
5 * derived from drivers/kvm/kvm_main.c
6 *
7 * Copyright (C) 2006 Qumranet, Inc.
8 * Copyright (C) 2008 Qumranet, Inc.

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

3697 }
3698 break;
3699 case MSR_FAM10H_MMIO_CONF_BASE:
3700 if (data != 0) {
3701 kvm_pr_unimpl_wrmsr(vcpu, msr, data);
3702 return 1;
3703 }
3704 break;
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Kernel-based Virtual Machine driver for Linux
4 *
5 * derived from drivers/kvm/kvm_main.c
6 *
7 * Copyright (C) 2006 Qumranet, Inc.
8 * Copyright (C) 2008 Qumranet, Inc.

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

3697 }
3698 break;
3699 case MSR_FAM10H_MMIO_CONF_BASE:
3700 if (data != 0) {
3701 kvm_pr_unimpl_wrmsr(vcpu, msr, data);
3702 return 1;
3703 }
3704 break;
3705 case 0x200 ... MSR_IA32_MC0_CTL2 - 1:
3706 case MSR_IA32_MCx_CTL2(KVM_MAX_MCE_BANKS) ... 0x2ff:
3705 case MSR_IA32_CR_PAT:
3706 case MTRRphysBase_MSR(0) ... MSR_MTRRfix4K_F8000:
3707 case MSR_MTRRdefType:
3707 return kvm_mtrr_set_msr(vcpu, msr, data);
3708 case MSR_IA32_APICBASE:
3709 return kvm_set_apic_base(vcpu, msr_info);
3710 case APIC_BASE_MSR ... APIC_BASE_MSR + 0xff:
3711 return kvm_x2apic_msr_write(vcpu, msr, data);
3712 case MSR_IA32_TSC_DEADLINE:
3713 kvm_set_lapic_tscdeadline_msr(vcpu, data);
3714 break;

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

4105 } else {
4106 offset = vcpu->arch.tsc_offset;
4107 ratio = vcpu->arch.tsc_scaling_ratio;
4108 }
4109
4110 msr_info->data = kvm_scale_tsc(rdtsc(), ratio) + offset;
4111 break;
4112 }
3708 return kvm_mtrr_set_msr(vcpu, msr, data);
3709 case MSR_IA32_APICBASE:
3710 return kvm_set_apic_base(vcpu, msr_info);
3711 case APIC_BASE_MSR ... APIC_BASE_MSR + 0xff:
3712 return kvm_x2apic_msr_write(vcpu, msr, data);
3713 case MSR_IA32_TSC_DEADLINE:
3714 kvm_set_lapic_tscdeadline_msr(vcpu, data);
3715 break;

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

4106 } else {
4107 offset = vcpu->arch.tsc_offset;
4108 ratio = vcpu->arch.tsc_scaling_ratio;
4109 }
4110
4111 msr_info->data = kvm_scale_tsc(rdtsc(), ratio) + offset;
4112 break;
4113 }
4114 case MSR_IA32_CR_PAT:
4113 case MSR_MTRRcap:
4115 case MSR_MTRRcap:
4114 case 0x200 ... MSR_IA32_MC0_CTL2 - 1:
4115 case MSR_IA32_MCx_CTL2(KVM_MAX_MCE_BANKS) ... 0x2ff:
4116 case MTRRphysBase_MSR(0) ... MSR_MTRRfix4K_F8000:
4117 case MSR_MTRRdefType:
4116 return kvm_mtrr_get_msr(vcpu, msr_info->index, &msr_info->data);
4117 case 0xcd: /* fsb frequency */
4118 msr_info->data = 3;
4119 break;
4120 /*
4121 * MSR_EBC_FREQUENCY_ID
4122 * Conservative value valid for even the basic CPU models.
4123 * Models 0,1: 000 in bits 23:21 indicating a bus speed of

--- 9531 unchanged lines hidden ---
4118 return kvm_mtrr_get_msr(vcpu, msr_info->index, &msr_info->data);
4119 case 0xcd: /* fsb frequency */
4120 msr_info->data = 3;
4121 break;
4122 /*
4123 * MSR_EBC_FREQUENCY_ID
4124 * Conservative value valid for even the basic CPU models.
4125 * Models 0,1: 000 in bits 23:21 indicating a bus speed of

--- 9531 unchanged lines hidden ---