CC: [email protected] CC: [email protected] TO: Andy Lutomirski <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/luto/linux.git sched/lazymm head: fbea7977edc16ae85f8e2255b084bc2403801327 commit: 8f99be3b9978a71358e03a2bcfd4b230f32714cb [14/17] sched, exec: Factor current mm changes out from exec :::::: branch date: 7 hours ago :::::: commit date: 7 hours ago config: x86_64-randconfig-m001-20211228 (https://download.01.org/0day-ci/archive/20211229/[email protected]/config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> smatch warnings: kernel/sched/core.c:4982 __change_current_mm() error: uninitialized symbol 'old_active_mm'. vim +/old_active_mm +4982 kernel/sched/core.c f711f6090a81cb kernel/sched.c Gautham R Shenoy 2009-04-14 4937 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4938 void __change_current_mm(struct mm_struct *mm, bool mm_is_brand_new) 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4939 { 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4940 struct task_struct *tsk = current; 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4941 struct mm_struct *old_active_mm, *mm_to_drop = NULL; 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4942 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4943 BUG_ON(!mm); /* likely to cause corruption if we continue */ 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4944 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4945 /* 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4946 * We do not want to schedule, nor should procfs peek at current->mm 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4947 * while we're modifying it. task_lock() disables preemption and 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4948 * locks against procfs. 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4949 */ 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4950 task_lock(tsk); 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4951 /* 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4952 * membarrier() requires a full barrier before switching mm. 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4953 */ 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4954 smp_mb__after_spinlock(); 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4955 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4956 local_irq_disable(); 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4957 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4958 if (tsk->mm) { 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4959 /* We're detaching from an old mm. Sync stats. */ 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4960 sync_mm_rss(tsk->mm); 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4961 } else { 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4962 /* 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4963 * Switching from kernel mm to user. Drop the old lazy 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4964 * mm reference. 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4965 */ 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4966 mm_to_drop = tsk->active_mm; 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4967 } 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4968 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4969 tsk->active_mm = mm; 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4970 WRITE_ONCE(tsk->mm, mm); /* membarrier reads this without locks */ 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4971 membarrier_update_current_mm(mm); 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4972 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4973 if (mm_is_brand_new) { 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4974 /* 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4975 * For historical reasons, some architectures want IRQs on 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4976 * when activate_mm() is called. If we're going to call 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4977 * activate_mm(), turn on IRQs but leave preemption 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4978 * disabled. 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4979 */ 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4980 if (!IS_ENABLED(CONFIG_ARCH_WANT_IRQS_OFF_ACTIVATE_MM)) 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4981 local_irq_enable(); 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 @4982 activate_mm(old_active_mm, mm); 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4983 if (IS_ENABLED(CONFIG_ARCH_WANT_IRQS_OFF_ACTIVATE_MM)) 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4984 local_irq_enable(); 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4985 } else { 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4986 switch_mm_irqs_off(old_active_mm, mm, tsk); 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4987 local_irq_enable(); 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4988 } 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4989 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4990 /* IRQs are on now. Preemption is still disabled by task_lock(). */ 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4991 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4992 membarrier_finish_switch_mm(mm); 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4993 vmacache_flush(tsk); 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4994 task_unlock(tsk); 8f99be3b9978a7 kernel/sched/core.c Andy Lutomirski 2021-09-03 4995 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
