livepatch: Skip task_call_func() for current task
The current task doesn't need the scheduler's protection to unwind its own stack. Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by: Petr Mladek <pmladek@suse.com> Tested-by: Seth Forshee (DigitalOcean) <sforshee@kernel.org> Link: https://lore.kernel.org/r/4b92e793462d532a05f03767151fa29db3e68e13.1677257135.git.jpoimboe@kernel.org
This commit is contained in:
parent
e92606fa17
commit
383439d3d4
|
@ -312,7 +312,11 @@ static bool klp_try_switch_task(struct task_struct *task)
|
|||
* functions. If all goes well, switch the task to the target patch
|
||||
* state.
|
||||
*/
|
||||
ret = task_call_func(task, klp_check_and_switch_task, &old_name);
|
||||
if (task == current)
|
||||
ret = klp_check_and_switch_task(current, &old_name);
|
||||
else
|
||||
ret = task_call_func(task, klp_check_and_switch_task, &old_name);
|
||||
|
||||
switch (ret) {
|
||||
case 0: /* success */
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue