rpms/kernel/F-7 linux-2.6-amd-disabled-svm-detect-msr-1.patch, 1.2, 1.3 linux-2.6-amd-disabled-svm-detect.patch, 1.2, 1.3 linux-2.6-jbd-fix-transaction-dropping.patch, NONE, 1.1 linux-2.6-kvm-reinit-real-mode-tss.patch, 1.2, 1.3 kernel-2.6.spec, 1.3273, 1.3274

Chuck Ebbert (cebbert) fedora-extras-commits at redhat.com
Wed Jul 11 22:50:25 UTC 2007


Author: cebbert

Update of /cvs/pkgs/rpms/kernel/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv14309

Modified Files:
	kernel-2.6.spec 
Added Files:
	linux-2.6-amd-disabled-svm-detect-msr-1.patch 
	linux-2.6-amd-disabled-svm-detect.patch 
	linux-2.6-jbd-fix-transaction-dropping.patch 
	linux-2.6-kvm-reinit-real-mode-tss.patch 
Log Message:
* Wed Jul 11 2007 Chuck Ebbert <cebbert at redhat.com>
- jbd: fix transaction dropping (kernel oops)
- kvm: reinit real mode TSS on shutdown
- kvm: detect SVM disabled by BIOS


linux-2.6-amd-disabled-svm-detect-msr-1.patch:

Index: linux-2.6-amd-disabled-svm-detect-msr-1.patch
===================================================================
RCS file: linux-2.6-amd-disabled-svm-detect-msr-1.patch
diff -N linux-2.6-amd-disabled-svm-detect-msr-1.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ linux-2.6-amd-disabled-svm-detect-msr-1.patch	11 Jul 2007 22:50:19 -0000	1.3
@@ -0,0 +1,17 @@
+bz #246250
+
+From: H.J. Lu
+
+--- linux-2.6.21.i686/drivers/kvm/svm.h.msr	2007-06-28 22:42:12.000000000 -0700
++++ linux-2.6.21.i686/drivers/kvm/svm.h	2007-06-29 08:03:09.000000000 -0700
+@@ -175,8 +175,8 @@ struct __attribute__ ((__packed__)) vmcb
+ #define SVM_CPUID_FUNC 0x8000000a
+ 
+ #define MSR_EFER_SVME_MASK (1ULL << 12)
+-#define MSR_VM_CR       0xc0010114ULL
+-#define MSR_VM_HSAVE_PA 0xc0010117ULL
++#define MSR_VM_CR       0xc0010114
++#define MSR_VM_HSAVE_PA 0xc0010117
+ 
+ #define SVM_VM_CR_SVM_DISABLE 4
+ 

linux-2.6-amd-disabled-svm-detect.patch:

Index: linux-2.6-amd-disabled-svm-detect.patch
===================================================================
RCS file: linux-2.6-amd-disabled-svm-detect.patch
diff -N linux-2.6-amd-disabled-svm-detect.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ linux-2.6-amd-disabled-svm-detect.patch	11 Jul 2007 22:50:19 -0000	1.3
@@ -0,0 +1,47 @@
+commit cfc329b216bc3e54fe1107e8f714c7b3bc133224
+Author: Joerg Roedel <joerg.roedel at amd.com>
+Date:   Fri Jun 22 12:29:50 2007 +0300
+
+    KVM: SVM: Reliably detect if SVM was disabled by BIOS
+    
+    This patch adds an implementation to the svm is_disabled function to
+    detect reliably if the BIOS disabled the SVM feature in the CPU. This
+    fixes the issues with kernel panics when loading the kvm-amd module on
+    machines where SVM is available but disabled.
+    
+    Signed-off-by: Joerg Roedel <joerg.roedel at amd.com>
+    Signed-off-by: Avi Kivity <avi at qumranet.com>
+
+diff --git a/drivers/kvm/svm.c b/drivers/kvm/svm.c
+index 62ec38c..a0d4428 100644
+--- a/drivers/kvm/svm.c
++++ b/drivers/kvm/svm.c
+@@ -1735,6 +1735,12 @@ static void svm_inject_page_fault(struct kvm_vcpu *vcpu,
+ 
+ static int is_disabled(void)
+ {
++	u64 vm_cr;
++
++	rdmsrl(MSR_VM_CR, vm_cr);
++	if (vm_cr & (1 << SVM_VM_CR_SVM_DISABLE))
++		return 1;
++
+ 	return 0;
+ }
+ 
+diff --git a/drivers/kvm/svm.h b/drivers/kvm/svm.h
+index 5e93814..005a9c5 100644
+--- a/drivers/kvm/svm.h
++++ b/drivers/kvm/svm.h
+@@ -175,8 +175,11 @@ struct __attribute__ ((__packed__)) vmcb {
+ #define SVM_CPUID_FUNC 0x8000000a
+ 
+ #define MSR_EFER_SVME_MASK (1ULL << 12)
++#define MSR_VM_CR       0xc0010114ULL
+ #define MSR_VM_HSAVE_PA 0xc0010117ULL
+ 
++#define SVM_VM_CR_SVM_DISABLE 4
++
+ #define SVM_SELECTOR_S_SHIFT 4
+ #define SVM_SELECTOR_DPL_SHIFT 5
+ #define SVM_SELECTOR_P_SHIFT 7

linux-2.6-jbd-fix-transaction-dropping.patch:

--- NEW FILE linux-2.6-jbd-fix-transaction-dropping.patch ---
Subject: jbd commit: fix transaction dropping
From: Jan Kara <jack at suse.cz>

We have to check that also the second checkpoint list is non-empty before
dropping the transaction.

Signed-off-by: Jan Kara <jack at suse.cz>
Cc: Chuck Ebbert <cebbert at redhat.com>
Cc: Kirill Korotaev <dev at openvz.org>
Cc: <linux-ext4 at vger.kernel.org>
Cc: <stable at kernel.org>
Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
---

 fs/jbd/commit.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)

diff -puN fs/jbd/commit.c~jbd-commit-fix-transaction-dropping fs/jbd/commit.c
--- a/fs/jbd/commit.c~jbd-commit-fix-transaction-dropping
+++ a/fs/jbd/commit.c
@@ -887,7 +887,8 @@ restart_loop:
 	journal->j_committing_transaction = NULL;
 	spin_unlock(&journal->j_state_lock);
 
-	if (commit_transaction->t_checkpoint_list == NULL) {
+	if (commit_transaction->t_checkpoint_list == NULL &&
+	    commit_transaction->t_checkpoint_io_list == NULL) {
 		__journal_drop_transaction(journal, commit_transaction);
 	} else {
 		if (journal->j_checkpoint_transactions == NULL) {

linux-2.6-kvm-reinit-real-mode-tss.patch:

Index: linux-2.6-kvm-reinit-real-mode-tss.patch
===================================================================
RCS file: linux-2.6-kvm-reinit-real-mode-tss.patch
diff -N linux-2.6-kvm-reinit-real-mode-tss.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ linux-2.6-kvm-reinit-real-mode-tss.patch	11 Jul 2007 22:50:19 -0000	1.3
@@ -0,0 +1,35 @@
+From: Avi Kivity <avi at qumranet.com>
+Date: Wed, 20 Jun 2007 08:20:04 +0000 (+0300)
+Subject: KVM: VMX: Reinitialize the real-mode tss when entering real mode
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Favi%2Fkvm.git;a=commitdiff_plain;h=030421334ae91b7f6302a1cfe9c971a8991b4870
+
+KVM: VMX: Reinitialize the real-mode tss when entering real mode
+
+Protected mode code may have corrupted the real-mode tss, so re-initialize
+it when switching to real mode.
+
+Signed-off-by: Avi Kivity <avi at qumranet.com>
+---
+
+diff --git a/drivers/kvm/vmx.c b/drivers/kvm/vmx.c
+index b47ddcc..42a9163 100644
+--- a/drivers/kvm/vmx.c
++++ b/drivers/kvm/vmx.c
+@@ -31,6 +31,8 @@
+ MODULE_AUTHOR("Qumranet");
+ MODULE_LICENSE("GPL");
+ 
++static int init_rmode_tss(struct kvm *kvm);
++
+ static DEFINE_PER_CPU(struct vmcs *, vmxarea);
+ static DEFINE_PER_CPU(struct vmcs *, current_vmcs);
+ 
+@@ -951,6 +953,8 @@ static void enter_rmode(struct kvm_vcpu *vcpu)
+ 	fix_rmode_seg(VCPU_SREG_DS, &vcpu->rmode.ds);
+ 	fix_rmode_seg(VCPU_SREG_GS, &vcpu->rmode.gs);
+ 	fix_rmode_seg(VCPU_SREG_FS, &vcpu->rmode.fs);
++
++	init_rmode_tss(vcpu->kvm);
+ }
+ 
+ #ifdef CONFIG_X86_64


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-7/kernel-2.6.spec,v
retrieving revision 1.3273
retrieving revision 1.3274
diff -u -r1.3273 -r1.3274
--- kernel-2.6.spec	11 Jul 2007 20:06:21 -0000	1.3273
+++ kernel-2.6.spec	11 Jul 2007 22:50:19 -0000	1.3274
@@ -511,7 +511,10 @@
 Patch30: linux-2.6-sysrq-c.patch
 Patch40: linux-2.6-x86-tune-generic.patch
 Patch50: linux-2.6-x86-vga-vidfail.patch
-Patch95: linux-2.6-kvm-suspend.patch
+Patch90: linux-2.6-kvm-suspend.patch
+Patch91: linux-2.6-amd-disabled-svm-detect.patch
+Patch92: linux-2.6-amd-disabled-svm-detect-msr-1.patch
+Patch93: linux-2.6-kvm-reinit-real-mode-tss.patch
 Patch100: linux-2.6-g5-therm-shutdown.patch
 Patch120: linux-2.6-ppc32-ucmpdi2.patch
 Patch130: linux-2.6-ibmvscsi-schizo.patch
@@ -540,6 +543,7 @@
 Patch400: linux-2.6-scsi-cpqarray-set-master.patch
 Patch401: linux-2.6-aacraid-ioctl-security.patch
 Patch420: linux-2.6-squashfs.patch
+Patch421: linux-2.6-jbd-fix-transaction-dropping.patch
 Patch430: linux-2.6-net-silence-noisy-printks.patch
 Patch440: linux-2.6-sha_alignment.patch
 Patch450: linux-2.6-input-kill-stupid-messages.patch
@@ -1048,6 +1052,11 @@
 ApplyPatch linux-2.6-x86-vga-vidfail.patch
 # patch to fix suspend with kvm loaded and guests running
 ApplyPatch linux-2.6-kvm-suspend.patch
+# detect svm disabled by bios, prevent oops on load
+ApplyPatch linux-2.6-amd-disabled-svm-detect.patch
+ApplyPatch linux-2.6-amd-disabled-svm-detect-msr-1.patch
+# reinit real mode tss or oops occurs on shutdown
+ApplyPatch linux-2.6-kvm-reinit-real-mode-tss.patch
 
 #
 # PowerPC
@@ -1119,6 +1128,8 @@
 # Filesystem patches.
 # Squashfs
 ApplyPatch linux-2.6-squashfs.patch
+# jbd: fix transaction dropping
+ApplyPatch linux-2.6-jbd-fix-transaction-dropping.patch
 
 # Networking
 # Disable easy to trigger printk's.
@@ -2108,6 +2119,11 @@
 
 %changelog
 * Wed Jul 11 2007 Chuck Ebbert <cebbert at redhat.com>
+- jbd: fix transaction dropping (kernel oops)
+- kvm: reinit real mode TSS on shutdown
+- kvm: detect SVM disabled by BIOS
+
+* Wed Jul 11 2007 Chuck Ebbert <cebbert at redhat.com>
 - sky2: re-enable lost interrupt workarounds
 - aacraid: ioctl handler needs permission check
 




More information about the scm-commits mailing list