diff options
| author | Arseny Solokha <asolokha@kb.kras.ru> | 2015-02-03 21:18:02 -0500 |
|---|---|---|
| committer | Michael Ellerman <mpe@ellerman.id.au> | 2015-02-03 21:19:27 -0500 |
| commit | c2c896bee08e1461fc24f9bf7dd57e2c63f6db70 (patch) | |
| tree | 35315d0675d8c56dd3b3861081c6653799375987 | |
| parent | 7f43e71e8c538356efd5b33a183e6d9ace4739a5 (diff) | |
powerpc/mm: Warn on flushing tlb page in kernel context
Function __flush_tlb_page() must only be called for user contexts, so
put in extra hardening to warn on calling it for kernel context.
Signed-off-by: Arseny Solokha <asolokha@kb.kras.ru>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
| -rw-r--r-- | arch/powerpc/mm/tlb_nohash.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/powerpc/mm/tlb_nohash.c b/arch/powerpc/mm/tlb_nohash.c index ab0616b0e6c2..cbd3d069897f 100644 --- a/arch/powerpc/mm/tlb_nohash.c +++ b/arch/powerpc/mm/tlb_nohash.c | |||
| @@ -284,7 +284,11 @@ void __flush_tlb_page(struct mm_struct *mm, unsigned long vmaddr, | |||
| 284 | struct cpumask *cpu_mask; | 284 | struct cpumask *cpu_mask; |
| 285 | unsigned int pid; | 285 | unsigned int pid; |
| 286 | 286 | ||
| 287 | if (unlikely(!mm)) | 287 | /* |
| 288 | * This function as well as __local_flush_tlb_page() must only be called | ||
| 289 | * for user contexts. | ||
| 290 | */ | ||
| 291 | if (unlikely(WARN_ON(!mm))) | ||
| 288 | return; | 292 | return; |
| 289 | 293 | ||
| 290 | preempt_disable(); | 294 | preempt_disable(); |
