diff options
-rw-r--r-- | kernel/fork.c | 2 | ||||
-rw-r--r-- | kernel/sched/core.c | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index f71b67dc156d..242c8c93d285 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -595,6 +595,8 @@ static void check_mm(struct mm_struct *mm) | |||
595 | void __mmdrop(struct mm_struct *mm) | 595 | void __mmdrop(struct mm_struct *mm) |
596 | { | 596 | { |
597 | BUG_ON(mm == &init_mm); | 597 | BUG_ON(mm == &init_mm); |
598 | WARN_ON_ONCE(mm == current->mm); | ||
599 | WARN_ON_ONCE(mm == current->active_mm); | ||
598 | mm_free_pgd(mm); | 600 | mm_free_pgd(mm); |
599 | destroy_context(mm); | 601 | destroy_context(mm); |
600 | hmm_mm_destroy(mm); | 602 | hmm_mm_destroy(mm); |
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 28b68995a417..e8afd6086f23 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
@@ -5560,6 +5560,7 @@ void idle_task_exit(void) | |||
5560 | 5560 | ||
5561 | if (mm != &init_mm) { | 5561 | if (mm != &init_mm) { |
5562 | switch_mm(mm, &init_mm, current); | 5562 | switch_mm(mm, &init_mm, current); |
5563 | current->active_mm = &init_mm; | ||
5563 | finish_arch_post_lock_switch(); | 5564 | finish_arch_post_lock_switch(); |
5564 | } | 5565 | } |
5565 | mmdrop(mm); | 5566 | mmdrop(mm); |