From: Greg Kroah-Hartman Date: Mon, 12 Oct 2009 19:39:30 +0000 (-0700) Subject: fix up some .31 kvm patches X-Git-Tag: v2.6.31.4~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=159600d0f4fdf99f7f69d28ed5b6093b1246873d;p=thirdparty%2Fkernel%2Fstable-queue.git fix up some .31 kvm patches --- diff --git a/review-2.6.31/kvm-svm-fix-tsc-offset-adjustment-when-running-nested.patch b/review-2.6.31/kvm-svm-fix-tsc-offset-adjustment-when-running-nested.patch index 9de6bbc7e1f..39174b4fce2 100644 --- a/review-2.6.31/kvm-svm-fix-tsc-offset-adjustment-when-running-nested.patch +++ b/review-2.6.31/kvm-svm-fix-tsc-offset-adjustment-when-running-nested.patch @@ -1,7 +1,12 @@ -From 77b1ab1732feb5e3dcbaf31d2f7547c5229f5f3a Mon Sep 17 00:00:00 2001 +From joerg.roedel@amd.com Mon Oct 12 12:11:35 2009 From: Joerg Roedel -Date: Wed, 16 Sep 2009 15:24:17 +0200 +Date: Mon, 12 Oct 2009 11:41:51 +0200 Subject: KVM: SVM: Fix tsc offset adjustment when running nested +To: Stefan Lippers-Hollmann +Cc: stable@kernel.org, gregkh@suse.de, linux-kernel@vger.kernel.org, mtosatti@redhat.com +Message-ID: <20091012094151.GA32228@amd.com> +Content-Disposition: inline + From: Joerg Roedel @@ -29,7 +34,7 @@ Signed-off-by: Greg Kroah-Hartman delta = vcpu->arch.host_tsc - tsc_this; svm->vmcb->control.tsc_offset += delta; + if (is_nested(svm)) -+ svm->nested.hsave->control.tsc_offset += delta; ++ svm->hsave->control.tsc_offset += delta; vcpu->cpu = cpu; kvm_migrate_timers(vcpu); svm->asid_generation = 0; diff --git a/review-2.6.31/kvm-svm-handle-tsc-in-svm_get_msr-svm_set_msr-correctly.patch b/review-2.6.31/kvm-svm-handle-tsc-in-svm_get_msr-svm_set_msr-correctly.patch new file mode 100644 index 00000000000..218b7156b33 --- /dev/null +++ b/review-2.6.31/kvm-svm-handle-tsc-in-svm_get_msr-svm_set_msr-correctly.patch @@ -0,0 +1,67 @@ +From joerg.roedel@amd.com Mon Oct 12 12:15:03 2009 +From: Joerg Roedel +Date: Mon, 12 Oct 2009 11:42:44 +0200 +Subject: KVM: SVM: Handle tsc in svm_get_msr/svm_set_msr correctly +To: Greg KH +Cc: Marcelo Tosatti , stable@kernel.org +Message-ID: <20091012094244.GB32228@amd.com> +Content-Disposition: inline + + +From: Joerg Roedel + +commit 20824f30bb0b8ae0a4099895fd4509f54cf2e1e2 upstream. + +When running nested we need to touch the l1 guests +tsc_offset. Otherwise changes will be lost or a wrong value +be read. + +Signed-off-by: Joerg Roedel +Signed-off-by: Marcelo Tosatti +Signed-off-by: Greg Kroah-Hartman + +--- + arch/x86/kvm/svm.c | 23 +++++++++++++++++------ + 1 file changed, 17 insertions(+), 6 deletions(-) + +--- a/arch/x86/kvm/svm.c ++++ b/arch/x86/kvm/svm.c +@@ -1956,10 +1956,14 @@ static int svm_get_msr(struct kvm_vcpu * + + switch (ecx) { + case MSR_IA32_TIME_STAMP_COUNTER: { +- u64 tsc; ++ u64 tsc_offset; + +- rdtscll(tsc); +- *data = svm->vmcb->control.tsc_offset + tsc; ++ if (is_nested(svm)) ++ tsc_offset = svm->hsave->control.tsc_offset; ++ else ++ tsc_offset = svm->vmcb->control.tsc_offset; ++ ++ *data = tsc_offset + native_read_tsc(); + break; + } + case MSR_K6_STAR: +@@ -2046,10 +2050,17 @@ static int svm_set_msr(struct kvm_vcpu * + + switch (ecx) { + case MSR_IA32_TIME_STAMP_COUNTER: { +- u64 tsc; ++ u64 tsc_offset = data - native_read_tsc(); ++ u64 g_tsc_offset = 0; ++ ++ if (is_nested(svm)) { ++ g_tsc_offset = svm->vmcb->control.tsc_offset - ++ svm->hsave->control.tsc_offset; ++ svm->hsave->control.tsc_offset = tsc_offset; ++ } ++ ++ svm->vmcb->control.tsc_offset = tsc_offset + g_tsc_offset; + +- rdtscll(tsc); +- svm->vmcb->control.tsc_offset = data - tsc; + break; + } + case MSR_K6_STAR: diff --git a/review-2.6.31/series b/review-2.6.31/series index 73b2d8ab530..50de06d4436 100644 --- a/review-2.6.31/series +++ b/review-2.6.31/series @@ -17,6 +17,7 @@ kvm-prevent-overflow-in-kvm_get_supported_cpuid.patch kvm-vmx-flush-tlb-with-invept-on-cpu-migration.patch kvm-fix-lapic-timer-period-overflow.patch kvm-svm-fix-tsc-offset-adjustment-when-running-nested.patch +kvm-svm-handle-tsc-in-svm_get_msr-svm_set_msr-correctly.patch net-fix-wrong-sizeof.patch mm-add_to_swap_cache-must-not-sleep.patch sis5513-fix-pio-setup-for-atapi-devices.patch