diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-13 12:02:21 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-13 12:02:21 -0500 |
commit | 28839855bf623f2d7eee72377d4896770a45494f (patch) | |
tree | e7f8b0742120b9d7401f5783a6065f004167aae1 | |
parent | ccbf04f24c55ead791dac5df8ddeb1a640fbaad8 (diff) | |
parent | 6e96281412f2f757abe623e08a9577e2bbd3402f (diff) |
Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
smp_call_function_single(): be slightly less stupid, fix #2
lockdep, mm: fix might_fault() annotation
-rw-r--r-- | kernel/up.c | 1 | ||||
-rw-r--r-- | mm/memory.c | 9 |
2 files changed, 10 insertions, 0 deletions
diff --git a/kernel/up.c b/kernel/up.c index c04b9dcfcebe..1ff27a28bb7d 100644 --- a/kernel/up.c +++ b/kernel/up.c | |||
@@ -2,6 +2,7 @@ | |||
2 | * Uniprocessor-only support functions. The counterpart to kernel/smp.c | 2 | * Uniprocessor-only support functions. The counterpart to kernel/smp.c |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/interrupt.h> | ||
5 | #include <linux/kernel.h> | 6 | #include <linux/kernel.h> |
6 | #include <linux/module.h> | 7 | #include <linux/module.h> |
7 | #include <linux/smp.h> | 8 | #include <linux/smp.h> |
diff --git a/mm/memory.c b/mm/memory.c index e009ce870859..c2d4c477e5bb 100644 --- a/mm/memory.c +++ b/mm/memory.c | |||
@@ -3165,6 +3165,15 @@ void print_vma_addr(char *prefix, unsigned long ip) | |||
3165 | #ifdef CONFIG_PROVE_LOCKING | 3165 | #ifdef CONFIG_PROVE_LOCKING |
3166 | void might_fault(void) | 3166 | void might_fault(void) |
3167 | { | 3167 | { |
3168 | /* | ||
3169 | * Some code (nfs/sunrpc) uses socket ops on kernel memory while | ||
3170 | * holding the mmap_sem, this is safe because kernel memory doesn't | ||
3171 | * get paged out, therefore we'll never actually fault, and the | ||
3172 | * below annotations will generate false positives. | ||
3173 | */ | ||
3174 | if (segment_eq(get_fs(), KERNEL_DS)) | ||
3175 | return; | ||
3176 | |||
3168 | might_sleep(); | 3177 | might_sleep(); |
3169 | /* | 3178 | /* |
3170 | * it would be nicer only to annotate paths which are not under | 3179 | * it would be nicer only to annotate paths which are not under |