[PATCH] kernel-shark: Handle traces with sched_wakeup but not sched_waking

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If sched_wakeup or sched_wakeup_new is avaiable but sched_waking is not,
then define_wakeup_event() returns true even though waking_event_ptr is
null.

Change find_wakeup_event() to avoid overwriting the output parameter on
error so that the define_wakeup_event() returns true iff
*waking_event_ptr is non-null.

Signed-off-by: John Keeping <john@xxxxxxxxxxxx>
---
 src/libkshark-tepdata.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/libkshark-tepdata.c b/src/libkshark-tepdata.c
index 865ca82..9740ed9 100644
--- a/src/libkshark-tepdata.c
+++ b/src/libkshark-tepdata.c
@@ -1868,9 +1868,14 @@ int kshark_tep_find_top_stream(struct kshark_context *kshark_ctx,
 static bool find_wakeup_event(struct tep_handle *tep, const char *wakeup_name,
 			      struct tep_event **waking_event_ptr)
 {
-	*waking_event_ptr = tep_find_event_by_name(tep, "sched", wakeup_name);
+	struct tep_event *event;
+
+	event = tep_find_event_by_name(tep, "sched", wakeup_name);
+
+	if (event)
+		*waking_event_ptr = event;
 
-	return (*waking_event_ptr)? true : false;
+	return !!event;
 }
 
 /**
-- 
2.33.0




[Index of Archives]     [Linux USB Development]     [Linux USB Development]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux