Hi Paolo, I helped to test for your patch on our LKP system. It fixes the bug reported by Fengguang. I applied your patch based on commit 93c4adc7afedf9b0ec190066d45b6d67db5270da. commit e0d58133c21fd445e029fb43752998384fa4df5c Author: Jet Chen Date: Thu Mar 27 13:15:34 2014 +0800 Test patch from Paolo Bonzini Signed-off-by: Jet Chen diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index aa98695..ce2b572 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -5594,9 +5594,10 @@ int kvm_arch_init(void *opaque) goto out_free_percpu; kvm_set_mmio_spte_mask(); - kvm_init_msr_list(); kvm_x86_ops = ops; + kvm_init_msr_list(); + kvm_mmu_set_mask_ptes(PT_USER_MASK, PT_ACCESSED_MASK, PT_DIRTY_MASK, PT64_NX_MASK, 0); And here is test result on our LKP system 93c4adc7afedf9b e0d58133c21fd445e029fb437 --------------- ------------------------- 1 ~ 0% -100.0% 0 ~ 0% TOTAL dmesg.BUG:unable_to_handle_kernel_NULL_pointer_dereference 1 ~ 0% -100.0% 0 ~ 0% TOTAL dmesg.Oops:SMP 1 ~ 0% -100.0% 0 ~ 0% TOTAL dmesg.RIP:kvm_arch_init 1 ~ 0% -100.0% 0 ~ 0% TOTAL dmesg.Kernel_panic-not_syncing:Fatal_exception Legend: ~XX% - stddev percent [+-]XX% - change percent Kernel oops messages disappear after applying your patch. Thanks, -Jet On 03/26/2014 10:54 PM, Paolo Bonzini wrote: > kvm_x86_ops is still NULL at this point. Since kvm_init_msr_list > cannot fail, it is safe to initialize it before the call. > > Reported-by: Fengguang Wu > Cc: kvm@vger.kernel.org > Signed-off-by: Paolo Bonzini > --- > arch/x86/kvm/x86.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index 39c28f09dfd5..49b514f76b5d 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -5537,9 +5537,10 @@ int kvm_arch_init(void *opaque) > goto out_free_percpu; > > kvm_set_mmio_spte_mask(); > - kvm_init_msr_list(); > > kvm_x86_ops = ops; > + kvm_init_msr_list(); > + > kvm_mmu_set_mask_ptes(PT_USER_MASK, PT_ACCESSED_MASK, > PT_DIRTY_MASK, PT64_NX_MASK, 0); > >