Hi,

This patch is part of mainline git commit 20c457b8587bee4644d9.
It should apply cleanly on 2.6.36 and 2.6.37 stable kernels
(not double checked, I can adjust and resend if not).

This should fix:
http://www.mail-archive.com/[email protected]/msg00057.html

The regression was introduced by git commit:
4c21adf26f8fcf86a755b9b9f55c2e9fd241e1fb

Please consider to apply to 2.6.3{6,7} stable kernels.

Thanks,

   Thomas

---
From: Thomas Renninger <[email protected]>

perf timechart: Fix segfault on cpu idle (power_start/end) events

power_end event does not have type and other attributes and thus does
not match struct power_event.
Another struct could be created, but data.cpu is fine for fixing the segfault
and will work as long as C-states got initiated on the same CPU the idle state
takes place which is the case for all recent HW.

The power_start/end events get deprecated anyway, thus this is an easy,
riskless and sufficient solution for the segfault problem.

Signed-off-by: Thomas Renninger <[email protected]>
CC: [email protected]
CC: [email protected]
CC: [email protected]
---
 tools/perf/builtin-timechart.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/tools/perf/builtin-timechart.c b/tools/perf/builtin-timechart.c
index 9bcc38f..b3028eb 100644
--- a/tools/perf/builtin-timechart.c
+++ b/tools/perf/builtin-timechart.c
@@ -502,7 +502,7 @@ static int process_sample_event(event_t *event, struct 
perf_session *session)
                        c_state_start(pe->cpu_id, data.time, pe->value);
 
                if (strcmp(event_str, "power:power_end") == 0)
-                       c_state_end(pe->cpu_id, data.time);
+                       c_state_end(data.cpu, data.time);
 
                if (strcmp(event_str, "power:power_frequency") == 0)
                        p_state_change(pe->cpu_id, data.time, pe->value);

_______________________________________________
stable mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/stable

Reply via email to