|
@@ -4237,15 +4237,6 @@ static int tracing_wait_pipe(struct file *filp)
|
|
|
return -EAGAIN;
|
|
|
}
|
|
|
|
|
|
- mutex_unlock(&iter->mutex);
|
|
|
-
|
|
|
- iter->trace->wait_pipe(iter);
|
|
|
-
|
|
|
- mutex_lock(&iter->mutex);
|
|
|
-
|
|
|
- if (signal_pending(current))
|
|
|
- return -EINTR;
|
|
|
-
|
|
|
/*
|
|
|
* We block until we read something and tracing is disabled.
|
|
|
* We still block if tracing is disabled, but we have never
|
|
@@ -4257,6 +4248,15 @@ static int tracing_wait_pipe(struct file *filp)
|
|
|
*/
|
|
|
if (!tracing_is_on() && iter->pos)
|
|
|
break;
|
|
|
+
|
|
|
+ mutex_unlock(&iter->mutex);
|
|
|
+
|
|
|
+ iter->trace->wait_pipe(iter);
|
|
|
+
|
|
|
+ mutex_lock(&iter->mutex);
|
|
|
+
|
|
|
+ if (signal_pending(current))
|
|
|
+ return -EINTR;
|
|
|
}
|
|
|
|
|
|
return 1;
|