[PATCH] KVM: Initialize kvm_arch_ops on unload
authorYoshimi Ichiyanagi <ichiyanagi.yoshimi@lab.ntt.co.jp>
Sat, 30 Dec 2006 00:49:41 +0000 (16:49 -0800)
committerLinus Torvalds <torvalds@woody.osdl.org>
Sat, 30 Dec 2006 18:56:44 +0000 (10:56 -0800)
commit09db28b8a3765a7ec35eba80420c71a7973f5a88
tree13a43df5bceb1016dd6ad0179b9de8dacabbe145
parenta9058ecd3cd72634cf548588ce79b3f225c9ca32
[PATCH] KVM: Initialize kvm_arch_ops on unload

The latest version of kvm doesn't initialize kvm_arch_ops in kvm_init(), which
causes an error with the following sequence.

1. Load the supported arch's module.
2. Load the unsupported arch's module.\e$B!!\e(B(loading error)
3. Unload the unsupported arch's module.

You'll get the following error message after step 3.  "BUG: unable to handle
to handle kernel paging request at virtual address xxxxxxxx"

The problem here is that the unsupported arch's module overwrites kvm_arch_ops
of the supported arch's module at step 2.

This patch initializes kvm_arch_ops upon loading architecture specific kvm
module, and prevents overwriting kvm_arch_ops when kvm_arch_ops is already set
correctly.

Signed-off-by: Avi Kivity <avi@qumranet.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/kvm/kvm_main.c