|
@@ -1524,6 +1524,11 @@ retry:
|
|
|
*/
|
|
|
if (ctx->is_active) {
|
|
|
raw_spin_unlock_irq(&ctx->lock);
|
|
|
+ /*
|
|
|
+ * Reload the task pointer, it might have been changed by
|
|
|
+ * a concurrent perf_event_context_sched_out().
|
|
|
+ */
|
|
|
+ task = ctx->task;
|
|
|
goto retry;
|
|
|
}
|
|
|
|
|
@@ -1967,6 +1972,11 @@ retry:
|
|
|
*/
|
|
|
if (ctx->is_active) {
|
|
|
raw_spin_unlock_irq(&ctx->lock);
|
|
|
+ /*
|
|
|
+ * Reload the task pointer, it might have been changed by
|
|
|
+ * a concurrent perf_event_context_sched_out().
|
|
|
+ */
|
|
|
+ task = ctx->task;
|
|
|
goto retry;
|
|
|
}
|
|
|
|