diff options
| -rw-r--r-- | tools/perf/util/intel-pt-decoder/intel-pt-decoder.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/tools/perf/util/intel-pt-decoder/intel-pt-decoder.c b/tools/perf/util/intel-pt-decoder/intel-pt-decoder.c index a2384a314990..99773445872d 100644 --- a/tools/perf/util/intel-pt-decoder/intel-pt-decoder.c +++ b/tools/perf/util/intel-pt-decoder/intel-pt-decoder.c | |||
| @@ -2128,18 +2128,29 @@ static int intel_pt_walk_to_ip(struct intel_pt_decoder *decoder) | |||
| 2128 | switch (decoder->packet.type) { | 2128 | switch (decoder->packet.type) { |
| 2129 | case INTEL_PT_TIP_PGD: | 2129 | case INTEL_PT_TIP_PGD: |
| 2130 | decoder->continuous_period = false; | 2130 | decoder->continuous_period = false; |
| 2131 | __fallthrough; | 2131 | decoder->pge = false; |
| 2132 | if (intel_pt_have_ip(decoder)) | ||
| 2133 | intel_pt_set_ip(decoder); | ||
| 2134 | if (!decoder->ip) | ||
| 2135 | break; | ||
| 2136 | decoder->state.type |= INTEL_PT_TRACE_END; | ||
| 2137 | return 0; | ||
| 2138 | |||
| 2132 | case INTEL_PT_TIP_PGE: | 2139 | case INTEL_PT_TIP_PGE: |
| 2140 | decoder->pge = true; | ||
| 2141 | if (intel_pt_have_ip(decoder)) | ||
| 2142 | intel_pt_set_ip(decoder); | ||
| 2143 | if (!decoder->ip) | ||
| 2144 | break; | ||
| 2145 | decoder->state.type |= INTEL_PT_TRACE_BEGIN; | ||
| 2146 | return 0; | ||
| 2147 | |||
| 2133 | case INTEL_PT_TIP: | 2148 | case INTEL_PT_TIP: |
| 2134 | decoder->pge = decoder->packet.type != INTEL_PT_TIP_PGD; | 2149 | decoder->pge = true; |
| 2135 | if (intel_pt_have_ip(decoder)) | 2150 | if (intel_pt_have_ip(decoder)) |
| 2136 | intel_pt_set_ip(decoder); | 2151 | intel_pt_set_ip(decoder); |
| 2137 | if (!decoder->ip) | 2152 | if (!decoder->ip) |
| 2138 | break; | 2153 | break; |
| 2139 | if (decoder->packet.type == INTEL_PT_TIP_PGE) | ||
| 2140 | decoder->state.type |= INTEL_PT_TRACE_BEGIN; | ||
| 2141 | if (decoder->packet.type == INTEL_PT_TIP_PGD) | ||
| 2142 | decoder->state.type |= INTEL_PT_TRACE_END; | ||
| 2143 | return 0; | 2154 | return 0; |
| 2144 | 2155 | ||
| 2145 | case INTEL_PT_FUP: | 2156 | case INTEL_PT_FUP: |
