• OGAWA Hirofumi's avatar
    KVM: Fix kvm mmu_notifier initialization order · 85722cda
    OGAWA Hirofumi authored
    Like the following, mmu_notifier can be called after registering
    immediately. So, kvm have to initialize kvm->mmu_lock before it.
    
    BUG: spinlock bad magic on CPU#0, kswapd0/342
     lock: ffff8800af8c4000, .magic: 00000000, .owner: <none>/-1, .owner_cpu: 0
    Pid: 342, comm: kswapd0 Not tainted 2.6.39-rc5+ #1
    Call Trace:
     [<ffffffff8118ce61>] spin_bug+0x9c/0xa3
     [<ffffffff8118ce91>] do_raw_spin_lock+0x29/0x13c
     [<ffffffff81024923>] ? flush_tlb_others_ipi+0xaf/0xfd
     [<ffffffff812e22f3>] _raw_spin_lock+0x9/0xb
     [<ffffffffa0582325>] kvm_mmu_notifier_clear_flush_young+0x2c/0x66 [kvm]
     [<ffffffff810d3ff3>] __mmu_notifier_clear_flush_young+0x2b/0x57
     [<ffffffff810c8761>] page_referenced_one+0x88/0xea
     [<ffffffff810c89bf>] page_referenced+0x1fc/0x256
     [<ffffffff810b2771>] shrink_page_list+0x187/0x53a
     [<ffffffff810b2ed7>] shrink_inactive_list+0x1e0/0x33d
     [<ffffffff810acf95>] ? determine_dirtyable_memory+0x15/0x27
     [<ffffffff812e90ee>] ? call_function_single_interrupt+0xe/0x20
     [<ffffffff810b3356>] shrink_zone+0x322/0x3de
     [<ffffffff810a9587>] ? zone_watermark_ok_safe+0xe2/0xf1
     [<ffffffff810b3928>] kswapd+0x516/0x818
     [<ffffffff810b3412>] ? shrink_zone+0x3de/0x3de
     [<ffffffff81053d17>] kthread+0x7d/0x85
     [<ffffffff812e9394>] kernel_thread_helper+0x4/0x10
     [<ffffffff81053c9a>] ? __init_kthread_worker+0x37/0x37
     [<ffffffff812e9390>] ? gs_change+0xb/0xb
    Signed-off-by: default avatarOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
    Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
    85722cda
kvm_main.c 57.8 KB