diff options
author | Andrew Morton <akpm@osdl.org> | 2005-07-27 11:43:54 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-27 16:25:53 -0700 |
commit | 1aaf18ff9de1f37bf674236fc0779c3aaa65b998 (patch) | |
tree | 53df4d3dd0fbd81b79d5cdb63cf0d11853307a6b /lib | |
parent | 0cfc11ed45e4c00750039e5a18c0fc0d681e19db (diff) | |
download | kernel_samsung_smdk4412-1aaf18ff9de1f37bf674236fc0779c3aaa65b998.zip kernel_samsung_smdk4412-1aaf18ff9de1f37bf674236fc0779c3aaa65b998.tar.gz kernel_samsung_smdk4412-1aaf18ff9de1f37bf674236fc0779c3aaa65b998.tar.bz2 |
[PATCH] check_user_page_readable() deadlock fix
Fix bug identifued by Richard Purdie <rpurdie@rpsys.net>.
oprofile calls check_user_page_readable() from interrupt context, so we
deadlock over various VFS locks.
But check_user_page_readable() doesn't imply either a read or a write of the
page's contents. Change __follow_page() so that check_user_page_readable()
can tell __follow_page() that we're not accessing the page's contents, and use
that info to avoid the troublesome lock-takings.
Also, make follow_page() inline for the single callsite in memory.c to save a
bit of stack space.
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions