Merge tag 'perf-urgent-2020-10-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull perf fix from Ingo Molnar:
"Fix an error handling bug that can cause a lockup if a CPU is offline
(doh ...)"

* tag 'perf-urgent-2020-10-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
perf: Fix task_function_call() error handling

Changed files
+3 -2
kernel
events
+3 -2
kernel/events/core.c
··· 99 99 * retry due to any failures in smp_call_function_single(), such as if the 100 100 * task_cpu() goes offline concurrently. 101 101 * 102 - * returns @func return value or -ESRCH when the process isn't running 102 + * returns @func return value or -ESRCH or -ENXIO when the process isn't running 103 103 */ 104 104 static int 105 105 task_function_call(struct task_struct *p, remote_function_f func, void *info) ··· 115 115 for (;;) { 116 116 ret = smp_call_function_single(task_cpu(p), remote_function, 117 117 &data, 1); 118 - ret = !ret ? data.ret : -EAGAIN; 118 + if (!ret) 119 + ret = data.ret; 119 120 120 121 if (ret != -EAGAIN) 121 122 break;