x86: some lock annotations for user copy paths
authorNick Piggin <npiggin@suse.de>
Wed, 10 Sep 2008 11:37:17 +0000 (13:37 +0200)
committerIngo Molnar <mingo@elte.hu>
Wed, 10 Sep 2008 11:48:49 +0000 (13:48 +0200)
commitc10d38dda1774ed4540380333cabd229eff37094
treebe9649dab7c0017c0a700f146db70f730ad819a7
parent76b189e91845eab3a9d52bb97f971d312d25652d
x86: some lock annotations for user copy paths

copy_to/from_user and all its variants (except the atomic ones) can take a
page fault and perform non-trivial work like taking mmap_sem and entering
the filesyste/pagecache.

Unfortunately, this often escapes lockdep because a common pattern is to
use it to read in some arguments just set up from userspace, or write data
back to a hot buffer. In those cases, it will be unlikely for page reclaim
to get a window in to cause copy_*_user to fault.

With the new might_lock primitives, add some annotations to x86. I don't
know if I caught all possible faulting points (it's a bit of a maze, and I
didn't really look at 32-bit). But this is a starting point.

Boots and runs OK so far.

Signed-off-by: Nick Piggin <npiggin@suse.de>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/lib/usercopy_32.c
arch/x86/lib/usercopy_64.c
include/asm-x86/uaccess.h
include/asm-x86/uaccess_32.h
include/asm-x86/uaccess_64.h