lkml.org 
[lkml]   [2016]   [Jun]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [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]
    \
     
     \ /
      Last update: 2016-06-29 21:21    [W:4.690 / U:0.108 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site