tree: git://git.cmpxchg.org/linux-mmotm.git master head: 60319c74c8a7816a4b392f51a12a77cde302262b commit: 7a5f64d9a72a65046cfdc05a02f84e6462ae5bff [332/380] mm: rcu-protected get_mm_exe_file() config: microblaze-allyesconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout 7a5f64d9a72a65046cfdc05a02f84e6462ae5bff # save the attached .config to linux build tree make.cross ARCH=microblaze All warnings: In file included from include/linux/srcu.h:33:0, from include/linux/notifier.h:15, from include/linux/memory_hotplug.h:6, from include/linux/mmzone.h:790, from include/linux/gfp.h:5, from include/linux/slab.h:14, from kernel/fork.c:14: kernel/fork.c: In function 'set_mm_exe_file': kernel/fork.c:699:4: warning: passing argument 1 of 'lock_is_held' from incompatible pointer type lock_is_held(&mm->mmap_sem)); ^ include/linux/rcupdate.h:528:53: note: in definition of macro 'rcu_lockdep_assert' if (debug_lockdep_rcu_enabled() && !__warned && !(c)) { \ ^ >> include/linux/rcupdate.h:810:2: note: in expansion of macro '__rcu_dereference_protected' __rcu_dereference_protected((p), (c), __rcu) ^ >> kernel/fork.c:697:30: note: in expansion of macro 'rcu_dereference_protected' struct file *old_exe_file = rcu_dereference_protected(mm->exe_file, ^ In file included from include/linux/spinlock_types.h:18:0, from include/linux/spinlock.h:81, from include/linux/mmzone.h:7, from include/linux/gfp.h:5, from include/linux/slab.h:14, from kernel/fork.c:14: include/linux/lockdep.h:341:12: note: expected 'struct lockdep_map *' but argument is of type 'struct rw_semaphore *' extern int lock_is_held(struct lockdep_map *lock); ^ vim +/rcu_dereference_protected +697 kernel/fork.c 691 * Main users are mmput(), sys_execve() and sys_prctl(PR_SET_MM_MAP/EXE_FILE). 692 * Callers prevent concurrent invocations: in mmput() nobody alive left, 693 * in execve task is single-threaded, prctl holds mmap_sem exclusively. 694 */ 695 void set_mm_exe_file(struct mm_struct *mm, struct file *new_exe_file) 696 { > 697 struct file *old_exe_file = rcu_dereference_protected(mm->exe_file, 698 !atomic_read(&mm->mm_users) || current->in_execve || > 699 lock_is_held(&mm->mmap_sem)); 700 701 if (new_exe_file) 702 get_file(new_exe_file); --- 0-DAY kernel test infrastructure Open Source Technology Center http://lists.01.org/mailman/listinfo/kbuild Intel Corporation