Hi, Here we go again, another case where we were calling kmalloc() through vcpu_reset() while local interrupts were disabled. Cheers, Jes
Restore local irq enabled state before calling kvm_arch_vcpu_init(), which calls kmalloc(GFP_KERNEL). Signed-off-by: Jes Sorensen <jes@xxxxxxx> --- arch/ia64/kvm/kvm-ia64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: linux-2.6.git/arch/ia64/kvm/kvm-ia64.c =================================================================== --- linux-2.6.git.orig/arch/ia64/kvm/kvm-ia64.c +++ linux-2.6.git/arch/ia64/kvm/kvm-ia64.c @@ -1919,6 +1919,7 @@ long psr; local_irq_save(psr); r = kvm_insert_vmm_mapping(vcpu); + local_irq_restore(psr); if (r) goto fail; @@ -1931,7 +1932,6 @@ kvm_purge_vmm_mapping(vcpu); r = 0; fail: - local_irq_restore(psr); return r; }