From: Peter Zijlstra Date: Thu, 29 Jan 2009 15:02:12 +0000 (+0100) Subject: x86: add might_sleep() to do_page_fault() X-Git-Tag: upstream/snapshot3+hdmi~18661^2~508^2~1^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=010060741ad35eacb504414bc6fb9bb575b15f62;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git x86: add might_sleep() to do_page_fault() Impact: widen debug checks VirtualBox calls do_page_fault() from an atomic context but runs into a might_sleep() way pas this point, cure that. Signed-off-by: Peter Zijlstra Signed-off-by: Ingo Molnar --- diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index 8f4b859..eb4d7fe 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -888,6 +888,12 @@ void __kprobes do_page_fault(struct pt_regs *regs, unsigned long error_code) return; } down_read(&mm->mmap_sem); + } else { + /* + * The above down_read_trylock() might have succeeded in which + * case we'll have missed the might_sleep() from down_read(). + */ + might_sleep(); } vma = find_vma(mm, address);