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 <a.p.zijlstra@chello.nl> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
fb746d0e13
commit
010060741a
1 changed files with 6 additions and 0 deletions
|
@ -888,6 +888,12 @@ void __kprobes do_page_fault(struct pt_regs *regs, unsigned long error_code)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
down_read(&mm->mmap_sem);
|
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);
|
vma = find_vma(mm, address);
|
||||||
|
|
Loading…
Add table
Reference in a new issue