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
This commit is contained in:
Linus Torvalds 2009-01-13 09:02:21 -08:00
commit 28839855bf
2 changed files with 10 additions and 0 deletions

View File

@ -2,6 +2,7 @@
* Uniprocessor-only support functions. The counterpart to kernel/smp.c * Uniprocessor-only support functions. The counterpart to kernel/smp.c
*/ */
#include <linux/interrupt.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/smp.h> #include <linux/smp.h>

View File

@ -3165,6 +3165,15 @@ void print_vma_addr(char *prefix, unsigned long ip)
#ifdef CONFIG_PROVE_LOCKING #ifdef CONFIG_PROVE_LOCKING
void might_fault(void) void might_fault(void)
{ {
/*
* Some code (nfs/sunrpc) uses socket ops on kernel memory while
* holding the mmap_sem, this is safe because kernel memory doesn't
* get paged out, therefore we'll never actually fault, and the
* below annotations will generate false positives.
*/
if (segment_eq(get_fs(), KERNEL_DS))
return;
might_sleep(); might_sleep();
/* /*
* it would be nicer only to annotate paths which are not under * it would be nicer only to annotate paths which are not under