tree:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 
WIP.core/stacktrace
head:   ee23ee068fe24272f77ff014181286db32179754
commit: 6f6b2fc2fbf712e39df84edc62265273259f8aa1 [28/32] livepatch: Simplify 
stack trace retrieval
config: x86_64-randconfig-s5-04161121 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        git checkout 6f6b2fc2fbf712e39df84edc62265273259f8aa1
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   kernel/livepatch/transition.o: In function `klp_check_stack':
>> kernel/livepatch/transition.c:261: undefined reference to 
>> `stack_trace_save_tsk_reliable'

vim +261 kernel/livepatch/transition.c

   249  
   250  /*
   251   * Determine whether it's safe to transition the task to the target 
patch state
   252   * by looking for any to-be-patched or to-be-unpatched functions on its 
stack.
   253   */
   254  static int klp_check_stack(struct task_struct *task, char *err_buf)
   255  {
   256          static unsigned long entries[MAX_STACK_ENTRIES];
   257          struct klp_object *obj;
   258          struct klp_func *func;
   259          int ret, nr_entries;
   260  
 > 261          ret = stack_trace_save_tsk_reliable(task, entries, 
 > ARRAY_SIZE(entries));
   262          WARN_ON_ONCE(ret == -ENOSYS);
   263          if (ret < 0) {
   264                  snprintf(err_buf, STACK_ERR_BUF_SIZE,
   265                           "%s: %s:%d has an unreliable stack\n",
   266                           __func__, task->comm, task->pid);
   267                  return ret;
   268          }
   269          nr_entries = ret;
   270  
   271          klp_for_each_object(klp_transition_patch, obj) {
   272                  if (!obj->patched)
   273                          continue;
   274                  klp_for_each_func(obj, func) {
   275                          ret = klp_check_stack_func(func, entries, 
nr_entries);
   276                          if (ret) {
   277                                  snprintf(err_buf, STACK_ERR_BUF_SIZE,
   278                                           "%s: %s:%d is sleeping on 
function %s\n",
   279                                           __func__, task->comm, 
task->pid,
   280                                           func->old_name);
   281                                  return ret;
   282                          }
   283                  }
   284          }
   285  
   286          return 0;
   287  }
   288  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to