Commit 95156f0051cba60ec674bbaa5cf7dc74a74c5612
Committed by
Ingo Molnar
1 parent
9d07933709
Exists in
master
and in
4 other branches
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
mm/memory.c
... | ... | @@ -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 |