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

Attachment: .config.gz
Description: Binary data

Reply via email to