Commit 95156f0051cba60ec674bbaa5cf7dc74a74c5612

Authored by Peter Zijlstra
Committed by Ingo Molnar
1 parent 9d07933709

lockdep, mm: fix might_fault() annotation

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 might_fault() annotations
will generate false positives.

Reported-by: "J. Bruce Fields" <bfields@fieldses.org>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>

Showing 1 changed file with 9 additions and 0 deletions Side-by-side Diff

... ... @@ -3165,6 +3165,15 @@
3165 3165 #ifdef CONFIG_PROVE_LOCKING
3166 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 3177 might_sleep();
3169 3178 /*
3170 3179 * it would be nicer only to annotate paths which are not under