Skip to content

Commit

Permalink
Merge branch 'for-5.3/core' into for-linus
Browse files Browse the repository at this point in the history
  • Loading branch information
Jiri Kosina committed Jul 9, 2019
2 parents aec71d7 + ac59a47 commit 38195dd
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 11 deletions.
11 changes: 8 additions & 3 deletions kernel/livepatch/transition.c
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,6 @@ static int klp_check_stack(struct task_struct *task, char *err_buf)
int ret, nr_entries;

ret = stack_trace_save_tsk_reliable(task, entries, ARRAY_SIZE(entries));
WARN_ON_ONCE(ret == -ENOSYS);
if (ret < 0) {
snprintf(err_buf, STACK_ERR_BUF_SIZE,
"%s: %s:%d has an unreliable stack\n",
Expand Down Expand Up @@ -293,18 +292,25 @@ static int klp_check_stack(struct task_struct *task, char *err_buf)
*/
static bool klp_try_switch_task(struct task_struct *task)
{
static char err_buf[STACK_ERR_BUF_SIZE];
struct rq *rq;
struct rq_flags flags;
int ret;
bool success = false;
char err_buf[STACK_ERR_BUF_SIZE];

err_buf[0] = '\0';

/* check if this task has already switched over */
if (task->patch_state == klp_target_state)
return true;

/*
* For arches which don't have reliable stack traces, we have to rely
* on other methods (e.g., switching tasks at kernel exit).
*/
if (!klp_have_reliable_stack())
return false;

/*
* Now try to check the stack for any to-be-patched or to-be-unpatched
* functions. If all goes well, switch the task to the target patch
Expand Down Expand Up @@ -340,7 +346,6 @@ static bool klp_try_switch_task(struct task_struct *task)
pr_debug("%s", err_buf);

return success;

}

/*
Expand Down
8 changes: 0 additions & 8 deletions kernel/stacktrace.c
Original file line number Diff line number Diff line change
Expand Up @@ -254,14 +254,6 @@ save_stack_trace_regs(struct pt_regs *regs, struct stack_trace *trace)
WARN_ONCE(1, KERN_INFO "save_stack_trace_regs() not implemented yet.\n");
}

__weak int
save_stack_trace_tsk_reliable(struct task_struct *tsk,
struct stack_trace *trace)
{
WARN_ONCE(1, KERN_INFO "save_stack_tsk_reliable() not implemented yet.\n");
return -ENOSYS;
}

/**
* stack_trace_save - Save a stack trace into a storage array
* @store: Pointer to storage array
Expand Down

0 comments on commit 38195dd

Please sign in to comment.