Messages in this thread | | | Date | Thu, 30 Jun 2016 02:51:20 +0800 | From | kbuild test robot <> | Subject | Re: [PATCH] kthread: to_live_kthread() needs try_get_task_stack() |
| |
Hi,
[auto build test WARNING on linus/master] [also build test WARNING on v4.7-rc5 next-20160629] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Oleg-Nesterov/kthread-to_live_kthread-needs-try_get_task_stack/20160630-020824 config: x86_64-randconfig-s3-06300221 (attached as .config) compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430 reproduce: # save the attached .config to linux build tree make ARCH=x86_64
All warnings (new ones prefixed by >>):
In file included from include/uapi/linux/stddef.h:1:0, from include/linux/stddef.h:4, from include/uapi/linux/posix_types.h:4, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/uapi/linux/capability.h:16, from include/linux/capability.h:15, from include/linux/sched.h:15, from kernel/kthread.c:8: kernel/kthread.c: In function 'to_live_kthread': kernel/kthread.c:67:23: error: implicit declaration of function 'try_get_task_stack' [-Werror=implicit-function-declaration] if (likely(vfork) && try_get_task_stack(k)) ^ include/linux/compiler.h:151:30: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^~~~ >> kernel/kthread.c:67:2: note: in expansion of macro 'if' if (likely(vfork) && try_get_task_stack(k)) ^~ kernel/kthread.c: In function 'kthread_unpark': kernel/kthread.c:430:3: error: implicit declaration of function 'put_task_stack' [-Werror=implicit-function-declaration] put_task_stack(k); ^~~~~~~~~~~~~~ cc1: some warnings being treated as errors
vim +/if +67 kernel/kthread.c
2 * Copyright (C) 2004 IBM Corporation, Rusty Russell. 3 * 4 * Creation is done via kthreadd, so that we get a clean environment 5 * even if we're invoked from userspace (think modprobe, hotplug cpu, 6 * etc.). 7 */ > 8 #include <linux/sched.h> 9 #include <linux/kthread.h> 10 #include <linux/completion.h> 11 #include <linux/err.h> 12 #include <linux/cpuset.h> 13 #include <linux/unistd.h> 14 #include <linux/file.h> 15 #include <linux/export.h> 16 #include <linux/mutex.h> 17 #include <linux/slab.h> 18 #include <linux/freezer.h> 19 #include <linux/ptrace.h> 20 #include <linux/uaccess.h> 21 #include <trace/events/sched.h> 22 23 static DEFINE_SPINLOCK(kthread_create_lock); 24 static LIST_HEAD(kthread_create_list); 25 struct task_struct *kthreadd_task; 26 27 struct kthread_create_info 28 { 29 /* Information passed to kthread() from kthreadd. */ 30 int (*threadfn)(void *data); 31 void *data; 32 int node; 33 34 /* Result passed back to kthread_create() from kthreadd. */ 35 struct task_struct *result; 36 struct completion *done; 37 38 struct list_head list; 39 }; 40 41 struct kthread { 42 unsigned long flags; 43 unsigned int cpu; 44 void *data; 45 struct completion parked; 46 struct completion exited; 47 }; 48 49 enum KTHREAD_BITS { 50 KTHREAD_IS_PER_CPU = 0, 51 KTHREAD_SHOULD_STOP, 52 KTHREAD_SHOULD_PARK, 53 KTHREAD_IS_PARKED, 54 }; 55 56 #define __to_kthread(vfork) \ 57 container_of(vfork, struct kthread, exited) 58 59 static inline struct kthread *to_kthread(struct task_struct *k) 60 { 61 return __to_kthread(k->vfork_done); 62 } 63 64 static struct kthread *to_live_kthread(struct task_struct *k) 65 { 66 struct completion *vfork = ACCESS_ONCE(k->vfork_done); > 67 if (likely(vfork) && try_get_task_stack(k)) 68 return __to_kthread(vfork); 69 return NULL; 70 }
--- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [unhandled content-type:application/octet-stream] | |